// Pin configuration
int LDR = A5;
int passiveBuzzer = 12;
int activeBuzzer = 11;
int redLED1 = 8;
int redLED2 = 7;
int R = 6;
int G = 5;
int B = 3;
int button = 2;
// Variables
int ldrValue = 0;
int colorIndex = 0;
bool lastButtonState = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 200;
void setup() {
Serial.begin(9600);
pinMode(LDR, INPUT);
pinMode(passiveBuzzer, OUTPUT);
pinMode(activeBuzzer, OUTPUT);
pinMode(redLED1, OUTPUT);
pinMode(redLED2, OUTPUT);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(button, INPUT_PULLUP);
}
void loop() {
// ---- LDR SENSOR SECTION ----
ldrValue = analogRead(LDR);
Serial.print("LDR Value: ");
Serial.println(ldrValue);
if (ldrValue >= 70 && ldrValue <= 150) {
analogWrite(redLED1, 255);
analogWrite(redLED2, 255);
tone(passiveBuzzer, 550);
}
else if (ldrValue >= 160 && ldrValue <= 400) {
analogWrite(redLED1, 150);
analogWrite(redLED2, 150);
tone(passiveBuzzer, 660);
}
else if (ldrValue >= 410 && ldrValue <= 550) {
analogWrite(redLED1, 125);
analogWrite(redLED2, 125);
tone(passiveBuzzer, 770);
}
else {
analogWrite(redLED1, 0);
analogWrite(redLED2, 0);
noTone(passiveBuzzer);
}
// ---- BUTTON AND RGB SECTION ----
bool buttonState = digitalRead(button);
if (buttonState == LOW && lastButtonState == HIGH && (millis() - lastDebounceTime) > debounceDelay) {
lastDebounceTime = millis();
colorIndex++;
if (colorIndex > 5) colorIndex = 1;
// Change RGB color manually
switch (colorIndex) {
case 1: // Red
analogWrite(R, 255);
analogWrite(G, 0);
analogWrite(B, 0);
Serial.println("RGB Color: RED");
break;
case 2: // Green
analogWrite(R, 0);
analogWrite(G, 255);
analogWrite(B, 0);
Serial.println("RGB Color: GREEN");
break;
case 3: // Blue
analogWrite(R, 0);
analogWrite(G, 0);
analogWrite(B, 255);
Serial.println("RGB Color: BLUE");
break;
case 4: // Yellow
analogWrite(R, 255);
analogWrite(G, 255);
analogWrite(B, 0);
Serial.println("RGB Color: YELLOW");
break;
case 5: // Magenta
analogWrite(R, 255);
analogWrite(G, 0);
analogWrite(B, 255);
Serial.println("RGB Color: MAGENTA");
break;
}
// Active buzzer beep
digitalWrite(activeBuzzer, HIGH);
delay(100);
digitalWrite(activeBuzzer, LOW);
}
lastButtonState = buttonState;
delay(50);
}