#include "pitches.h"
#define SPEAKER_PIN 8
#define LDR_PIN A0
const uint8_t ledPins[] = { 2, 3, 4, 5 }; // LEDs for indicating brightness level
const int buttonTones[] = {
NOTE_A3, NOTE_D4, NOTE_G4, NOTE_C5
};
const int numTones = sizeof(buttonTones) / sizeof(buttonTones[0]);
// Define thresholds for different brightness levels
const int brightThreshold = 1000;
const int midThreshold = 600;
const int dimThreshold = 200;
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode(LDR_PIN, INPUT);
pinMode(SPEAKER_PIN, OUTPUT);
for (uint8_t i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
int sensorValue = analogRead(LDR_PIN);
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
// Determine brightness level based on sensor value and thresholds
int brightnessLevel;
if (sensorValue > brightThreshold) {
brightnessLevel = 0; // Very bright
digitalWrite(ledPins[0], HIGH); // Turn on the first LED
digitalWrite(ledPins[1], LOW); // Turn off other LEDs
digitalWrite(ledPins[2], LOW);
digitalWrite(ledPins[3], LOW);
tone(SPEAKER_PIN, buttonTones[0]); // Play the first tone
} else if (sensorValue > midThreshold) {
brightnessLevel = 1; // Bright
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[2], LOW);
digitalWrite(ledPins[3], LOW);
tone(SPEAKER_PIN, buttonTones[1]);
} else if (sensorValue > dimThreshold) {
brightnessLevel = 2; // Dim
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[2], HIGH);
digitalWrite(ledPins[3], LOW);
tone(SPEAKER_PIN, buttonTones[2]);
} else {
brightnessLevel = 3; // Dark
digitalWrite(ledPins[0], HIGH);
digitalWrite(ledPins[1], HIGH);
digitalWrite(ledPins[2], HIGH);
digitalWrite(ledPins[3], HIGH);
tone(SPEAKER_PIN, buttonTones[3]);
}
Serial.print("Brightness Level: ");
Serial.println(brightnessLevel);
delay(200); // Adjust delay time as needed
}