# 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.
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.
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è.
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.)
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.
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.
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.
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.
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).
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.
Discussione
Pro e contro ULN2803 e UDN2981
Professionisti
ULN2803 e UDN2981 possono essere pilotati direttamente dal segnale logico TTL o CMOS con tensioni di alimentazione 3,3 V o 5 V.
Le loro uscite nominali da 500 mA con diodi a pinza sono adatte per commutare relè e motori passo-passo.
Contro
ULN2803 e in particolare UDN2981 non sono così comuni.
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.
# 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.
/ ...
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
- Prendi un ponticello.
- Collegare un'estremità al pin di segnale / ingresso del modulo relè.
- Tieni l'altra estremità e tocca i pin Vcc (+) e Gnd (-) e controlla i risultati di seguito.
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.
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.
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.
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.
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.
Collegamenti del diagramma
35 : https://i.stack.imgur.com/cWkRi.jpg