Prova con questo:
int led=101;
int a;
const unsigned long TimeOut = 10; // timeout 10 ms
unsigned long T = 0; // timer
String SerRx; // buffer ricezione
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
SerRx = ""; // azzera buffer ricezione
T = millis(); // timer partito
while (millis() - T < TimeOut) { // attesa timeout
while (Serial.available() > 0) { // ricezione da Serial Monitor
SerRx += char(Serial.read()); // aggiungi carattere al buffer
T = millis(); // reset timer
}
}
SerRx.trim(); // elimina spazi iniziali e finali
SerRx.toUpperCase(); // converti in maiuscolo
if (SerRx == "ON") digitalWrite(led, HIGH);
else if (SerRx == "OFF") digitalWrite(led, LOW);
else if (SerRx == "XXX") <altra azione>;
else if (SerRx == "ABC") <altra azione>;
}
Ettore Massimo Albani