LAMPIRAN
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int sensorPin = A0;
int LedBiru =8; // Led warna biru digital pin 8
int LedHijau=9; // Led warna hijau digital pin 9
int LedMerah=10; // Led warna merah digital pin 10
int hasil,hasilb,hasilm,hasilh;
int k=15; // toleransi warna
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(LedBiru,OUTPUT);
pinMode(LedMerah,OUTPUT);
pinMode(LedHijau,OUTPUT);
digitalWrite(LedBiru,LOW);
digitalWrite(LedMerah,LOW);
digitalWrite(LedHijau,LOW);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(" Yenita Sari STMG");
lcd.setCursor(0,1);
lcd.print("132411041");
delay(300);
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// scroll one position right:
lcd.scrollDisplayRight();
// wait a bit:
delay(200);
}
for (int positionCounter = 0; positionCounter < 40; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
// wait a bit:
delay(300);
}
}
void loop() {
lcd.clear();
// nyalakan LedMerah
digitalWrite(LedMerah,HIGH);
//delay 150 ms agar LDR baca stabil
delay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilm=map(hasil,0,1023,0,255);
lcd.print("R,G,B");
lcd.print(hasilm);
digitalWrite(LedMerah,LOW);
delay(150);
// nyalakan LedHijau
digitalWrite(LedHijau,HIGH);
//delay 150 ms agar LDR baca stabil
delay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilh=map(hasil,0,1023,0,255);
lcd.print(",");
lcd.print(hasilh);
digitalWrite(LedHijau,LOW);
delay(150);
// nyalakan LedBiru
digitalWrite(LedBiru,HIGH);
//delay 150 ms agar LDR baca stabil
delay(150);
// baca data sensor
hasil= analogRead(sensorPin);
hasilb=map(hasil,0,1023,0,255);
lcd.print(",");
lcd.println(hasilb);
digitalWrite(LedBiru,LOW);
delay(150);
// cek warna dibandingkan dengan nilai hasil kalibrasi
if(abs(hasilm-145)<k && abs(hasilh-115)<k && abs(hasilb-160)<k){
lcd.setCursor(0,1);
lcd.print("WARNA BIRU MUDA");
}
else if(abs(hasilm-158)<k && abs(hasilh-120)<k && abs(hasilb-121)<k){
lcd.setCursor(0,1);
lcd.print("WARNA HIJAU");
}
else if(abs(hasilm-132)<k && abs(hasilh-179)<k && abs(hasilb-153)<k){
lcd.setCursor(0,1);
lcd.print("WARNA UNGU");
}
else if(abs(hasilm-164)<k && abs(hasilh-201)<k && abs(hasilb-134)<k){
lcd.setCursor(0,1);
lcd.print("WARNA ORANGE");
}
else if(abs(hasilm-187)<k && abs(hasilh-203)<k && abs(hasilb-147)<k){
lcd.setCursor(0,1);
lcd.print("WARNA KUNING");
}
else if(abs(hasilm-91)<k && abs(hasilh-110)<k && abs(hasilb-106)<k){
lcd.setCursor(0,1);
lcd.print("WARNA HITAM");
}