//Pico_StateMachine_01.ino
//Define Flags or States
enum State_enum{LED_ON,
LED_OFF,
LED_test};
enum Switch_enum{PRESS,
UNPRESS};
#define LED0 6
#define LED1 0
#define SW0 16
enum State_enum state;
enum Switch_enum Switch;
void setup() {
// put your setup code here, to run once:
Serial1.begin(115200);
Serial1.println("Hello, Raspberry Pi Pico W!");
pinMode(LED0,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(SW0,INPUT_PULLUP);
delay(5000);
Serial1.print("LED_ON = ");
Serial1.println(LED_ON);
Serial1.print("LED_OFF = ");
Serial1.println(LED_OFF);
Serial1.print("LED_test = ");
Serial1.println(LED_test);
state = LED_OFF; //Initial State State0
}
void loop() {
//Read Switch
if(digitalRead(SW0)) //if digitalRead(SW0) == 1 is UNPRESS@
{Switch = UNPRESS;}
else
{Switch = PRESS;} //if digitalRead(SW0) == 0 is PRESS
switch(state) {
case LED_OFF: //State Unpress: State0
if(Switch == PRESS){
digitalWrite(LED0,HIGH);
digitalWrite(LED1,HIGH);
state = LED_ON; //Next state
}
break;
case LED_ON: //State Press: State1
if(Switch == UNPRESS){
digitalWrite(LED0,LOW);
digitalWrite(LED1,LOW);
state = LED_OFF; //Next state
}
break;
}
}