3 Digit 7 Segment Counter ini dapat digunakan untuk menghitung jumlah hasil produksi, setiap barang hasil produksi dilewatkan ke sensor (Infra Merah atau Limit/Miro Switch), maka counter akan bertambah satu. Disediakan pula 3 buah switch manual untuk "koreksi" nilai counter "Up","Down" dan "Reset".
Berikut Video Pemakaian counter:
Dengan Sensor Limit/Micro Switch:
Dengan Sensor Infra Merah:
Alat ini dibuat/dirangkai menggunakan Elmarino (Arduino Kompatibel) + 7 Segment 1,8" (4,5 Cm)
Dengan menggunakan LED RGB dan LDR, kita dapat membuat sensor warna yang cukup memadai, prinsip kerjanya adalah dengan melakukan pencatatan terhadap masing-masing pantulan sinar warna (Merah,Hijau dan Biru) terhadap kertas warna tertentu, kombinasi nilai pantulan tersebut digunakan sebagai nilai referensi warna tersebut.
Contoh hasilnya sbb:
Wiring dan skematik
Sketch Program:
---
/* Program sensor warna Oleh : Aan Darmawan web : valfa.blogspot.com update : 25 Mei 2012*/
#include <Servo.h>
Servo myservo;
int sensorPin = A0;
int LedBiru =3; // Led warna biru digital pin 3int LedHijau=4; // Led warna hijau digital pin 4int LedMerah=5; // Led warna merah digital pin 5int hasil,hasilb,hasilm,hasilh;
int k=8; // toleransi warnavoidsetup() {
// declare the ledPin as an OUTPUT:pinMode(LedBiru,OUTPUT);
pinMode(LedMerah,OUTPUT);
pinMode(LedHijau,OUTPUT);
digitalWrite(LedBiru,LOW);
digitalWrite(LedMerah,LOW);
digitalWrite(LedHijau,LOW);
myservo.attach(9); // motor servo pin digital 9
myservo.write(90);
delay(100);
Serial.begin(9600);
delay(1000);
}
voidloop() {
// nyalakan LedMerahdigitalWrite(LedMerah,HIGH);
//delay 150 ms agar LDR baca stabildelay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilm=map(hasil,0,1023,0,255);
Serial.print("R,G,B = ");
Serial.print(hasilm);
digitalWrite(LedMerah,LOW);
delay(150);
// nyalakan LedHijaudigitalWrite(LedHijau,HIGH);
//delay 150 ms agar LDR baca stabildelay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilh=map(hasil,0,1023,0,255);
Serial.print(",");
Serial.print(hasilh);
digitalWrite(LedHijau,LOW);
delay(150);
// nyalakan LedBirudigitalWrite(LedBiru,HIGH);
//delay 150 ms agar LDR baca stabildelay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilb=map(hasil,0,1023,0,255);
Serial.print(",");
Serial.println(hasilb);
digitalWrite(LedBiru,LOW);
delay(150);
// cek warna dibandingkan dengan nilai hasil kalibrasiif(abs(hasilm-208)<k && abs(hasilh-203)<k && abs(hasilb-177)<k){
Serial.println(" -> WARNA PUTIH!\n");
myservo.write(10); } elseif(abs(hasilm-209)<k && abs(hasilh-165)<k && abs(hasilb-139)<k){
Serial.println(" -> WARNA MERAH !\n");
myservo.write(30); } elseif(abs(hasilm-135)<k && abs(hasilh-182)<k && abs(hasilb-147)<k){
Serial.println(" -> WARNA HIJAU !\n");
myservo.write(50); } elseif(abs(hasilm-138)<k && abs(hasilh-163)<k && abs(hasilb-166)<k){
Serial.println(" -> WARNA BIRU !\n");
myservo.write(70); } elseif(abs(hasilm-156)<k && abs(hasilh-184)<k && abs(hasilb-172)<k){
Serial.println(" -> WARNA CYAN !\n");
myservo.write(90); } elseif(abs(hasilm-199)<k && abs(hasilh-159)<k && abs(hasilb-170)<k){
Serial.println(" -> WARNA UNGU !\n");
myservo.write(110); } elseif(abs(hasilm-209)<k && abs(hasilh-214)<k && abs(hasilb-223)<k){
Serial.println(" -> WARNA KUNING !\n");
myservo.write(130); } elseif(abs(hasilm-210)<k && abs(hasilh-206)<k && abs(hasilb-211)<k){
Serial.println(" -> WARNA PINK !\n");
myservo.write(150); } elseif(abs(hasilm-165)<k && abs(hasilh-197)<k && abs(hasilb-205)<k){
Serial.println(" -> WARNA HIJAU MUDA !\n");
myservo.write(170); } else// if(abs(hasilm-209)<k && abs(hasilh-204)<k && abs(hasilb-210)<k){// Serial.println(" -> WARNA KUNING MUDA!\n");// myservo.write(180); } elseSerial.println(" -> ???\n");
delay (2000);
}