Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int buttonPin = 8;
- int last_button_value = HIGH; // pin 2 is HIGH when button is not pressed
- const int ledPin = 9;
- uint8_t state=0 ;
- void setup()
- {
- pinMode( buttonPin, INPUT_PULLUP);
- pinMode( ledPin, OUTPUT);
- }
- void loop()
- {
- bool buttonPressed = false;
- bool buttonReleased = false;
- int button_value = digitalRead( buttonPin);
- if( button_value != last_button_value)
- {
- if( button_value == LOW) // low is button pressed
- {
- buttonPressed = true;
- }
- else
- {
- buttonReleased = true;
- }
- last_button_value = button_value;
- }
- switch( state)
- {
- case 0:
- digitalWrite( ledPin, LOW);
- state = 1;
- break;
- case 1:
- if( buttonPressed)
- {
- state = 2;
- }
- break;
- case 2:
- digitalWrite( ledPin, HIGH);
- if( buttonPressed)
- {
- state = 3;
- }
- break;
- case 3:
- digitalWrite(9, (millis() / 500) % 2);
- if( buttonPressed)
- {
- state = 4;
- }
- break;
- case 4:
- digitalWrite(9, (millis() / 167) % 2);
- if( buttonPressed)
- {
- state = 5;
- }
- break;
- case 5:
- digitalWrite(9, (millis() / 34) % 2);
- if( buttonPressed)
- {
- state = 6;
- }
- break;
- case 6:
- digitalWrite(9, (millis() / 20) % 2);
- if( buttonPressed)
- {
- state = 7;
- }
- break;
- case 7:
- digitalWrite(9, (millis() / 8) % 2);
- if( buttonPressed)
- {
- state = 8;
- }
- break;
- case 8:
- digitalWrite(9, (millis() / 4) % 2);
- if( buttonPressed)
- {
- state = 0;
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment