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
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);
}
}
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 ...
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.
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 ... :
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
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.
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?
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 ... :
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à?
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