Ricevere una stringa su una porta

Salve,

sto tentando di collegare il sensore di umidità al mio progetto ma no riesco ricevere una determinata stringa per una successiva valutazione da parte del programma in basic.

Lo sketch qui listato assolve la sua funzione nella prima parte ovvero quella dell’attivazione di quattro relays ma dà dei risultati differenti ed apparentemente incomprensibili nella seconda parte, quella della scrittura sulla porta.

Indipendentemente dal valore registrato sulla porta analogica, una delle due stringhe (111 o 000) dovrebbe essere il risultato del confronto ma non lo è.

Evidentemente sbaglio qualcosa, qualcuno può aiutarmi ? Grazie

const int Soglia = 300;

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT); 
  pinMode(11, OUTPUT);
  Serial.begin(9600);
}

void loop() 
{
  if (Serial.available())
  {
  char ch = Serial.read();
  if (ch=='1')
  	digitalWrite(8, LOW);
  else if (ch=='A')
     	digitalWrite(8, HIGH);
  else if (ch=='2')
     	digitalWrite(9, LOW);
  else if (ch=='B')
     	digitalWrite(9, HIGH);
  if (ch=='3')
     	digitalWrite(10, LOW);
  else if (ch=='C')
     	digitalWrite(10, HIGH);
  if (ch=='4')
     	digitalWrite(11, LOW);
  else if (ch=='D')
     	digitalWrite(11, HIGH);
  }
   
  int Valore = analogRead(A0);   
  if (Valore <= Soglia)
	Serial.println("111");
  else
	Serial.println("000");
   }
}

Ma alla fine forse c'è una } in più

Così spari sulla seriale una enorme raffica di dati...

In generale, prima di andare sul programma Basic, verifica con il monitor seriale dell'IDE cosa stai inviando.