Pages: [1]   Go Down
Author Topic: Aiuto codice arduino.  (Read 303 times)
0 Members and 1 Guest are viewing this topic.
Basel, CH
Offline Offline
Jr. Member
**
Karma: 1
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21857
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: