Comandare un vagone giocattolo tramite infrarossi

Salve a tutti il mio progetto consiste nel comandare un vagone che “sparabolle” bypassando il suo interruttore di accensione e spegnimento avendo invece un ricevitore ad infrarossi ed un telecomando a comandarne l’accensione e lo spegnimento. la corrente di questo vagone gli viene trasmessa tramite le rotaie su cui circola, a loro volta collegate ad un trasformatore che fornisce loro da 0 a 22v , aumentando o diminuendo la quantità di bolle prodotte a seconda della quantità di corrente ricevuta.
Il mio pensiero è stato di metterci un relay e di comandarne il passaggio o meno della corrente tramite il telecomando, che senza il trasformatore acceso fa aprire e chiudere il relay senza problemi. Appena inizia a circolare energia dal traformatore dopo la chiusura del circuito da parte del relay, non funziona più lo spegnimento ed il vagone continua a funzionare finchè non si va a staccare il traformatore.
è come se arrivasse troppa energia all’arduino e andasse in tilt non prendendo più i comandi dal telecomando , avete idee?

Mi scuso per lo schema cosi approssimativo , ma è il meglio che so fare :confused:

Allego il codice :

#define CH1 8   // Connect Digital Pin 8 on Arduino to CH1 on Relay Module
#include <IRremoteInt.h>
#include <IRremote.h> 
int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); 
decode_results results;

void setup()
{
  pinMode(CH1, OUTPUT);
  Serial.begin(9600); 
  irrecv.enableIRIn(); 
  
  digitalWrite(CH1,LOW);

  delay(2000); 
}
void loop()

{
 
 if (irrecv.decode(&results)) // have we received an IR signal?
 {
   Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
   irrecv.resume();// receive the next value
 }

 if ( results.value == 0x406 ||  results.value == 0xFF30CF ){ //tasto 6 sul telecomando

    digitalWrite(CH1,LOW);

 } 
if ( results.value == 0x404 ||  results.value == 0xFF18E7 ){ //tasto 4 sul telecomando
   
    digitalWrite(CH1,HIGH);
 }  
}

Hai disturbi che bloccano arduino, un classico

icio: Hai disturbi che bloccano arduino, un classico

non ne so molto a riguardo , ho letto che andrebbe "schermato" l'arduino ma come?

Metti uno schema dei collegamenti (incluse le alimentazioni) e metti un link alla scheda relè che hai utilizzazo e ... vediamo cosa si può fare ...

Guglielmo

P.S.: Per lo schema va bene anche un disegno fatto a mano, purché leggibile ;)

gpb01: Metti uno schema dei collegamenti (incluse le alimentazioni) e metti un link alla scheda relè che hai utilizzazo e ... vediamo cosa si può fare ...

Ehm lo ha già fatto, è nel primo post... ;)

frostmuffin: Appena inizia a circolare energia dal traformatore dopo la chiusura del circuito da parte del relay, non funziona più lo spegnimento ed il vagone continua a funzionare finchè non si va a staccare il traformatore.

Credo che nella loop() tu debba effettuare le operazioni sul relè solamente una volta, quando ricevi il segnale... tu invece esegui la lettura di "results" ad ogni ciclo.

Prova questo, vedi se funziona:

void loop()
{
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
    if ( results.value == 0x406 ||  results.value == 0xFF30CF ){ //tasto 6 sul telecomando
      digitalWrite(CH1,LOW);
    } 
    if ( results.value == 0x404 ||  results.value == 0xFF18E7 ){ //tasto 4 sul telecomando
      digitalWrite(CH1,HIGH);
    }  
    irrecv.resume();// receive the next value
  }
}

