COLOR TESTER

color tester

The code can be downloaded at:

https://github.com/triantara/ARDUINO-TRIANTARA/blob/main/COLOUR%20RECOGNIZER.zip

#include <Wire.h>
#include <LiquidCrystal_SR.h>
//LiquidCrystal_SR lcd Mendefinisikan(DataPin,ClockPin, EnablePin);
LiquidCrystal_SR lcd(9, 10, 11); //D9 to pin14,D10 to pin11,D11 to pin12
int PinSensor = A0; // Sensor (LDR) pada Pin Nomor A0

int PinLedMerah1 =3; // Led Warna Merah pada Pin Nomor 3

int PinLedHijau1=4; // Led Warna Hijau pada Pin Nomor 4

int PinLedBiru1=5; // Led Warna Biru pada Pin Nomor 5

int PinLedMerah2 =6; // Led Warna Merah pada Pin Nomor 3

int PinLedHijau2=7; // Led Warna Hijau pada Pin Nomor 4

int PinLedBiru2=8; // Led Warna Biru pada Pin Nomor 5

int Hasil,HasilMerah,HasilHijau,HasilBiru;

int k=5; // Toleransi Warna

void setup() {

// Menetapkan Pin Led Merah, Hijau, Biru sebagai OUTPUT:
lcd.begin(16, 4);
pinMode(PinLedMerah1,OUTPUT);

pinMode(PinLedHijau1,OUTPUT);

pinMode(PinLedBiru1,OUTPUT);

pinMode(PinLedMerah2,OUTPUT);

pinMode(PinLedHijau2,OUTPUT);

pinMode(PinLedBiru2,OUTPUT);

digitalWrite(PinLedMerah1,LOW);

digitalWrite(PinLedHijau1,LOW);

digitalWrite(PinLedBiru1,LOW);

digitalWrite(PinLedMerah2,LOW);

digitalWrite(PinLedHijau2,LOW);

digitalWrite(PinLedBiru2,LOW);

delay(100);

Serial.begin(9600);

delay(1000);

}

void loop() {

digitalWrite(PinLedMerah1,HIGH); // Menyalakan Led Merah

digitalWrite(PinLedMerah2,HIGH);

delay(100); // Jeda 150 milidetik agar LDR bisa Membaca Warna Merah dengan Stabil

// Membaca Data Sensor (LDR) :

Hasil= analogRead(PinSensor);

HasilMerah=map(Hasil,0,1023,0,255);

Serial.print(HasilMerah);

digitalWrite(PinLedMerah1,LOW);

digitalWrite(PinLedMerah2,LOW);

delay(100);

digitalWrite(PinLedHijau1,HIGH); // Menyalakan Led Hijau

digitalWrite(PinLedHijau2,HIGH);

delay(100); // Jeda 150 milidetik agar LDR bisa Membaca Warna Hijau dengan Stabil

// Membaca Data Sensor (LDR) :

Hasil= analogRead(PinSensor);

HasilHijau=map(Hasil,0,1023,0,255);

Serial.print(” “);

Serial.print(HasilHijau);

digitalWrite(PinLedHijau1,LOW);

digitalWrite(PinLedHijau2,LOW);

delay(100);

digitalWrite(PinLedBiru1,HIGH); // Menyalakan Led Biru

digitalWrite(PinLedBiru2,HIGH);

delay(100); // Jeda 150 milidetik agar LDR bisa Membaca Warna Biru dengan Stabil

// Membaca Data Sensor (LDR) :

Hasil= analogRead(PinSensor);

HasilBiru=map(Hasil,0,1023,0,255);

Serial.print(” “);

Serial.println(HasilBiru);

digitalWrite(PinLedBiru1,LOW);

digitalWrite(PinLedBiru2,LOW);

delay(100);

// Membandingkan Warna Hasil Peneraan Sensor dengan Hasil Kalibrasi :

if(abs(HasilMerah-178)<k && abs(HasilHijau-175)<k && abs(HasilBiru-118)<k){

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“YELLOW”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);

} else

if(abs(HasilMerah-174)<k && abs(HasilHijau-173)<k && abs(HasilBiru-118)<k){

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“YELLOW”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);

} else

if(abs(HasilMerah-154)<k && abs(HasilHijau-118)<k && abs(HasilBiru-94)<k){

//Serial.println(“DARK RED”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK RED”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);

}
else

if(abs(HasilMerah-175)<k && abs(HasilHijau-142)<k && abs(HasilBiru-110)<k){

//Serial.println(“DARK ORANGE”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK ORANGE”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);

}
else

if(abs(HasilMerah-179)<k && abs(HasilHijau-189)<k && abs(HasilBiru-194)<k){

//Serial.println(“LIGHT ORANGE”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“LIGHT ORANGE”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-171)<k && abs(HasilHijau-121)<k && abs(HasilBiru-97)<k){

//Serial.println(“RED”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“RED”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-131)<k && abs(HasilHijau-122)<k && abs(HasilBiru-117)<k){

//Serial.println(“DARK BLUE”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK BLUE”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-143)<k && abs(HasilHijau-140)<k && abs(HasilBiru-118)<k){

//Serial.println(“GREY”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“GREY”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-140)<k && abs(HasilHijau-161)<k && abs(HasilBiru-115)<k){

//Serial.println(“DARK GREEN”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK GREEN”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-145)<k && abs(HasilHijau-164)<k && abs(HasilBiru-112)<k){

//Serial.println(“LIGHT GREEN”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“LIGHT GREEN”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-180)<k && abs(HasilHijau-182)<k && abs(HasilBiru-162)<k){

//Serial.println(“WHITE”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“WHITE”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-163)<k && abs(HasilHijau-146)<k && abs(HasilBiru-108)<k){

//Serial.println(“LIGHT BROWN”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“LIGHT BROWN”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-158)<k && abs(HasilHijau-136)<k && abs(HasilBiru-104)<k){

//Serial.println(“DARK BROWN”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK BROWN”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-130)<k && abs(HasilHijau-114)<k && abs(HasilBiru-88)<k){

//Serial.println(“BLACK”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“BLACK”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-160)<k && abs(HasilHijau-150)<k && abs(HasilBiru-117)<k){

//Serial.println(“CARTON”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“CARTON”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-180)<k && abs(HasilHijau-186)<k && abs(HasilBiru-187)<k){

//Serial.println(“PINK”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“PINK”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}
else

if(abs(HasilMerah-135)<k && abs(HasilHijau-127)<k && abs(HasilBiru-101)<k){

//Serial.println(“DARK GREY”);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“DARK GREY”);
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);
}

else

//Serial.println(“NOT RECOGNIZED”);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print(“R”);
lcd.setCursor(4, 1);
lcd.print(“G”);
lcd.setCursor(8, 1);
lcd.print(“B”);
lcd.setCursor(0, 2);
lcd.print(HasilMerah);
lcd.setCursor(4, 2);
lcd.print(HasilHijau);
lcd.setCursor(8, 2);
lcd.print(HasilBiru);

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s