Alimentare un relè 5V dai pin GPIO


22

Ho una banca di relè (5) che sto cercando di eseguire dal mio Pi. Sto usando i relè 5V TE Connectivity, alimentati dai kit di relè ad alta potenza Sparkfun, che utilizzano un transistor NPN per attivare il relè.

Finora il problema che sto riscontrando è che non riesco a far cambiare il relè. I pin di uscita GPIO non forniscono 5 V? Pensavo che il Pi lo avesse fatto sul GPIO.


4
No, i pin Gpio sono 3,3 volt.
Steve Robillard,

Allora conosci un modo per modificare il mio circuito?
hightekjonathan,

1
Richiederà un'alimentazione a 5 volt e un remeber per collegare tutti i motivi insieme - lo sto facendo per commutare una luce di segnalazione a torre come questa ebay.com/itm/…
Steve Robillard,

2
Suggerirei prima di farlo funzionare con un alimentatore separato, quindi affrontare la complessità delle esigenze di alimentazione del Pi e la portabilità. Come si suol dire, il modo migliore per mangiare un elefante è un boccone alla volta.
Steve Robillard,

1
Tutti i motivi sono legati insieme. E il positivo 5v è collegato al comune sul darlington. Ho seguito il diagramma.
hightekjonathan,

Risposte:


36

Perché non semplicemente così?

Raspberry Pi commuta tra 0 e 3V3, più che sufficiente per saturare Q1, che assume il lavoro "pesante": accendere / spegnere il relè + 5V. A seconda dei relè in uso, potrebbero essere applicate piccole modifiche per D1 e Q1.

Raspberry Pi controlla un relè


Risposta eccellente! E un modo molto sicuro per farlo.
Piotr Kula

3
Bella risposta, che dovrebbe risolvere una volta per tutte le "domande a ritroso". Forse sarebbe bene aggiungere che il fatto che le tensioni di alimentazione del Pi e del relè dovrebbero essere uguali o almeno condividere un GND comune. Mentre questo potrebbe sembrare ovvio per l'ingegnere elettrico, potrebbe essere un trabocchetto per i principianti.
Ghanima

@Ghanima: Sì, hai ragione, sicuramente. Ma come hai detto, per me è "ovvio" se vedo un simbolo di terra, che questo è per entrambe le parti (qui: lampone e staffetta). E ho deliberatamente alimentato il relè con + 5 V (può anche essere + 24 V o qualsiasi altra bassa tensione CC sicura) per mostrare esplicitamente al pubblico che lo scopo del circuito di cui sopra ha tensioni diverse in entrambi i siti. Questo è l'obiettivo del circuito.
GeertVc

1
Qual è lo scopo di R2?
erikH,

2
@erikH: questo resistore assicurerà che la base di Q1 abbia un livello fisso (in questo caso, collegato a terra) nel caso in cui l'ingresso su R1 fluttui. Se sei sicuro che l'input non galleggerà mai, allora R2 non è necessario, ma è una specie di "salvaguardia". Se l'ingresso può fluttuare e non hai R2 collegato, il transistor può iniziare a commutare in modo incontrollato.
GeertVc,

7

# Introduzione #

L'OP vorrebbe usare Rpi per controllare in sicurezza un banco di 5 moduli relè Beefcake di Sparkfun . Ha avuto un problema perché il livello logico Rpi GPIO è 3,3 V, ma il suo relè utilizza il controllo logico 5 V. Vuole sapere come modificare Rpi per aggirare il problema della disparità a livello logico. Le sue scelte includono: l'uso del transistor BC5468 per pilotare la bobina del relè; ottenere un relè di isolamento ottico e pilotarlo utilizzando ULN2803; utilizzando un driver di origine come UDN2981, ...

Dopo le indagini, ora suggerisco un paio di soluzioni, con i rispettivi pro e contro. L'OP può scegliere una soluzione dopo aver negoziato rischi, affidabilità, costi, ecc.

# Contenuto #

Soluzione 1 - Modifica della resistenza di polarizzazione del transistor NPN

Soluzione 2: utilizzo di UDN2981 per spostare il segnale GPIO 3.3V di Rpi su 5V

Soluzione 3: utilizzo di 74HC03 e 74HC04 per spostare il segnale GPIO 3.3V di Rpi su 5V

Soluzione 4: utilizzo di 74HCT125 per la conversione del livello logico

Soluzione 5: utilizzo di TXS0102 per eseguire la conversione del livello logico

Soution 6 - Utilizzo di 2N2222 per eseguire la conversione del livello logico