EDIT: aggiungi anche un link alla schedina relè (l'esatto modello che hai) per capire le sue specifiche.

docdoc:
Ehm lo ha già fatto, è nel primo post… :wink:

Ops … non lo avevo notato … :grin:

Se quella è veramete la scheda relè che usa … la vedo grigia isolare i disturbi provocati dall’apertura/chiusura del contatto … magari diodo e condensatore in parallelo hai contatti aiuta … ::slight_smile:

Guglielmo

gpb01: Ops ... non lo avevo notato ... :grin:

Se quella è veramete la scheda relè che usa ... la vedo grigia isolare i disturbi provocati dall'apertura/chiusura del contatto ... magari diodo e condensatore in parallelo hai contatti aiuta ... ::)

Guglielmo

Non so , esistono alternative per comandarlo sempre tramite infrarossi? perchè comandare un relè mi è sembrata la cosa più logica da fare :/

Intanto prova quel codice loop() che ti ho postato, e scrivi quale esatto modello hai come modulo relè, e vediamo.

docdoc: Intanto prova quel codice loop() che ti ho postato, e scrivi quale esatto modello hai come modulo relè, e vediamo.

il modulo relè è questo : https://it.aliexpress.com/item/5V-4-Channel-Relay-Module-Shield-for-Arduino-ARM-PIC-AVR-DSP-Electronic-5V-4-Channel/32304609560.html?spm=a2g0s.9042311.0.0.1U52TO

codice provato ma stesso problema :/

Ottimo ... come potrai leggere su tutto il forum, una delle prime cose da fare è SEPARARE le alimentazioni, quindi ... dovrai dotarti di un secondo alimentatore a 5V e useguire questo schema (© Brunello):

Come vedi le due alimentazioni sono COMPLEATMENTE separate e NON hanno nulla in comune.

Dovrai invertire la logica di comando del relè, difatti, così connesso, con il pin HIGH il relè è diseccitato, mentre con il pin LOW il relè si eccita.

Guglielmo

gpb01: Ottimo ... come potrai leggere su tutto il forum, una delle prime cose da fare è SEPARARE le alimentazioni, quindi ...

dopo aver messo il cavo positivo dell'alimentazione esterna nell'jd-vcc il componente mi sa che ha smesso di funzionare , e non si sente più il relè che scatta , avendo provato sia con i valori modificati che con quelli di prima m..che ho sbagliato?

... spero bene che:

  1. hai tolto il Jumper che era presente
  2. hai collegato il pin giusto (Jd-Vcc) del connettore a 2 pin al positivo del secondo alimentatore
  3. hai portato il pin GND del connettore lungo al GND del secondo alimentatore
  4. hai collegato il Vcc del connettore lungo al Vcc di Arduino
  5. hai colegato uno dei pin di controllo del connettore lungo al pin di Arduino
  6. hai verificato che NON ci siano altri collegamneti oltre quelli qui sopra riportati

Così DEVE funzionare!

Guglielmo

P.S.: NON serve quotare un intero post, bastano poche righe per far capire a quale post ti riferisci !... ho quindi corretto il tuo post ;)

gpb01:
… spero bene che:

  1. hai tolto il Jumper che era presente
  2. hai collegato il pin giusto (Jd-Vcc) del connettore a 2 pin al positivo del secondo alimentatore

mi sembra di aver seguito ogni passaggio , ma continua a non scattare il relay , è solo il led ad accendersi , ed ho provato ad eseguire la procedura su 2 relay , stesso risultato… non saprei che fare , l’alimentatore , è un alimentatore nokia 5v , 890mA , cavo nero e giallo , giallo dovrebbe essere gnd e nero il + da quello che avevo visto , c’è un codice per sapere se i relay funzionano ancora? , è grazie per l’enorme comprensione che mi stai dando , scusa ancora per il disturbo!

Mmmm ... strano, riesci a mettere una foto nitida (max. 1.2 MB se la alleghi o link ad un sito esterno dove la depositi) del tutto in modo che si vedano bene le schede ed i fili di collegamento? Perché, in quel modo DEVONO funzionare, quindi ... c'è qualche cosa nel cablaggio ... ::)

Guglielmo

frostmuffin: l'alimentatore , è un alimentatore nokia 5v , 890mA , cavo nero e giallo , giallo dovrebbe essere gnd e nero il + da quello che avevo visto

Eh? Giallo GND e nero positivo? :o

Io non ho più da tempo dei Nokia, ma in genere è al contrario, i fili NERI sono GND, quelli "colorati" (in genere rosso) il positivo!

Che intendi con "da quello che avevo visto"? Cosa/dove avevi visto? Hai usato un tester per provare le polarità?

docdoc: Eh? Giallo GND e nero positivo? :o

Io non ho più da tempo dei Nokia, ma in genere è al contrario, i fili NERI sono GND, quelli "colorati" (in genere rosso) il positivo!

mi sarò confuso l'ultima volta che ho utilizzato il tester perchè appunto mi da che il giallo è il positivo

frostmuffin: mi sarò confuso l'ultima volta che ho utilizzato il tester perchè appunto mi da che il giallo è il positivo

Non è che, nell'inserirli, hai invertito i puntali del tester ? ? ?

Guglielmo

gpb01: Non è che, nell'inserirli, hai invertito i puntali del tester ? ? ?

Guglielmo

probabilmente , ma questa volta li ho messi giusti , ed ho fatto il collegamento che mi avevi detto. Funzionare funziona ma mi da sempre il problema che quando faccio partire l'alimentazione delle rotaie va in tilt e non prende più i comandi del telecomando

Ma hai separato, come da schema, le alimentazioni usando DUE alimentatori totalmente separati ?

Hai messo in parallelo hai contatti del relè un diodo (con polarità rovesciata) ed un condensatore ?

Guglielmo