#define Red1 32
#define Red2 33
#define Green1 14
#define Green2 13
#define Yellow1 23
#define Yellow2 21
#define Blue1 18
#define Blue2 5
int Del1 = 75;
int Del2 = 100;
int Del3 = 150;
int Del4 = 100;
const int potPin = 12; // Pin where the potentiometer is connected
const int threshold = 1000; // Threshold level for potentiometer (midpoint for a 10-bit ADC)
void setup() {
// Initialize the LED pins as outputs
pinMode(Red1, OUTPUT);
pinMode(Red2, OUTPUT);
pinMode(Green1, OUTPUT);
pinMode(Green2, OUTPUT);
pinMode(Yellow1, OUTPUT);
pinMode(Yellow2, OUTPUT);
pinMode(Blue1, OUTPUT);
pinMode(Blue2, OUTPUT);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int potValue = analogRead(potPin); // Read the value from the potentiometer
if (potValue > threshold) {
Serial.println("Sound Detected, Starting Disco Lights");
startDiscoLights();
}
else{
Serial.println("Sound not detected");
}
}
void startDiscoLights() {
int leds[8] = {Green1, Green2, Yellow1, Yellow2, Red1, Red2, Blue1, Blue2};
int delays[4] = {Del1, Del2, Del3, Del4};
// First pattern
for (int i = 0; i < 8; i++) {
resetLeds(leds);
digitalWrite(leds[i], HIGH);
delay(Del1);
}
// Second pattern
resetLeds(leds);
for (int j = 0; j < 4; j++) {
resetLeds(leds);
digitalWrite(Green1, HIGH);
digitalWrite(Green2, LOW);
digitalWrite(Yellow1, HIGH);
digitalWrite(Yellow2, LOW);
digitalWrite(Red1, HIGH);
digitalWrite(Red2, LOW);
digitalWrite(Blue1, HIGH);
digitalWrite(Blue2, LOW);
delay(Del2);
resetLeds(leds);
digitalWrite(Green1, LOW);
digitalWrite(Green2, HIGH);
digitalWrite(Yellow1, LOW);
digitalWrite(Yellow2, HIGH);
digitalWrite(Red1, LOW);
digitalWrite(Red2, HIGH);
digitalWrite(Blue1, LOW);
digitalWrite(Blue2, HIGH);
delay(Del2);
}
// Third pattern
for (int k = 0; k < 3; k++) {
resetLeds(leds);
digitalWrite(Green1, HIGH);
digitalWrite(Green2, HIGH);
digitalWrite(Yellow1, HIGH);
digitalWrite(Yellow2, HIGH);
delay(Del3);
resetLeds(leds);
digitalWrite(Red1, HIGH);
digitalWrite(Red2, HIGH);
digitalWrite(Blue1, HIGH);
digitalWrite(Blue2, HIGH);
delay(Del3);
}
// Fourth pattern
for (int l = 0; l < 3; l++) {
resetLeds(leds);
digitalWrite(Green1, HIGH);
digitalWrite(Green2, HIGH);
digitalWrite(Yellow1, LOW);
digitalWrite(Yellow2, LOW);
digitalWrite(Blue1, HIGH);
digitalWrite(Blue2, HIGH);
delay(Del4);
resetLeds(leds);
digitalWrite(Yellow1, HIGH);
digitalWrite(Yellow2, HIGH);
digitalWrite(Red1, HIGH);
digitalWrite(Red2, HIGH);
delay(Del4);
}
}
void resetLeds(int leds[]) {
for (int i = 0; i < 8; i++) {
digitalWrite(leds[i], LOW);
}
}