@kline helped me with Phase 1 of my Crustacean Chirpy Chip Challenge project, which I have completed (sort of). I got the programming done but I didn’t do all the reading (yet).
Note to self: My Arduino Uno knockoff identifies itself as a “QinHeng Electronics USB Serial” USB device.
This is my code:
enum state { OFF, ON, FLASH }; enum state state = OFF; int blink_pin = 13; void setup() { pinMode( blink_pin, OUTPUT ); Serial.begin( 9600 ); } void loop() { if ( Serial.available() > 0 ) { read_command(); } switch ( state ) { case ON : digitalWrite( blink_pin, HIGH ); break; case OFF : digitalWrite( blink_pin, LOW ); break; case FLASH : int pin = digitalRead( blink_pin ); digitalWrite( blink_pin, !pin ); delay( 500 ); digitalWrite( blink_pin, pin ); delay( 500 ); break; } } void read_command() { String command = Serial.readString(); command.trim(); command.toLowerCase(); Serial.print( "Command: " ); Serial.println( command ); if ( command == "on" ) { state = ON; } else if ( command == "off" ) { state = OFF; } else if ( command == "flash" ) { state = FLASH; } else { Serial.println( "Unknown command." ); } }
The code which would actually implement the spec, as given:
void read_command() { char c = Serial.read(); switch ( c ) { case 'a' : state = ON; break; case 's' : state = OFF; break; } }