anerDev
September 17, 2011, 9:16pm
1
ciao a tutti !!!
Sapete dirmi come far accendere un led, e spegnerlo quando ripremo il pulsante, senza usare la funzione delay ?
Cioè premi una volta il pulsante e il led si accende, ripremo il pulsante ed il led si spegne ...
Vi incollo il codice che ho usato, dato che il pulsante è quello di un telecomando...
#include <IRremote.h>
int led1 = 12;
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(led1, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
if(results.value == 33480735)
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
}
}
Sapete aiutarmi ?
Grazie 1000
ratto
September 17, 2011, 9:18pm
2
Puoi usare o meglio leggere i timer interni sfruttando millis......
menniti
September 17, 2011, 9:28pm
3
In realtà ti basterebbe leggere lo status del pin led1 ogni volta che results.value == 33480735.
Se è HIGH gli dici di passare a LOW, se è LOW gli dici di passare ad HIGH.
anerDev
September 17, 2011, 9:34pm
4
Grazie ragazzi per la risposta ....
Potete, gentilmente, modificare il mio codice, perchè non riesco a capire quello che devo fare ...
Grazie !!
leo72
September 17, 2011, 10:07pm
5
byte flag=0; //0 è uguale a LOW
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
if(results.value == 33480735)
digitalWrite(led1, flag);
flag^=1; //con lo XOR, scambi tra 0 e 1 ricursivamente (1=HIGH)
}
}
leo72
September 18, 2011, 10:10pm
7
Ora però basta, non aprire più richieste di aiuto per 1 settimana... hai ingolfato il forum a forza di richiedere questo o quello, io mi astengo dall'aiutarti per 7 giorni XD XD
Studia un po' per conto tuo
anerDev
September 18, 2011, 10:15pm
8
Hai ragione !!!
Ci rivediamo tra 1 settimana, dato che inizierò un grossissimo progetto! Arduino @Space
Hi hi hi hi