Soluzione 7: utilizzo di 2N7000 per eseguire la conversione di livello logico

FAQ1 - Come alimentare Rpi e modulo relè e collegare i terreni insieme

FAQ2 - Come evitare il problema di input mobile

FAQ3 - Il mio relè è sempre attivo, sia in ingresso alto che basso, perché il segnale Rpi basso non è abbastanza basso?

FAQ3 - Il mio segnale GPIO Rpi basso non può disattivare il relè, ma impostando GPIO come farebbe l'ingresso. Farò del male al mio Rpi se lo faccio?

Suggerimenti per la risoluzione dei problemi hardware

Suggerimenti per la risoluzione dei problemi del software

Riferimenti

# Soluzione 1. Modifica della polarizzazione del transistor NPN per renderla compatibile con 3.3V #

Esistono due tipi generali di soluzioni:

(1) modificare il circuito di ingresso del livello logico a 5 V del modulo per adattarsi ai segnali a 3,3 V,

(2) utilizzare un convertitore di livello logico da 3.3V a 5V per spostare i segnali 3.3V di Rpi su 5V.

Ora inizio con (1).

Indagine

Il modulo relè Beefcake di Sparkfun ha un transistor NPN 2N3904 (Q2) che comanda la bobina (U1). È progettato per i segnali logici 5V di Arduino.

Schema del kit di controllo relè SparkFun

Ho un simile modulo a transistor NPN KY019 che può essere pilotato dai segnali 3.3V di Rpi. Quindi ho verificato i requisiti del segnale di ingresso per scoprire perché KY019 può intrattenere segnali da 3,3 V, ma Beecake no.

Spec. KY019

Ho scoperto che KY-019 ha un livello di trigger di 2,5 V e 0,1 mA . Questo segnale è amplificato dal transistor NPN a 50 mA, abbastanza alto da engerizzare la bobina per attivare il relè.

Spec. Bobina di tongling

RPI GPIO (con livello alto, sopra 2.8V , e limite di corrente massima di 16mA ), può comodamente fonte 4mA, non ci dovrebbe essere problema azionare direttamente il modulo.

La bobina ha un tempo di risposta di 10 mS. Ho programmato il pin 17 di Rpi GPIO per attivare / disattivare il modulo relè a un periodo di 40mS (25 cps) e ho riscontrato che il relè faceva clic felicemente come previsto. (Stavo usando fili di collegamento lunghi 2 metri per i segnali GPIO, quindi il segnale all'estremità dell'ingresso relè è un po 'rumoroso.)

Test di attivazione / disattivazione KY019

Come modificare il modulo Beefcake per renderlo compatibile con la logica 3.3V

Il transistor NPN Beefcake ha un resistore limitatore di corrente R2 di valore 1K. Questo resistore limita la corrente di base ad alto livello logico Arduino 5V. La corrente di base entro il limite, dopo l'amplificazione (di solito hFE> 100), è abbastanza grande da engerizzare la bobina.

Calcolo della corrente Arduino 5V GPIO nel modulo relè Beefcake:

Arduino current i ~ (4V [Arduino High] - 1V [Vce (sat)]) / 1K [R]) = 3V / 1K = 3mA

Tuttavia, il segnale alto logico dell'Rpi è più basso di Arduino, quindi la corrispondente corrente limitata è più piccola e dopo l'amplificazione non è abbastanza grande da pilotare la bobina.

