/*
Name: Indervir Rai
Program Name: Button Changes Patterns With DDRB
Date: 2025-03-17
Program full description: Use DDRB and PORTB to write to the port in ONE LINE
*/
int buttonPIN = 7; // the button is connected to pin 7
int patternNumber = 0;
int patternDelay = 100;
void setup() {
DDRB = B111111; // Numbers 13-8 repersented by 1 for HIGH and 0 for LOW
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) //
{
PORTB = B001111;
delay(patternDelay);
PORTB = B011111;
delay(patternDelay);
PORTB = B111111;
delay(patternDelay);
} // closes pattern 0
else if (patternNumber == 1) //
{
PORTB = B110111;
delay(patternDelay);
PORTB = B101111;
delay(patternDelay);
PORTB = B011111;
delay(patternDelay);
} // close pattern 1
else if (patternNumber == 2) //
{
PORTB = B100111;
delay(patternDelay);
PORTB = B010111;
delay(patternDelay);
PORTB = B001111;
delay(patternDelay);
} // close pattern 2
else if (patternNumber == 3) //
{
PORTB = B100111;
delay(patternDelay);
PORTB = B110111;
delay(patternDelay);
PORTB = B111111;
delay(patternDelay);
} // close pattern 3
else if (patternNumber == 4) //
{
PORTB = B011111;
delay(patternDelay);
PORTB = B101111;
delay(patternDelay);
PORTB = B110111;
delay(patternDelay);
} // close pattern 4
else if (patternNumber == 5) //
{
PORTB = B001111;
delay(patternDelay);
PORTB = B010111;
delay(patternDelay);
PORTB = B100111;
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
}