// ************************************
// * NAME Rhys Miller *
// * Program: Arduino Program 2 *
// * Date: FEB 27 2024 *
// * Desc: DDR Light Chaser *
// ************************************
int pinNumberRed = 13 ; // set variable pinNumberRed to pin 13
int pinNumberYel = 12 ; // set variable pinNumberYel to pin 12
int pinNumberGre = 11 ; // set variable pinNumberGre to pin 11
int buttonNumber = 7 ; // set variable buttonNumber to pin 8
int patternNumber = 0; // sets variavle patternNumber to 0
int delayTime = 100 ; // set variable delayTime to 100 milliseconds
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // begins serial monitor feedback to monitor at 9600bps
pinMode(7,INPUT_PULLUP); // set pinMode for pin 7 to INPUT_PULLUP
DDRB = B111111 ; // set Data Direction Register for PORTB to all output
} // end setup
void loop() {
// put your main code here, to run repeatedly:
// prints current patterNumber to serial monitor
Serial.println(patternNumber);
// Checks if button is pressed and if so it changes the pattern number by 1 till it reaches a max value of 5 and then resets to 0
if (digitalRead(buttonNumber) == 0 ){
patternNumber ++ ;
if (patternNumber >5) {
patternNumber = 0;
}
}// end if()
// checks current pattern number and changes the led patter accordingly
if(patternNumber == 0){ // checks if patternNumber = 0
// start of pattern 0
// First sequence in pattern 0
PORTB = B000110 ; // OFF-OFF-OFF-ON-ON-OFF
delay(delayTime);
// Second sequence in pattern 0
PORTB = B000010 ; // OFF-OFF-OFF-OFF-ON-OFF
delay(delayTime);
// Final sequence in pattern 0
PORTB = B000000 ; // OFF-OFF-OFF-OFF-OFF-OFF
delay(delayTime);
// end of pattern 0
} else if(patternNumber == 1){ // if not pattern zero checks for patternNumber = 1
// start of pattern 1
// first sequence in pattern 1
PORTB = B000001 ; // OFF-OFF-OFF-OFF-OFF-ON
delay(delayTime);
// second sequence in pattern 1
PORTB = B000010; // OFF-OFF-OFF-OFF-ON-OFF
delay(delayTime);
// final sequence in pattern 1
PORTB = B000100 ; // OFF-OFF-OFF-ON-OFF-OFF
delay(delayTime);
// end of pattern 1
} else if(patternNumber == 2){ // if not pattern one checks for patternNumber = 2
// start of pattern 2
// first sequence of pattern 2
PORTB = B000011; // OFF-OFF-OFF-OFF-ON-ON
delay(delayTime);
// second sequence of pattern 2
PORTB = B000101 ; // OFF-OFF-OFF-ON-OFF-ON
delay(delayTime);
// final sequence of of pattern 2
PORTB = B000110; // OFF-OFF-OFF-ON-ON-OFF
delay(delayTime);
// end of pattern 2
} else if(patternNumber == 3){ // if not pattern two checks for patternNumber = 3
// start of pattern 3
// first sequence of pattern 3
PORTB = B000011; // 0FF-OFF-OFF-OFF-ON-ON
delay(delayTime);
// second sequence of pattern 3
PORTB = B000001; // OFF-OFF-OFF-OFF-OFF-ON
delay(delayTime);
// final sequence of pattern 3
PORTB = B000000; // OFF-OFF-OPFF-OFF-OFF-OFF
delay(delayTime);
// end of pattern 3
} else if(patternNumber == 4){ // if not pattern three checks for patternNumber = 4
// start of pattern 4
// first sequence of pattern 4
PORTB = B000100; // OFF-OFF-OFF-ON-OFF-OFF
delay(delayTime);
// second sequence of pattern 4
PORTB = B000010; // OFF-OFF-OFF-OFF-ON-OFF
delay(delayTime);
// final sequence of pattern 4
PORTB = B000001; // OFF-OFF-OFF-OFF-OFF-ON
delay(delayTime);
// end of pattern 4
} else { // if not pattern four starts pattern 5
// start of pattern 5
// first sequence of pattern 5
PORTB = B000110; // OFF-OFF-OFF-ON-ON-OFF
delay(delayTime);
// second seqence of pattern 5
PORTB = B000101; // OFF-OFF-OFF-ON-OFF-ON
delay(delayTime);
// final seqence of pattern 5
PORTB = B000011; // OFF-OFF-OFF-OFF-ON-ON
delay(delayTime);
// end of pattern 5
}
} // end blinking