If o non if , it is the problem...

Sono molto newbbie in questo forum (o meglio, proprio su tutta la materia...) ma qui si spacca il byte in otto!
E d'altronde se così non fosse sarebbe (infatti "è") facile sbagliare per una virgola mal posta...

Ed ecco il codice funzionante "quasi" bene...

Dico quasi perché c'è qualcosa forse nella dichiarazione iniziale "int", o non so cosa, che fa passare solo i valori ad una cifra (da 0 a 9), per cui il valore 982 viene passato come 9, poi come 8 e quindi come 2. Ovviamente in questo caso il led rimane spento perché l'ultimo valore è <2…
mah…

Ciao, sm

/* accendere o spegnere un led in funzione del valore ricevuto sulla seriale */

#define led 13  // led connesso al pin n°13
int rx = 0;    // variabile per contenere il carattere ricevuto

void setup()
	{
	Serial.begin(9600); // imposto la UART per lavorare a 9600
	pinMode(led, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
	Serial.flush(); // svuoto il buffer di ricezione seriale
	}

void loop()
	{

	if (Serial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
		{
		rx = Serial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
		Serial.flush(); // svuoto il buffer di ricezione seriale

		if (rx>'5') // se ho ricevuto un valore maggiore di 5
			
				{
				digitalWrite(led,HIGH); // accendo il led
				Serial.println("Led Acceso"); e stampo a video lo stato del led
				}

		else // se invece 

		if (rx<'4') // ho ricevuto un valore inferiore a 5
			
				{
				digitalWrite(led,LOW); // spengo il led
				Serial.println("Led spento"); e stampo a video lo stato del led
				}

		}
	}