/*
Name: Indervir Rai
Program Name: Light chaser
Date: 2025-02-28
Program full description: This program show the change of the LED's turning
on and off in certain patterns.
*/
int redLED = 13; // the red LED is connected to pin 13
int yellowLED = 12; // the yellow LED is connected to pin 12
int greenLED = 11; // the green LED is connected to pin 11
int buttonPIN = 8; // the button is connected to pin 8
int patternNumber = 0;
int patternDelay = 100;
void setup() {
pinMode (redLED, OUTPUT); // sets red pin to output
pinMode (yellowLED, OUTPUT); // sets yellow pin to output
pinMode (greenLED, OUTPUT); // sets green pin to output
Serial.begin(9600);
pinMode( buttonPIN, INPUT_PULLUP); /* sets pin to high voltage, and will
go to a low voltage when pressed*/
}
void loop() {
int buttonVa1 = digitalRead(buttonPIN); // read state of button
if (patternNumber == 0) //
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
} // closes pattern 0
else if (patternNumber == 1) //
{
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
} // close pattern 1
else if (patternNumber == 2) //
{
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
} // close pattern 2
else if (patternNumber == 3) //
{
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
} // close pattern 3
else if (patternNumber == 4) //
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
delay(patternDelay);
} // close pattern 4
else if (patternNumber == 5) //
{
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
delay(patternDelay);
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
digitalWrite(greenLED, LOW);
delay(patternDelay);
digitalWrite(redLED, HIGH);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, LOW);
delay(patternDelay);
} // closes pattern 5
if (buttonVa1 == LOW);
{
patternNumber = patternNumber +1;
} // closes the pattern number increasing by 1 each time the button is pressed
if (patternNumber == 6)
{
patternNumber = patternNumber - 6;
} // closes the pattern number going back to 0 once the button reaches 6 presses
}