Ciao ragazzi avrei bisogno di una mano, non sono tanto esperto con arduino, ma stavo provando a collegare un telecomando ad arduino per ricevere impulsi e farmi avviare un motore 3-6V(sto facendo le prove con un led), dovrei fare che quando premo un bottone mi si avvia il motore e quando lo rilascio si spegne, sto utilizzando la libreria IRremote ed attualmente quando premo il bottone mi si accende e quando lo rilascio continua a stare acceso, mi si spegne solo se premo un qualsiasi altro bottone, vi allego codice e una foto dei collegamenti, spero possiate aiutarmi grazie.
Foto:
#include <IRremote.h>
IRrecv irrecv(11); //pin sensore IR infrarossi
decode_results res; //salva i bottoni premuti qui dentro
void setup() {
Serial.begin(9600); //inizializzo monitor seriale
irrecv.enableIRIn(); //inizializzo il sensore IR
pinMode(4, OUTPUT); //pin motore ruote
}
void loop() {
if (irrecv.decode(&res)) { // se riceve impulsi
if (res.value == 0xFD8877) { // se corrisponde al tast FD8877
digitalWrite(4, HIGH); //accendi led
}else{digitalWrite(4, LOW);} //altrimenti spegnilo
irrecv.resume(); //pronto a ricevere nuovi impulsi
}else {res.value = 0; } //se non riceve nuovi impulsi porta value a 0
Serial.println(res.value, HEX); //stampami lo stato value
}
Buonasera,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del nostro regolamento, ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto.
fabpolli:
Buonasera,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del nostro regolamento, ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto.
Il regolamento lo avevo letto, la presentazione l'ho appena fatta, grazie per la dritta
Non credo puoi sapere se il tasto viene rilasciato.
eventualmente puoi vedere se per un certo tempo non arriva più lo stesso tasto, usando la millis() ma non è molto semplice
Inoltre, quando tieni premuto lo stesso tasto, i telecomandi si comportano in 2 maniere diverse.
alcuni telecomandi inviano sempre lo stesso codice
altri invece inviano appena premi il codice del tasto e poi inviano 0xFFFFFF finchè tieni premuto lo stesso tasto
nid69ita:
Non credo puoi sapere se il tasto viene rilasciato.
eventualmente puoi vedere se per un certo tempo non arriva più lo stesso tasto, usando la millis() ma non è molto semplice
Inoltre, quando tieni premuto lo stesso tasto, i telecomandi si comportano in 2 maniere diverse.
alcuni telecomandi inviano sempre lo stesso codice
altri invece inviano appena premi il codice del tasto e poi inviano 0xFFFFFF finchè tieni premuto lo stesso tasto
Il mio manda sempre lo stesso codice, il punto è che quando premo il tasto uno lui in value salva il codice 10 fino a quando non premo un altro tasto e cosi lo cambia, si dovrebbe azzerare ogni volta che rilascio
Non devi usare il delay() ma imparare a usare la millis()
Devi imparare a fare le temporizzazioni usando la millis() ma non è semplice
Quoto l'admin Guglielmo:
... per capire bene come usare la funzione millis(), che ti è stata da più persone suggerita, prova a leggere prima QUI, poi QUI ed infine leggi anche QUI e QUI ... doversi avere una visione migliore di come utilizzarla e quindi di come applicarla al tuo programma.
nid69ita:
Non devi usare il delay() ma imparare a usare la millis()
Devi imparare a fare le temporizzazioni usando la millis() ma non è semplice
Quoto l'admin Guglielmo:
... per capire bene come usare la funzione millis(), che ti è stata da più persone suggerita, prova a leggere prima QUI, poi QUI ed infine leggi anche QUI e QUI ... doversi avere una visione migliore di come utilizzarla e quindi di come applicarla al tuo programma.