#include <LiquidCrystal.h>
#define LED 1
#define RED_PIN 2
#define GREEN_PIN 3
#define BLUE_PIN 4
#define BUZZER_PIN1 6
#define BUZZER_PIN2 5
#define LDR_PIN A0 // Pin analog untuk sensor LDR
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
bool isLedOn = false; // Menyimpan status LED
int ldrValue = 0; // Menyimpan nilai sensor LDR
void setup() {
lcd.begin(16, 2);
lcd.print("HELLO!");
pinMode(LED, OUTPUT);
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(BUZZER_PIN1, OUTPUT);
pinMode(BUZZER_PIN2, OUTPUT);
pinMode(LDR_PIN, INPUT); // Mengatur pin LDR sebagai input analog
}
void playTone(int frequency, int duration) {
tone(BUZZER_PIN1, frequency, duration);
tone(BUZZER_PIN2, frequency, duration);
delay(duration);
}
void loop() {
// Membaca nilai dari sensor LDR
ldrValue = analogRead(LDR_PIN);
if (ldrValue < 400) {
// Menyalakan LED hijau ketika cahaya rendah
digitalWrite(LED, HIGH); // Menyalakan LED
digitalWrite(RED_PIN, LOW); // Merah OFF
digitalWrite(GREEN_PIN, HIGH); // Hijau ON
digitalWrite(BLUE_PIN, LOW); // Biru OFF
digitalWrite(BUZZER_PIN1, HIGH); // Menyalakan buzzer
digitalWrite(BUZZER_PIN2, HIGH);
lcd.setCursor(0, 0);
lcd.print("Green ");
lcd.setCursor(0, 1);
lcd.print("LED ON ");
isLedOn = true;
} else if (ldrValue > 500) {
// Menyalakan LED merah dan aktifkan buzzer ketika cahaya di atas 500 lux
digitalWrite(LED, LOW); // Mematikan LED hijau
digitalWrite(RED_PIN, HIGH); // Merah ON
digitalWrite(GREEN_PIN, LOW); // Hijau OFF
digitalWrite(BLUE_PIN, LOW); // Biru OFF
digitalWrite(BUZZER_PIN1, HIGH); // Menyalakan buzzer
digitalWrite(BUZZER_PIN2, HIGH);
lcd.setCursor(0, 0);
lcd.print("Red ");
lcd.setCursor(0, 1);
lcd.print("LED ON ");
isLedOn = true;
} else {
// Mematikan LED dan sensor RGB LED ketika cahaya cukup tinggi
digitalWrite(LED, LOW); // Mematikan LED
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
digitalWrite(BUZZER_PIN1, LOW); // Mematikan buzzer
digitalWrite(BUZZER_PIN2, LOW);
lcd.setCursor(0, 0);
lcd.print(" "); // Menghapus pesan di baris pertama
lcd.setCursor(0, 1);
lcd.print("LED OFF");
isLedOn = false;
}
delay(3000); // Tunggu selama 3 detik sebelum beralih kondisi
}