Pages: [1] 2   Go Down
Author Topic: Collegamento scheda relè 12v ad arduino  (Read 3339 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
vorrei collegare ad Arduino una scheda relè come questa http://www.ebay.it/itm/4-Channel-12V-Relay-Module-for-Arduino-PIC-ARM-AVR-DSP-/260752266329?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item3cb60bd459 per poter collegare una ventola a 12v comandata tramite seriale. Ho collegato le uscite del "GND", "IN1" (il pin del primo relè) e"VCC" della scheda rispettivamente al "GND", "Pin 13" e "+5V" dell'arduino, solo che ora non capisco come collegare i fili della ventola, ovvero il "+" ed il "-" alle 3 uscite del relè. Tenete conto che sempre alle 3 uscite del relè devo inserire anche i poli della batteria a 12v. Potete darmi una mano per collegare il tutto? Grazie a tutti in anticipo smiley

Il codice caricato sulla scheda Arduino è il seguente:

Code:
#define ventola 13  // ventola connessa al pin n°13
byte rx = 0;    // variabile per contenere il carattere ricevuto
 
void setup()
{
Serial.begin(9600); // imposto la UART per lavorare a 9600
pinMode(ventola, OUTPUT); // imposto il pin sul quale è collegata la ventola come uscita
Serial.flush(); // svuoto il buffer di ricezione seriale
}
 
void loop()
{
 
if (Serial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
rx = Serial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
Serial.flush(); // svuoto il buffer di ricezione seriale
 
if (rx=='1' || rx=='2') // ho ricevuto o il tasto 1 oppure il tasto 2
{
 
if (digitalRead(ventola) == HIGH) // la ventola era accesa?
{
digitalWrite(ventola,LOW); // la spengo
Serial.println("Ventola Disattivata");
}
else // la ventola era spenta
{
digitalWrite(ventola,HIGH); // la accendo
Serial.println("Ventola Attivata");
}
 
}
 
else // non ho ricevuto il tasto 1
 
{
Serial.print(" ");
Serial.print(rx,BYTE);
Serial.println();
}
}
}
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A me pare che ci sia un po' di confusione nello schema: il VCC sul jumper è sicuramente un 12V mentre il Vcc su R1 dovrebbero essere i 5V di Arduino.
Il - della ventola lo colleghi direttamente a GND, il + della ventola al pin 2 del relè, 12V vanno anche al pin 1 del relè
Logged


Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
per collegare un rele 12 volt all'arduino devi per forza usare un transistor npn in configurazione open collector, se fai entrare la 12 nei pin di arduino direttamente lo bruci.
In questa pagina http://www.panu.it/ardupower/ trovi un esempio realizzato con l'integrato uln2003, che contiene sette darlington npn.

Alberto
« Last Edit: October 19, 2011, 04:51:24 am by bigjohnson » Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
per collegare un rele 12 volt all'arduino devi per forza usare un transistor npn in configurazione open collector, se fai entrare la 12 nei pin di arduino direttamente lo bruci.
In questa pagina http://www.panu.it/mrtg/ trovi un esempio realizzato con l'integrato uln2003, che contiene sette darlington npn.

Alberto
Secondo la mia interpretazione i 12V non possono entrare in Arduino, infatti ho scritto:
Quote
il Vcc su R1 dovrebbero essere i 5V di Arduino
Logged


Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OO,
adesso ho visto bene lo schema del modulo e mi sono accorto che è fatto molto bene, per cui si può collegare direttamente ad arduino.
+12  --- ingresso ventola --- contatti rele --- massa
porta arduino --- ingresso in0
massa arduino --- massa modulo
con questa configurazione con la porta di arduino a livello alto il rele si apre, percui bisogna usare i contatti no e nc del rele scambiandoli.

Alberto
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OO,
adesso ho visto bene lo schema del modulo e mi sono accorto che è fatto molto bene, per cui si può collegare direttamente ad arduino.
+12  --- ingresso ventola --- contatti rele --- massa
porta arduino --- ingresso in0
massa arduino --- massa modulo
con questa configurazione con la porta di arduino a livello alto il rele si apre, percui bisogna usare i contatti no e nc del rele scambiandoli.

Alberto


stai facendo riferimento alla scheda che ho, che poi sarebbe quel link di ebay? Perchè se è si, puoi spiegarmi meglio, ho le idee un pò confuse  smiley-confuse
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La massa di Arduino non è necessario collegarla a quella del circuito relé, sta usando un optoisolatore, non un transistor.
Logged


Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai ragione, scambiando i pin in ingresso l'uscita del relè segue i livelli 1 e 0 della porta di arduino.
L'unico accorgimento è aprire il jumper sul power supply.

Alberto
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK riepiloghiamo per Atlantic che mi ssembra un po' sconcertato smiley
In0 va su un pin di Arduino, che dovrai mettere in LOW per far eccitare il relè
Vcc (quello collegato a R1 ) lo devi collegare ai +5V di Arduino
Il Jumper lo devi togliere
A JD-VCC devi collegare 12V il negativo a GND
GND di Arduino e GND della scheda NON devi collegarli tra loro.
al + della ventola metti direttamente i 12V con cui alimenti la scheda
il - della ventola lo colleghi al pin 2 del relè
il pin 1 del relè lo colleghi al GND della scheda
così quando il pin di Arduino va in LOW la ventola parte, se invece il pin di Arduino va in HIGH la ventola si ferma.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora ragazzi, ricapitoliamo un pò smiley
Dunque, ho una scheda composta da 4 relay a 12v cadauno come mostrata in figura , il suo schema elettrico ò il seguente:

Ho intenzione, alle 3 uscite del primo relè, collegare una ventola alimentata a sua volta da una batteria a 12v. La mia domanda è: come collego tutti e quattro i cavi (ovvero, i due fili della batteria, polo "+" e polo "-" ed i restanti due fili "+" e "-" della ventola) alle 3 uscite del relè?

Lo schema di collegamento tra la scheda relè ed arduino è il seguente:


GND   IN1   IN2   IN3   IN4   VCC      (scheda relè)
 |    |               |         
 |    |             |
 |    |             |
 |    |             |
 |    |             |
GND   Pin            +5V      (Arduino UNO)
      digitale
    13
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK riepiloghiamo per Atlantic che mi ssembra un po' sconcertato smiley
In0 va su un pin di Arduino, che dovrai mettere in LOW per far eccitare il relè
Vcc (quello collegato a R1 ) lo devi collegare ai +5V di Arduino
Il Jumper lo devi togliere
A JD-VCC devi collegare 12V il negativo a GND
GND di Arduino e GND della scheda NON devi collegarli tra loro.
al + della ventola metti direttamente i 12V con cui alimenti la scheda
il - della ventola lo colleghi al pin 2 del relè
il pin 1 del relè lo colleghi al GND della scheda
così quando il pin di Arduino va in LOW la ventola parte, se invece il pin di Arduino va in HIGH la ventola si ferma.

ok grazie, ora provo smiley-grin
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK riepiloghiamo per Atlantic che mi ssembra un po' sconcertato smiley
In0 va su un pin di Arduino, che dovrai mettere in LOW per far eccitare il relè
Vcc (quello collegato a R1 ) lo devi collegare ai +5V di Arduino
Il Jumper lo devi togliere
A JD-VCC devi collegare 12V il negativo a GND
GND di Arduino e GND della scheda NON devi collegarli tra loro.
al + della ventola metti direttamente i 12V con cui alimenti la scheda
il - della ventola lo colleghi al pin 2 del relè
il pin 1 del relè lo colleghi al GND della scheda
così quando il pin di Arduino va in LOW la ventola parte, se invece il pin di Arduino va in HIGH la ventola si ferma.

Grazie mille, è andato tutto perfetto!!! smiley-wink
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK riepiloghiamo per Atlantic che mi ssembra un po' sconcertato smiley
In0 va su un pin di Arduino, che dovrai mettere in LOW per far eccitare il relè
Vcc (quello collegato a R1 ) lo devi collegare ai +5V di Arduino
Il Jumper lo devi togliere
A JD-VCC devi collegare 12V il negativo a GND
GND di Arduino e GND della scheda NON devi collegarli tra loro.
al + della ventola metti direttamente i 12V con cui alimenti la scheda
il - della ventola lo colleghi al pin 2 del relè
il pin 1 del relè lo colleghi al GND della scheda
così quando il pin di Arduino va in LOW la ventola parte, se invece il pin di Arduino va in HIGH la ventola si ferma.

Grazie mille, è andato tutto perfetto!!! smiley-wink
Ottimo, complimenti! smiley-lol
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi, nuovo problema, pensavo avessi risolto ed invece no. Vi spiego meglio.
Allora, i collegamenti dati da menniti sono ottimi ed è andato tutto bene, ovvero i relè risponde ai comandi tramite arduino, solo un problema sorge: sia che imposti il digitalwrite a "LOW" che a "HIGH" del pin digitale 13, il relè si accende automaticamente quando poi dovrei io, attraverso il codice, eccitarlo ad accendersi. Cioè, quando collego arduino alla porta USB, dovrei fare in modo che il pin n.13 risulti acceso in modo tale che il relè risulti spento, se poi volessi accendere il relè, schiacciando per esempio, il tasto 2 della tastiera del computer, esso si azioni, dove è che ho sbagliato nel scrivere il codice? Mi sono perso smiley-sad Vi posto nuovamente il codice, sperando che sia stato chiaro nell'esporvi il problema smiley-sad smiley-sad smiley-sad smiley-sad smiley-sad

Code:
#define ventola 13  // ventola connessa al pin n°13
byte rx = 0;    // variabile per contenere il carattere ricevuto
 
void setup()
{
Serial.begin(9600); // imposto la UART per lavorare a 9600
pinMode(ventola, OUTPUT); // imposto il pin sul quale è collegata la ventola come uscita
Serial.flush(); // svuoto il buffer di ricezione seriale
}
 
void loop()
{
 
if (Serial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
rx = Serial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
Serial.flush(); // svuoto il buffer di ricezione seriale
 
if (rx=='1' || rx=='2') // ho ricevuto o il tasto 1 oppure il tasto 2
{
 
if (digitalRead(ventola) == HIGH) // la ventola era accesa?
{
digitalWrite(ventola,LOW); // la spengo
Serial.println("Ventola Disattivata");
}
else // la ventola era spenta
{
digitalWrite(ventola,HIGH); // la accendo
Serial.println("Ventola Attivata");
}
 
}
 
else // non ho ricevuto il tasto 1
 
{
Serial.print(" ");
Serial.print(rx,BYTE);
Serial.println();
}
}
}
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12681
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io non vedo da nessuna parte il pin impostato su HIGH o LOW inizialmente, aggiungi in setup, sotto l'istruzione di OUTPUT, la riga:
digitalWrite(ventola, HIGH);
così al primo avviamento il relè è diseccitato.

Un'altra cosa: se hai messo il led tra il pin 13 e il pin 2 del fotoaccoppiatore ti conviene mettere anche una pull-up, cioè una R da 10K tra il pin 2 e +5V, così elimini la possibilità di situazioni fluttuanti che potrebbero far eccitare il relè in momenti indesiderati.
Logged


Pages: [1] 2   Go Up
Jump to: