Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Dean Nguyen
- //Comp #1
- //All Defines
- #define SW1 6
- #define LED1 10
- #define MSEC_SAMPLE 1
- //States
- enum {yellowLED_ON, yellowLED_OFF};
- //Setting variables
- boolean isSwPressed, prevIsSwPressed, isSwJustReleased, isSwJustPressed;
- int state = yellowLED_OFF, prevState = !state;
- boolean isNewState;
- void setup() {
- pinMode(SW1, INPUT_PULLUP);
- pinMode(LED1, OUTPUT); digitalWrite(LED1, LOW);
- Serial.begin(9600);
- }
- void loop() {
- //Switch statements
- prevIsSwPressed = isSwPressed;
- isSwPressed = !digitalRead(SW1);
- isSwJustPressed = (isSwPressed && !prevIsSwPressed); // switch edge detection
- isSwJustReleased = (!isSwPressed && prevIsSwPressed);
- //State statements
- isNewState = (state != prevState);
- prevState = state;
- //Switch-Case
- switch (state) {
- case yellowLED_OFF:
- //Entry Housekeeping
- if (isNewState) {
- Serial.println("led_state: yellowLED_OFF");
- }
- //State Business
- digitalWrite(LED1, LOW);
- //Exit Housekeeping
- if (isSwPressed) {
- state = yellowLED_ON;
- }
- break;
- case yellowLED_ON:
- //Entry Housekeeping
- if (isNewState) {
- Serial.println("led_state: yellowLED_ON");
- }
- //State Business
- digitalWrite(LED1, HIGH);
- //Exit Housekeeping
- if (isSwJustReleased) {
- state = yellowLED_OFF;
- }
- break;
- }
- delay(MSEC_SAMPLE);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement