Go Down

Topic: Aiuto codice arduino. (Read 326 times) previous topic - next topic

RxxK

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

Code: [Select]
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

uwefed

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

Go Up