Controllo led

Buonasera a tutti;
Controllo led mediante Ir
Sapete come posso fare a spegnere il led collegato sul pin 13 ripremendo lo stesso pulsante senza doverne per forza premere un altro?

#include <IRremote.h>

int RECV_PIN = 11;

int reversePin = 13;                 
int forwardPin = 5;                
int playPin = 6;                
int pausePin = 7;                

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(reversePin, OUTPUT);      // sets the digital pin as output
pinMode(forwardPin, OUTPUT);      // sets the digital pin as output
pinMode(playPin, OUTPUT);      // sets the digital pin as output
pinMode(pausePin, OUTPUT);      // sets the digital pin as output
}

void loop() {
if (irrecv.decode(&results)) {
 
 long int decCode = results.value;
 Serial.println(decCode);
 switch (results.value) {
   case 1431986946:
     Serial.println("Forward");
     digitalWrite(forwardPin, HIGH);   // sets the LED on
     break;
   case 16738455:
     Serial.println("Reverse");
     digitalWrite(reversePin, HIGH);   // sets the LED on
     break;
   case -873913272:
     Serial.println("Play");
     digitalWrite(playPin, HIGH);   // sets the LED on
     break;
   case -1025287420:
     Serial.println("Pause");
     digitalWrite(pausePin, HIGH);   // sets the LED on
     break;  
   case 16730805:
     Serial.println("Stop");
     digitalWrite(forwardPin, LOW);   // sets the LED off
     digitalWrite(reversePin, LOW);   // sets the LED off
     digitalWrite(playPin, LOW);   // sets the LED off
     digitalWrite(pausePin, LOW);   // sets the LED off
     break;  
   default: 
     Serial.println("Waiting ...");
 }

 irrecv.resume(); // Receive the next value
}
}

In conformità al regolamento, punto 7, edita (in basso a destra del post, bottone More → Modify) il tuo post e racchiudi il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.

Guglielmo

Nello stesso modo come fanno col pulsante. C'é da controllare se il telecomando da te usato manda il codice una volta a pressione tasto o ripetutamente.

http://arduino.stackexchange.com/questions/3479/how-to-toggle-led-on-button-press

Ciao Uwe

Manda il codice ripetutamente è quello il problema c'è il modo di farlo lo stesso?

nikopoli: Manda il codice ripetutamente è quello il problema c'è il modo di farlo lo stesso?

Fa lo stesso. Dovrai usare una variabile esempio statoPlay di tipo int che metterai all'inizio =LOW che ti dice se il tasto ha acceso o spento. Esempio fatto tutto nel play:

case -873913272:
  if(statoPlay==LOW)  // LOW oppure HIGH
  { statoPlay=HIGH;
    Serial.println("Play");
    digitalWrite(playPin, HIGH);   
  }
  else
  { statoPlay=LOW;
    Serial.println("Stop");
    digitalWrite(playPin, LOW);
  }
  break;

Tieni conto che tenendo premuto il pulsante il tuo telecomando invia parecchie volte al secondo il codice del tasto quindi al il led che spegne/accende di continuo