Corrente Rpi i ~ ((3V [Rpi High] - 1V) / 1K = 2mA

La modifica è semplice: basta sostituire 1K R2 con un resistore più piccolo, ad esempio 510R.

Rpi corrente i (dopo la modifica) = (3V - 1V) / 501R = 4mA

Sto facendo ipotesi educative basate sull'analisi dei circuiti e sulla sperimentazione. Penso che la mia ipotesi sia probabilmente corretta al 90%.

Analisi del rischio

Sebbene il transistor NPN di segnale piccolo 2N3094 possa essere utilizzato per la commutazione di piccoli carichi, non è così affidabile. Per la commutazione dei relè, è più sicuro utilizzare transistor di potenza come SS8050, UDN2981, appositamente progettati per carichi induttivi.

L'OP vuole un metodo sicuro che non frigga il suo Pi, quindi per affidabilità, un driver di origine come UDN2981 è la strada da percorrere.

/ ...

# Soluzione 2 - Utilizzo di UDN2981 per pilotare il modulo relè Beefcake #

I commenti sottolineano che il modulo relè Sparkfun Beefcake dell'OP è un trigger di alto livello, quindi non è possibile utilizzare il driver del lavandino comunemente usato ULN2803. In alternativa, dovrebbe essere utilizzato un driver simile a ULN2803, ma l'approvvigionamento corrente, anziché l'affondamento attuale

Penso che UDN2981 sia un driver adatto per il modulo relè dell'OP.

Ho verificato con successo UDN2981 alla guida di un modulo relè tirgger di alto livello simile al Beefcak e ULN2803 a basso trigger. Di seguito è riportato un riepilogo.

UDN2981 che controlla moduli relè a transistor NPN ad alto trigger

Ho prima testato manualmente UDN2981, senza collegarmi a Rpi, per far lampeggiare 4 LED, per assicurarmi che il circuito funzionasse correttamente.

uln2803 udn2981 foto

Quindi ho configurato 4 moduli relè a transistor NPN (KY019) e ho collegato i 4 ingressi del modulo relè a 4 uscite del canale UDN2981.

KY019 x 4

Quindi ho collegato 4 pin GPIO RV 3.3V direttamente ai 4 ingressi del canale UDN2981. Ho usato la seguente funzione Python per attivare / disattivare 4 moduli relè a 25 cps.

funzione python per attivare / disattivare 4 relè

Il risultato è stato buono I 4 moduli relè fanno clic e i LED lampeggiano a 25 cps come previsto. I segnali di uscita RIO GPIO sono rimasti vicino a 3,3 V e i segnali di uscita UDN intorno a 4,0 V, il che implica che nessun ingresso è stato sovraccaricato.

Attiva / disattiva la forma d'onda del modulo

UDN2981 che controlla i moduli relè optoisolati ad innesco alto

L'OP ha anche preso in considerazione l'uso di moduli relè optoisolati perché sono più sicuri. Ho usato con successo lo stesso UDN2981 per controllare 4 moduli relè optoisolati trigger (MK055).

Moduli relè MK055

In realtà UDN2981 può essere utilizzato per controllare qualsiasi tipo di modulo trigger alto, indipendentemente dal transistor NPN o da tipi optoisolati.

Tuttavia, per i moduli trigger Low, sia transistor PNP che optoisolati, il driver sorgente UDN2981 non funziona, utilizzare ULN2803 o altri driver sink.

ULN2803 che controlla l'ingresso a transistor PNP a trigger basso o moduli relè optoisolati

Ho verificato con successo che il driver del sink ULN2083 può controllare 4 moduli relè optoisolati a trigger basso. Ho prima provato a lampeggiare manualmente 4 LED, quindi ho usato la stessa funzione Python sopra per testare i 4 moduli. Anche i risultati sono stati buoni.

Modulo relè MK101

Discussione

Pro e contro ULN2803 e UDN2981

Professionisti

  1. ULN2803 e UDN2981 possono essere pilotati direttamente dal segnale logico TTL o CMOS con tensioni di alimentazione 3,3 V o 5 V.

  2. Le loro uscite nominali da 500 mA con diodi a pinza sono adatte per commutare relè e motori passo-passo.

Contro

  1. ULN2803 e in particolare UDN2981 non sono così comuni.

  2. Hanno 8 canali e quindi hanno una dimensione del pacchetto DIP a 18 pin più grande. Per meno canali, i più comuni 74HC03 / 04 o 74HCT125 con pacchetto DIP a 14 pin sono più comuni e più facili da gestire.

# Soluzione 3 - Utilizzo di 74HC03 e 74HC04 per spostare il segnale GPIO 3.3V di RPi #

L'uso di UDN2981 per pilotare un modulo relè è un grosso problema, poiché sono progettati con diodi fly-back integrati per alimentare direttamente il relè.

UDN2981 non è comune e non per i principianti da sperimentare. Per i principianti, i CI di gate logici molto comuni ed economici, le porte Quad NAND 74HC03 e gli inverter esadecimali HC04 possono fare lo stesso lavoro di UDN2981, cambiando segnali logici 3.3V.

Ho verificato con successo HC03 e HC04 spostando la logica da 3,3 V a 5 V e l'ho trovato funzionante sia per l'ingresso a transistor che per i moduli trigger ad alto livello optoisolati.

schema del convertitore hc03 04

hc03 hc04 ky019 mk047

hc03 hc04 ky019 ky047

# Riferimenti #

R1. Come funziona un relè elettrico? - TechyDIY

R2. Circuito interruttore relè - Tutorial elettronica

R3. Guida all'aggancio del controllo relè relè Beefcake - SparkFun

R4. Buffer digitali e buffer a tre stati - Tutorial elettronici

R5. Resistori pull-up: tutorial elettronici

R6. Esercitazione sui livelli logici - SparkFun

Arduino Voh 4.2V, Vol 0.9V

R7. Specifiche della tensione e della corrente del pin GPIO Rpi

Rpi Voh 2.4V, Vol 0.7V

R8. Transistor bipolare - Tutorial elettronici

================

# A.3 Convertitore di livello logico utilizzando HCT125 #

Quindi ho testato un altro convertitore up, HCT125. Sono stato felice di scoprire che funziona bene. Il segnale 5V0 convertito HCT125 non è diminuito quando è collegato al modulo relè a transistor NPN.

Convertitore di livello HCT125

/ ...

Fine delle appendici

** * Risposta lunga Da cancellare * **

Questa lunga risposta è troppo lunga e complicata. Ora sto cercando di rimuovere i paragrafi non pertinenti e forse sostituirli ponendo domande pertinenti e rispondendo a me stesso.


Come controllare il modulo fotoaccoppiatore / modulo relè optoisolato

  1. Prendi un ponticello.
  2. Collegare un'estremità al pin di segnale / ingresso del modulo relè.
  3. Tieni l'altra estremità e tocca i pin Vcc (+) e Gnd (-) e controlla i risultati di seguito.

Tabella dei risultati dei test del modulo relè

2.1 Tipo di ingresso a transistor

Per il popolare tipo di ingresso transistor NPN bipolare, il segnale del driver di sourcing (segnale GPU Rpi o segnale GPIO RPi dopo conversione di livello logico da 3,3 V a 5 V) va alla base del transistor attraverso un LED serie e un resistore di polarizzazione.

Esempio di modulo relè di tipo transistor input (BJT NPN)

Esistono altri circuiti di commutazione relè non così popolari come descritto in questa esercitazione di commutazione relè

2.2 Tipo di input fotoaccoppiatore

Il relè del tipo di ingresso fotoaccoppiatore ha un fotoaccoppiatore come input. Il fotoaccoppiatore aziona un altro transistor che a sua volta guida la bobina del relè.


Appendice C - Convertitore di livello logico mediante TXS0102

Ora so che Rpi GPIO può guidare direttamente il modulo relè, ma ci sono due problemi. Innanzitutto, il segnale GPIO con un lungo cavo di collegamento è rumoroso, quindi non così affidabile. In secondo luogo, il diodo volano 1N4148 potrebbe non sopprimere completamente l'EMF posteriore della bobina e, se sfortunatamente, l'1N4148 si guasta o non correttamente collegato (contatto scadente, giunto di saldatura a secco, ecc.), L'EMF posteriore potrebbe danneggiare l'Rpi.

Così ho deciso di utilizzare un convertitore di livello logico per spostare il segnale Rpi GPIO da 3V3 a 5V. Ho provato il convertitore TXS102 e l'ho trovato funzionante. Oltre a spostare il segnale GPIO, anche il rumore ad alto livello è notevolmente ridotto.

Foto e forma d'onda di TXs0102

Tuttavia, ho riscontrato un grosso problema durante l'alimentazione del singolare GPIO 5V convertito nel modulo relè. Il relè si è ancora acceso e spento come prima, con il segnale 3V3, ma quando ho usato l'oscilloscopio per verificare la forma d'onda, ho trovato sorprendentemente che il segnale 5V è sceso della metà, a 2,2V .

Sospettavo che il motivo fosse che TXS0102 potesse assorbire la corrente molto meglio della fornitura di corrente al modulo relè. Per verificare la mia ipotesi, ho inviato il segnale 5V a un altro modulo relè, un tipo fotoaccoppiatore pull down, modello MK01.

Questa volta ho scoperto che il segnale a 5 V non è diminuito di molto.

Quindi ho rapidamente concluso che il modulo relè a transistor NPN è una cattiva scelta. Da questo momento smetterei di testare questo tipo di relè e passerei al tipo di relè fotoaccoppiatore.

Ho anche testato un altro modulo driver fotoaccoppiatore MK101. Questo modulo ha un ponticello per selezionare trigger superiore o trigger basso. Ho scoperto che per il trigger Low, il livello del segnale 5V convertito TSX0102 non è interessato. Ma quando viene selezionato il trigger Low, il livello del segnale 5V convertito scende a circa 2,5V, sebbene il relè funzioni ancora.

txs0102 test moduli trigger alti bassi


Appendice E - Convertitore di livello logico mediante HC04

HCT125 non è così comune. Quindi ho provato un altro circuito di conversione, usando il gate NAND a doppio scarico HC03 e l'inverter esadecimale HC04. Quando ho testato l'uscita HC04, l'ho trovata molto rumorosa. Immaginai una ragione per cui stavo usando alimentatori dirrerent, uno per rpi, un altro per il convertitore. Anche se ho collegato i punti di terra degli alimentatori per creare un punto comune, il rumore non è scomparso. Ho quindi usato un alimentatore sia per rpi che per convertitore e il rumore è scomparso.

Uscita del convertitore rumorosa

inserisci qui la descrizione dell'immagine

Ho provato il segnale di uscita HC04 per il modulo relè in modalità trigger basso (che richiede corrente di discesa, ma non in modalità trigger alto (che richiede corrente di approvvigionamento). Quindi aggiungerò il gate NOT hex HC04 che può generare corrente a il modulo relè.

Appendice F - Problema di ingresso flottante del convertitore di livello HC04

L'ultima volta che ho provato per la prima volta il convertitore di livello basato su HC03, su un modulo relè fotoaccoppiatore, ho scoperto che se ho lasciato l'ingresso mobile, il modulo ha raccolto il rumore e il relè si è acceso e spento follemente. Ho pensato che la frequenza fosse forse 1kHz. Non ero sicuro che si trattasse di una sorta di oscillazione del feedback positivo. Ma quando ho usato l'oscilloscopio per verificare, ho scoperto sorprendentemente che era 50Hz! Immagino sia una sorta di risonanza. Ma non so quale sia la differenza tra risonanza e oscillazione. Forse dovrei di nuovo occhiali. Ad ogni modo, penso di aver bisogno di aggiungere un resistore pull up / down da qualche parte.

HC04 Problema di ingresso flottante con convertitore di livello


Di seguito da abbreviare o eliminare

# Appendici #

# A1. Opto isolato / scheda modulo relè accoppiatore foto e schema #

Il modulo relè isolato opto ha un accoppiatore fotografico che è un IC a 4 pin. L'immagine seguente mostra un PhotoCoupler PC1 (con i suoi 4 pin etichettati 1, 2, 3, 4 in verde) e un transistor Q1. I circuiti integrati non sono sempre contrassegnati. In questa immagine, PC1 è EL354 e Q1 8050.

Foto del modulo relè tipo di ingresso fotoaccoppiatore

Schema del modulo relè di ingresso fotoaccoppiatore

Collegamenti del diagramma

 35 : https://i.stack.imgur.com/cWkRi.jpg


1
tlfong01: "Quindi il segnale GPIO 3V3 di Rpi può guidare direttamente il relè." : Non dovresti dirlo perché leggere questa riga potrebbe dare l'impressione a persone non tecniche che possono collegare direttamente un pin GPIO di RPi alla bobina di un relè. Con conseguenze devastanti ... C'è un motivo per l'aggiunta del 2N3904 ... Dovresti dire "Quindi il segnale GPIO 3V3 di RPi può guidare direttamente il modulo relè " invece ...
GeertVc,

Grazie per aver sottolineato il mio sbadato errore di non essere pensieroso con le persone non tecniche. E quando ho apportato la correzione, ho scoperto di aver fatto un altro errore inserendo due immagini identiche della KY019. In realtà il primo dovrebbe essere lo schema del modulo SparkFun.
tlfong01,

Nessun problema, siamo qui per aiutarci a vicenda ... :-)
GeertVc,

Il motivo per cui vi è una discrepanza nell'utilizzare un GPIO direttamente rispetto a un GPIO con un cambio è che il cambio è destinato a fornire una tensione specifica (5 V). Un pin logico a 3,3 V, invece, è dotato di soglie che indicano la differenza tra basso e alto. Per il pi questo significa che qualsiasi cosa oltre 1,3 V è alta . Se stai sprofondando attraverso la resistenza a terra (cioè tirando la corrente), dovresti ottenere 3,3 V, ma probabilmente non è quello che fa l'ingresso sul relè: galleggia.
riccioli d'oro

@goldilocks: Sì, è confuso. OA afferma che il suo kit di relè utilizza un transistor NPN per attivare il relè [bobina], una risposta sembra suggerire di modificare il transistor [secondo BC5468]. Un altro suggerimento è quello di utilizzare Darlington ULN2803, .. Ho bisogno di leggere i commenti ancora una volta per svuotare la mente.
tlfong01
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.