// LAB 1; ADRIANA SARAH ; 52224123439 L01-B01
int speaker = 8;
int redLight = 2;
int yellowLight = 3;
int greenLight = 4;
int redSwitch = 13;
int yellowSwitch = 12;
int greenSwitch = 11;
int redSwitchState = 0;
int yellowSwitchState = 0;
int greenSwitchState = 0;
void setup() {
pinMode(speaker, OUTPUT);
pinMode(redLight, OUTPUT);
pinMode(yellowLight, OUTPUT);
pinMode(greenLight, OUTPUT);
pinMode(redSwitch, INPUT);
pinMode(yellowSwitch, INPUT);
pinMode(greenSwitch, INPUT);
Serial.begin(9600); // initialize serial communication for debugging
Serial.println("Setup is complete, ready to execute patterns.");
}
void loop() {
if (digitalRead(redSwitch) == 1) {
delay(50); // debounce delay
if (digitalRead(redSwitch) == 1, HIGH) { // to confirm button is still pressed
Serial.println("Red button is pressed.");
pattern1();
}
}
if (digitalRead(yellowSwitch) == 1) {
delay(50); // debounce delay
if (digitalRead(yellowSwitch) == 1, HIGH) { // to confirm button is still pressed
Serial.println("Yellow button is pressed.");
pattern2();
}
}
if (digitalRead(greenSwitch) == 1, HIGH) {
delay(50); // debounce delay
if (digitalRead(greenSwitch) == HIGH) { // to confirm button is still pressed
Serial.println("Green button is pressed.");
pattern3();
}
}
}
// pattern 1 ; all LEDS + buzzer
void pattern1() {
Serial.println("Pattern 1 is executing.");
digitalWrite(redLight, HIGH);
delay(200);
digitalWrite(redLight, LOW);
delay(200);
digitalWrite(yellowLight, HIGH);
delay(200);
digitalWrite(yellowLight, LOW);
delay(200);
digitalWrite(greenLight, HIGH);
delay(200);
digitalWrite(greenLight, LOW);
delay(200);
tone(speaker, 1000, 100); // play 1000 Hz for 100 ms
delay(200); // wait to let the tone finish playing
Serial.println("Pattern 1 is done.");
}
// pattern 2 ; all LEDS in reverse + buzzer
void pattern2() {
Serial.println("Pattern 2 is executing.");
digitalWrite(redLight, HIGH);
delay(200);
digitalWrite(redLight, LOW);
delay(200);
digitalWrite(yellowLight, HIGH);
delay(200);
digitalWrite(yellowLight, LOW);
delay(200);
digitalWrite(greenLight, HIGH);
delay(200);
digitalWrite(greenLight, LOW);
tone(speaker, 1000, 100); // play 1000 Hz for 100 ms
delay(200);
digitalWrite(greenLight, HIGH);
delay(200);
digitalWrite(greenLight, LOW);
digitalWrite(yellowLight, HIGH);
delay(200);
digitalWrite(yellowLight, LOW);
delay(200);
digitalWrite(redLight, HIGH);
delay(200);
digitalWrite(redLight, LOW);
delay(200);
Serial.println("Pattern 2 is done.");
}
// pattern 3 ; two LEDs at once + remainder LED and buzzer
void pattern3() {
Serial.println("Pattern 3 is executing.");
digitalWrite(redLight, HIGH);
digitalWrite(yellowLight, HIGH);
delay(200);
digitalWrite(redLight, LOW);
digitalWrite(yellowLight, LOW);
delay(200);
tone(speaker, 1000, 100); // play 1000 Hz for 100 ms
digitalWrite(greenLight, HIGH);
delay(200);
digitalWrite(greenLight, LOW);
Serial.println("Pattern 3 is done.");
}