Aiuto codice arduino.

Ciao ragazzi, ho un problema con il codice che voglio realizzare che non riesco a risolvere:

const int ledPin13 = 13;      
int ledState;

void setup()
{ 
  Serial.begin(9600);
  pinMode(ledPin13, OUTPUT);
}
void loop() {
byte brightnessON;
byte brightnessOFF;

      if (Serial.available()) {

  brightnessON = Serial.read();

      if (brightnessON == 48) {
      
      digitalWrite(ledPin13,HIGH);  
     
      } 

   ledState = digitalRead(ledPin13);
    
   brightnessOFF = Serial.read() ;
    
      if (ledState == HIGH) {
    
      if (brightnessOFF == 48 ) {
        
      digitalWrite(ledPin13, LOW);
            
      }
    }
  }
}

Il punto è che vorrei accendere e spegnere su comando un led tramite seriale. Inviando infatti sul seriale 0 arduino riceve il valore 48 e come ho scritto nel codice il led si dovrebbe accendere e fino a qua tutto bene. Poi chiedo di verificare se il led è acceso (HIGH) e se riceve nuovamente il valore 48 si dovebbe spegnere ma qua non succede niente il led rimane acceso. Qualcuno mi può aiutare? e spero di essermi spiegato. Grazie

Hai un errore concettuale.

Non puoi avere 2 variabili che leggono la seriale.
Il primo carattere finisce sempre nella variabile brightnessON ma mai nella seconda variabile brightnessOFF. Per caricare qualcosa nella seconda variabile dovresti spedire 2 zero consecutivi. (zero zero enter e non zero enter, zero enter)

Usa un unica variabile e insieme allo stato del led lo spegni o lo accendi.

Ciao Uwe