Go Down

Topic: Comandare un vagone giocattolo tramite infrarossi (Read 1 time) previous topic - next topic

frostmuffin

Apr 18, 2018, 02:41 pm Last Edit: Apr 18, 2018, 03:31 pm by frostmuffin
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 :smiley-confuse:

Allego il codice :

Code: [Select]


#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);
 }  
}


icio

Hai disturbi che bloccano arduino, un classico

frostmuffin

Hai disturbi che bloccano arduino, un classico
non ne so molto a riguardo , ho letto che andrebbe "schermato" l'arduino ma come?

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 ...

Guglielmo

P.S.: Per lo schema va bene anche un disegno fatto a mano, purché leggibile ;)
Search is Your friend ... or I am Your enemy !

docdoc

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... ;)
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

docdoc

#5
Apr 19, 2018, 11:41 am Last Edit: Apr 19, 2018, 11:57 am by docdoc
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:

Code: [Select]
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.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

gpb01

Ehm lo ha già fatto, è nel primo post... ;)
Ops ... non lo avevo notato ...  :smiley-mr-green:

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
Search is Your friend ... or I am Your enemy !

frostmuffin

Ops ... non lo avevo notato ...  :smiley-mr-green:

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 :/

docdoc

Intanto prova quel codice loop() che ti ho postato, e scrivi quale esatto modello hai come modulo relè, e vediamo.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

frostmuffin

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 :/

gpb01

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
Search is Your friend ... or I am Your enemy !

frostmuffin

#11
Apr 20, 2018, 09:52 am Last Edit: Apr 20, 2018, 10:03 am by 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?

gpb01

#12
Apr 20, 2018, 10:00 am Last Edit: Apr 20, 2018, 10:03 am by 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
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 ;)
Search is Your friend ... or I am Your enemy !

frostmuffin

... 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!

gpb01

#14
Apr 23, 2018, 09:35 am Last Edit: Apr 23, 2018, 09:36 am by gpb01
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
Search is Your friend ... or I am Your enemy !

Go Up