void setup()
{
pinMode( LED_BUILTIN, OUTPUT );
Serial.begin( 9600 );
Serial.print( "Setting up\n\n" );
}
void loop()
{
uint32_t now = millis();
static uint32_t past = now;
static bool blink = false;
static bool ledState = false;
if ( Serial.available() )
{
char c = Serial.read();
if( c == '0' )
{
blink = false;
digitalWrite( LED_BUILTIN, LOW );
Serial.print( "LED is off\n" );
}
else if( c == '1' )
{
blink = false;
digitalWrite( LED_BUILTIN, HIGH );
Serial.print( "LED is on!\n" );
}
else if( c == '2' )
{
blink = true;
past = now;
ledState = true;
digitalWrite( LED_BUILTIN, HIGH );
Serial.print( "LED is blinking!\n" );
}
}
if ( blink && now - past >= 1000 )
{
past = now;
ledState = !ledState;
digitalWrite( LED_BUILTIN, ledState ? HIGH : LOW );
}
}