Relay e buone norme da seguire

Ciao a tutti,
ho sviluppato diversi progetti utilizzando i relay con Arduino ma ho qualche dubbio su "buone norme" da seguire soprattutto legate alla scrittura del software.

Mi spiego meglio usando un esempio concreto e cioè Arduino che comanda un relay collegato ad una serratura elettronica.

  1. Ho letto che è sempre consigliabile utilizzare il collegamento su Normalmente Aperto

  2. Arduino è acceso 24 ore su 24. Con normalmente aperto, devo quindi lasciare la tensione del pin digitale su HIGH e aprire la porta passando su LOW per pochissimo tempo (io uso 500ms oppure 1s). Non è un problema lasciare a regime il voltaggio su HIGH? E' consigliabile qualche altra soluzione per non mantenere il circuito "eccitato"?

  3. Mi hanno suggerito su questo forum di portare il pinMode su INPUT e riportarlo ad OUTPUT solo nel momento in cui devo effettivamente aprire la porta. Ci sono differenze con la soluzione precedente?

Il codice è piuttosto banale ma lo riporto per chiarezza:

Soluzione punto 2:

if(...) { 
   digitalWrite(Relay, LOW);
   delay(500);
   digitalWrite(Relay, HIGH);
}

Soluzione punto 3:

if(...) { 
   pinMode(Relay, OUTPUT);
   digitalWrite(Relay, LOW);
   delay(500);
   digitalWrite(Relay, HIGH);
   pinMode(Relay, INPUT);
}

Grazie

Dipende tutto dal modello di scheda relè

GiuMex:
... 3) Mi hanno suggerito su questo forum di portare il pinMode su INPUT e riportarlo ad OUTPUT solo nel momento in cui devo effettivamente aprire la porta. Ci sono differenze con la soluzione precedente?

Chi e dove ha stato scritto ciò ? ? ?

Guglielmo

Brunello:
Dipende tutto dal modello di scheda relè

Ho due moduli relay:

  1. https://www.amazon.it/SunFounder-Relay-Module-Arduino-Trigger/dp/B013GAGFOU/ con transistor PNP
  2. http://www.ebay.it/itm/181859172235?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT con transistor NPN appena acquistato

gpb01:
Chi e dove ha stato scritto ciò ? ? ?

Guglielmo

La discussione è recentissima.
http://forum.arduino.cc/index.php?topic=448262.30 Post #28... Magari ho capito male io?

GiuMex:
Ciao a tutti,
ho sviluppato diversi progetti utilizzando i relay con Arduino ma ho qualche dubbio su "buone norme" da seguire soprattutto legate alla scrittura del software.

Mi spiego meglio usando un esempio concreto e cioè Arduino che comanda un relay collegato ad una serratura elettronica.

  1. Ho letto che è sempre consigliabile utilizzare il collegamento su Normalmente Aperto

  2. Arduino è acceso 24 ore su 24. Con normalmente aperto, devo quindi lasciare la tensione del pin digitale su HIGH e aprire la porta passando su LOW per pochissimo tempo (io uso 500ms oppure 1s). Non è un problema lasciare a regime il voltaggio su HIGH? E' consigliabile qualche altra soluzione per non mantenere il circuito "eccitato"?

  3. Mi hanno suggerito su questo forum di portare il pinMode su INPUT e riportarlo ad OUTPUT solo nel momento in cui devo effettivamente aprire la porta. Ci sono differenze con la soluzione precedente?

Il codice è piuttosto banale ma lo riporto per chiarezza:

Soluzione punto 2:

if(...) { 

digitalWrite(Relay, LOW);
  delay(500);
  digitalWrite(Relay, HIGH);
}





Soluzione punto 3:


if(...) {
  pinMode(Relay, OUTPUT);
  digitalWrite(Relay, LOW);
  delay(500);
  digitalWrite(Relay, HIGH);
  pinMode(Relay, INPUT);
}





Grazie

mah tenere un relè quasi sempre eccitato è un errore in partenza
si sono rele passo passo industriali/professionali se servono,

in qualsiasi progetto bisogna tenere in conto anche se arduino si rompe e blocca le sue uscite su high o low

GiuMex:
Ciao a tutti,
ho sviluppato diversi progetti utilizzando i relay con Arduino ma ho qualche dubbio su "buone norme" da seguire soprattutto legate alla scrittura del software.

Mi spiego meglio usando un esempio concreto e cioè Arduino che comanda un relay collegato ad una serratura elettronica.

  1. Ho letto che è sempre consigliabile utilizzare il collegamento su Normalmente Aperto

  2. Arduino è acceso 24 ore su 24. Con normalmente aperto, devo quindi lasciare la tensione del pin digitale su HIGH e aprire la porta passando su LOW per pochissimo tempo (io uso 500ms oppure 1s). Non è un problema lasciare a regime il voltaggio su HIGH? E' consigliabile qualche altra soluzione per non mantenere il circuito "eccitato"?

  3. Mi hanno suggerito su questo forum di portare il pinMode su INPUT e riportarlo ad OUTPUT solo nel momento in cui devo effettivamente aprire la porta. Ci sono differenze con la soluzione precedente?

