Problema Serial.avaliable()

void loop ()
{
  if(Serial.available()>0)
  {
     Serial.println("entrato");
     Serial.print(0);
  }
  
}

perchè entra nell'if anche se scrivo -1 e 0? O.o?
poi continua ad entrare in continuazione perchè accetta 0 e entrato :expressionless:
il print(0) l'ho messo in modo che non entra in continuazione da solo ma in modo che aspetti il prossimo iput dal monitor

Il comando restituisce quanti caratteri disponibili in coda oppure 0 se non ci sono dei dati da leggere, non il valore del dato available (disponibile)
Poi devi usare la read() per leggere il dato e analizzarne il valore oppure peek() che ti dice qual'e' il valore del dato in coda.

se scrivi "-1" hai scritto 2 caratteri, il meno e l'uno.
Se scrivi zero hai scritto un carattere, lo zero.
Quindi HAI inviato dei dati. La funzione ritorna 0 se NON hai scritto niente. E se provi a fare una read() quando non ci sono dati avaliable, ottieni -1, altrimenti ottieni il valore corrispondente al carattere nella tabela ascii