/* LED Demo program to illustrate the use of use of switches as input devices to control the of/off state and sequence of LEDs. Pins 9, 10, 11, and 12 are used as button (switch) inputs. Pins 0 through 7 are output pins connected to LEDs as indicators. Please see Lab Work Sheet for Trainer Board set and wiring connections. */ // the number of the pushbutton pin const int buttonPin1 = 12; const int buttonPin2 = 11; const int buttonPin3 = 10; const int buttonPin4 = 9; // the number of the LED pin const int ledPin0 = 0; const int ledPin1 = 1; const int ledPin2 = 2; const int ledPin3 = 3; const int ledPin4 = 4; const int ledPin5 = 5; const int ledPin6 = 6; const int ledPin7 = 7; // variables will change: // variable for reading the pushbutton status int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0; int buttonState4 = 0; //delay between blinks int time = 50; void setup() { // initialize the LED pin as an output: pinMode(ledPin0, OUTPUT); pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); pinMode(ledPin4, OUTPUT); pinMode(ledPin5, OUTPUT); pinMode(ledPin6, OUTPUT); pinMode(ledPin7, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); } void loop() { // read the state of the pushbutton value: buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); buttonState3 = digitalRead(buttonPin3); buttonState4 = digitalRead(buttonPin4); //change the delay according to button 3 if (buttonState4 == HIGH) //read high { time =50; //speed up blink } else { time = 200; // slow down blink } //Create an illusion of flowing LEDs - flow led code //turn off this led and turn on led, then it looks like the light is flowing if(buttonState1 == HIGH) { digitalWrite(ledPin7, LOW); digitalWrite(ledPin0, HIGH); delay(time); digitalWrite(ledPin0, LOW); digitalWrite(ledPin1, HIGH); delay(time); digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); delay(time); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, HIGH); delay(time); digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, HIGH); delay(time); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, HIGH); delay(time); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, HIGH); delay(time); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, HIGH); delay(time); } else { if (buttonState2 == HIGH) // if read switch 2 high { // all led blink digitalWrite(ledPin7, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin3, LOW); digitalWrite(ledPin2, LOW); digitalWrite(ledPin1, LOW); digitalWrite(ledPin0, LOW); delay(time); digitalWrite(ledPin7, HIGH); digitalWrite(ledPin6, HIGH); digitalWrite(ledPin5, HIGH); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin2, HIGH); digitalWrite(ledPin1, HIGH); digitalWrite(ledPin0, HIGH); delay(time); } else// if read switch 2 low { if (buttonState3 == HIGH)// if read switch 3 high { //LED blink every other one digitalWrite(ledPin7, HIGH); digitalWrite(ledPin6, LOW); digitalWrite(ledPin5, HIGH); digitalWrite(ledPin4, LOW); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin2, LOW); digitalWrite(ledPin1, HIGH); digitalWrite(ledPin0, LOW); delay(time); digitalWrite(ledPin7, LOW); digitalWrite(ledPin6, HIGH); digitalWrite(ledPin5, LOW); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin3, LOW); digitalWrite(ledPin2, HIGH); digitalWrite(ledPin1, LOW); digitalWrite(ledPin0, HIGH); delay(time); } else// if read switch 3 low { // turn off all led digitalWrite(ledPin7, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin3, LOW); digitalWrite(ledPin2, LOW); digitalWrite(ledPin1, LOW); digitalWrite(ledPin0, LOW); } } } }