Il codice è piuttosto banale ma lo riporto per chiarezza:

Soluzione punto 2:

if(...) { 

digitalWrite(Relay, LOW);
  delay(500);
  digitalWrite(Relay, HIGH);
}





Soluzione punto 3:


if(...) {
  pinMode(Relay, OUTPUT);
  digitalWrite(Relay, LOW);
  delay(500);
  digitalWrite(Relay, HIGH);
  pinMode(Relay, INPUT);
}





Grazie

mah tenere un relè quasi sempre eccitato è un errore in partenza
si sono rele passo passo industriali/professionali se servono,

in qualsiasi progetto bisogna tenere in conto anche se arduino si rompe e blocca le sue uscite su high o low
tra gli ingressi + - ci va quasi sempre un diodo

GiuMex:
La discussione è recentissima.
http://forum.arduino.cc/index.php?topic=448262.30 Post #28... Magari ho capito male io?

Ma li si sta parlando di tutt'altra cosa .. ci sono problemi di 3.3V e di 5V e di schede relè che devono funzionare con tensioni diverse ... non c'entra nulla.

Il giusto consiglio che da qui sopra "elrospo" e di cercare di avere i relè eccitati il meno tempo possibile ... ma cambiare lo stato dei pin, sicuramente NO.

Guglielmo

  1. Ho letto che è sempre consigliabile utilizzare il collegamento su Normalmente Aperto

E questo mi sembra anche giusto, altrimenti avresti sempre il relè in tensione quando il carico deve essere spento. Oltretutto al reset avresti il carico alimentato

  1. Arduino è acceso 24 ore su 24. Con normalmente aperto, devo quindi lasciare la tensione del pin digitale su HIGH e aprire la porta passando su LOW per pochissimo tempo (io uso 500ms oppure 1s). Non è un problema lasciare a regime il voltaggio su HIGH? E’ consigliabile qualche altra soluzione per non mantenere il circuito “eccitato”?

Guarda che l’assorbimento di corrente dal pin di Arduino non è che c’è solo quando il pin è in HIGH, dipende dal circuito che va a pilotare. Ti faccio un esempio con i tre casi più frequenti degli ingressi di una scheda relè

  1. Ingresso su NPN - Si attiva con HIGH e quando si mette a LOW non c’è passaggio di corrente
  2. Ingresso con PNP - Si attiva con LOW e quando si mette a HIGH non c’è passaggio di corrente
  3. Ingresso su foto-accoppiatore - Si attiva con LOW e quando si mette a HIGH non c’è passaggio di corrente

elrospo:
mah tenere un relè quasi sempre eccitato è un errore in partenza
si sono rele passo passo industriali/professionali se servono,

in qualsiasi progetto bisogna tenere in conto anche se arduino si rompe e blocca le sue uscite su high o low
tra gli ingressi + - ci va quasi sempre un diodo

I moduli relay che utilizzo hanno già un diodo in parallelo tra gli ingressi + -. È sufficiente?

In ogni caso grazie mille anche a Brunello. Sei stato estremamente chiaro.
A questo punto in questo caso vale la pena usare un modulo con transistor NPN in modo da mettere il pin in tensione solo quando effettivamente voglio far aprire la porta.

Il software di conseguenza sarà invertendo LOW e HIGH rispetto a quanto scritto nel primo post.

Grazie ancora

A questo punto in questo caso vale la pena usare un modulo con transistor NPN in modo da mettere il pin in tensione solo quando effettivamente voglio far aprire la porta.

Non ti entra in testa, vero, che un modo vale l'altro ?

Brunello:
Non ti entra in testa, vero, che un modo vale l'altro ?

Scusami, adesso ho letto con più attenzione e lo schema aiuta.

Con il PNP ho bisogno di fornire una tensione più piccola di quella dell'emettitore per far circolare la corrente.

L'indicazione di HIGH inganna ma in effetti non è detto che passi la corrente.

A questo punto, tornando alla domanda iniziale, posso considerare il relay non eccitato nei due casi e stare tranquillo se adesso ho finalmente capito bene. :slight_smile:

Attenzione che lo schema con il PNP lo puoi usare SOLO se i rele’ hanno la stessa tensione di alimentazione della logica di comando … se invece lo usassi con rele’ a tensione piu alta, ad esempio 12V, sia con le uscite alte che basse il rele’ sarebbe sempre eccitato, perche’ in base il transistor avrebbe sempre una tensione minore di quella di emettitore … con il NPN questo problema non c’e’ …