/* * Hello Simon * Author : Mikko Toivonen * 22.3.2017 */ // constants won't change. They're used here to // set pin numbers: const int BluePin = 3; // Blue const int OrgPin = 8;// Orange const int GrePin = 2;// Green const int RedPin = 7; // Red // variables will change: int BlueState = 0; // variable for reading the pushbutton status int RedState = 0; int GreState = 0; int OrgState = 0; void setup() { // Initialize the buttons for reading. pinMode(OrgPin, INPUT); pinMode(GrePin, INPUT); pinMode(RedPin, INPUT); pinMode(BluePin, INPUT); } void loop() { // read the state of the pushbutton value: BlueState = analogRead(BluePin); RedState = analogRead(RedPin); GreState = analogRead(GrePin); OrgState = analogRead(OrgPin); // check if the pushbutton is pressed. // if it is, the buttonState is LOW: if (BlueState == LOW) { // turn Blue LED on: pinMode(BluePin, OUTPUT); pinMode(GrePin, OUTPUT); analogWrite(BluePin, 255); analogWrite(GrePin, 255); }else {// turn the LED off and return to input mode analogWrite(BluePin, 0); analogWrite(GrePin, 0); pinMode(GrePin, INPUT); pinMode(BluePin, INPUT); } if (RedState == LOW) { // turn RED and orange LED on: pinMode(RedPin, OUTPUT); analogWrite(RedPin, 255); analogWrite(OrgPin, 255); }else {// turn the LED off and return to input mode analogWrite(RedPin, 0); analogWrite(OrgPin, 0); pinMode(RedPin, INPUT); } if (GreState == LOW) { //Using a do-while loop might allow the board to break out of the loop. /* // turn all LEDs on: pinMode(BluePin, OUTPUT); pinMode(GrePin, OUTPUT); pinMode(RedPin, OUTPUT); pinMode(OrgPin, OUTPUT); analogWrite(BluePin, 255); analogWrite(GrePin, 255); analogWrite(RedPin, 255); analogWrite(OrgPin, 255); */ //Make the leds blink in sequence // reset to off state pinMode(BluePin, OUTPUT); pinMode(GrePin, OUTPUT); pinMode(RedPin, OUTPUT); pinMode(OrgPin, OUTPUT); analogWrite(RedPin, 0); analogWrite(OrgPin, 0); analogWrite(BluePin, 0); analogWrite(GrePin, 0); //start lighthing up the LEDs at 100ms intervals. analogWrite(GrePin, 255); delay(100); analogWrite(BluePin, 255); delay(100); analogWrite(RedPin, 255); delay(100); analogWrite(OrgPin, 255); delay(100); //and then start turning them off. analogWrite(OrgPin, 0); delay(100); analogWrite(RedPin, 0); delay(100); analogWrite(BluePin, 0); delay(100); analogWrite(GrePin, 0); delay(100); }else { //with IF, the board is stuck in this loop, as there is no further check if the button is being pressed. //this loop overrides the other loops, and they cant be used without resetting the board. //turn the LEDs off and return to input mode analogWrite(RedPin, 0); analogWrite(OrgPin, 0); analogWrite(BluePin, 0); analogWrite(GrePin, 0); pinMode(GrePin, INPUT); pinMode(BluePin, INPUT); pinMode(RedPin, INPUT); pinMode(OrgPin, INPUT); } /* if (OrgState == LOW) { // Button for the Orange LED is not co-operative. pinMode(BluePin, OUTPUT); pinMode(GrePin, OUTPUT); pinMode(RedPin, OUTPUT); analogWrite(BluePin, 255); analogWrite(GrePin, 255); analogWrite(RedPin, 255); }else {// turn the LEDs off and return to input mode analogWrite(RedPin, 0); analogWrite(OrgPin, 0); analogWrite(BluePin, 0); analogWrite(GrePin, 0); pinMode(GrePin, INPUT); pinMode(BluePin, INPUT); pinMode(RedPin, INPUT); }*/ }