// ************************************
// * NAME Rhys Miller *
// * Program: Arduino Program 3 *
// * Date: MAR 7 2024 *
// * Desc: Adjustable delay light chaser *
// *******************************************
int buttonNumber = 7 ; // set variable buttonNumber to pin 8
int patternNumber = 0; // sets variavle patternNumber to 0
int delayTime = 100 ; // set variable delayTime to 0 milliseconds
int patternArray[6][4] = {{0,48,16,0},{0,8,16,32},{0,24,40,48},{0,24,8,0},{0,32,16,8},{0,48,40,24}}; // creates
// a two dimensional 6 by 4 array that stores all the sequences for all the patterns as per d2l assignment
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);
Serial.println(delayTime);
delayTime = analogRead(A5); // set delay time acorindinng to signal from potentiometer
// Checks if button is pressed, if so it changes the pattern number by 1
if (digitalRead(buttonNumber) == 0 ){
patternNumber ++ ;
// when it reaches pattern 5 it resets patternNumber to 0
if (patternNumber >5) {
patternNumber = 0; }
} // end if
// for loop that controls the sequence in the pattern writes the data to PORTB
for (int x = 0; x < 4; x++){
PORTB = patternArray[patternNumber][x];
delay(delayTime);
} // end loop
} // end blinking