Go Down

Topic: Aiuto codice arduino. (Read 342 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy