Ragioni per cui non è corretto collegare un relè direttamente da un pin digitale Arduino


8

Dopo aver esaminato vari schemi sul controllo di un relè tramite un Arduino, ho notato che, il più delle volte, i transistor vengono utilizzati per commutare l'alimentazione separata nella bobina del relè piuttosto che alimentare direttamente il relè con l'uscita a 5 Volt dall'I / O pin dell'Arduino. Ad esempio, ho un relè DPDT a 5 volt e anche un piccolo motore a corrente continua. Voglio guidare entrambi direttamente dal mio Arduino UNO (clone SMD) con un processore Atmel328? Sarebbe consigliabile procedere?

In caso contrario (molto probabilmente):

  1. Qualcuno può dare una spiegazione dettagliata e potrebbe anche essere importanti precauzioni su limiti e cose attuali?

  2. Come si possono controllare tali componenti senza rischiare l'Arduino? Quali sono alcuni mezzi comuni per raggiungere questo obiettivo?

  3. Quali altri dispositivi possono generalmente danneggiare una scheda Arduino (o qualsiasi unità di microcontrollore) in modo simile?

Sono solo un principiante che vuole essere estremamente cauto. Grazie.


Anche se di recente, con il mio primo incontro con Arduino, ho usato i pin I / O direttamente per alimentare un motore a corrente continua e cambiare la sua direzione attivando e disattivando un relè DPDT allo stesso modo. Niente sembra essere di gran lunga sbagliato.
DorkOrc,

Risposte:


8

I pin del processore hanno una capacità di unità di corrente strettamente limitata.

  • I valori nominali possono variare a seconda che si desideri un'unità alta o bassa.
  • Alcuni processori forniscono solo pochi mA e il massimo che si ottiene normalmente è compreso tra 20 e 30 mA.

  • Di solito esiste un limite di corrente totale per il processore e solo pochi pin possono fornire corrente di picco contemporaneamente.

  • I pin del processore hanno una resistenza efficace significativa e un'alta tensione "cala" quando viene assorbita una corrente crescente e una bassa tensione aumenta all'aumentare del carico. I pin POSSONO essere specifici con una corrente massima di cortocircuito ma a quel punto un pin alto verrà tirato in basso e un pin basso verrà tirato in alto, quindi la corrente di cortocircuito ha un'applicabilità limitata.

Anche se si dispone di un processore da 25 mA per pin, la potenza disponibile è ridotta. 25 mA · 4 V dire (caduta 1 V su 5 V Vcc) = 100 mW. La maggior parte dei motori impiegherà più di questo e solo i motori molto piccoli funzioneranno bene se alimentati solo da un pin.

I motori elettrici e gli induttori genereranno tensioni significativamente elevate quando la corrente viene interrotta - possono facilmente verificarsi tensioni di decine di volt e possono verificarsi oltre 100 volt. Il collegamento diretto di un motore dell'induttore a un pin del processore è un invito alla distruzione. Murphy obbedirà spesso.


Un transistor (bipolare o MOSFET) che guiderà i tipici motori hobbistici costa 10 centesimi (o privo di apparecchiature scartate) e consente al buffer di corrente del pin della porta di essere bufferizzato e "amplificato". L'uso di un transistor o di un altro buffer è un'ottima idea se si dispone di uno o più processori e non si desidera che muoiano in modo semi-casuale.

Driver del motore MOSFET - da qui - sezione 8.

Tensioni e numeri di parte sono per il loro esempio: selezionare per soddisfare.
Un biplo NPN potrebbe essere utilizzato con l'aggiunta di una resistenza di ingresso alla base del transistor.

inserisci qui la descrizione dell'immagine

Driver bidirezionale: se si desidera che il driver sia in grado di guidare un carico alto e basso, questo circuito funzionerà. da qui
Il gate di ingresso è in questo caso il driver del processore interno. Le due porte MOSFET si collegano direttamente al pin del processore. Vdd non dovrebbe in genere essere superiore al processore Vmax_drive_out. Un po 'più in alto può essere fatto funzionare con un design adatto. Con questo circuito (o simili) è possibile pilotare carichi di tensione molto più alti più un transistor aggiuntivo.

inserisci qui la descrizione dell'immagine


Un buffer come ULN2803 (e altri membri della famiglia) guiderà 8 canali x 500 mA / canale e molti possono essere collegati in parallelo.


Un ULN2803 è essenzialmente 8 x transistor "Darlington" con emettitori collegati a una terra comune, 8 x collettori "open collector" (non collegati) e 8 diodi flyback per gestire picchi di sovratensione (usare opzionale). (Esiste una famiglia ULN280x con caratteristiche di input leggermente diverse).

Questo dispositivo fornisce un mezzo a prezzi ragionevoli per fornire driver pull down 8 x 500 mA. Un carico collegato da un'uscita a V + viene attivato quando il pin di ingresso viene portato in alto. Una volta che ne hai usato uno alcune volte, li troverai banalmente facili da usare e molto utili. (Esiste anche una famiglia ULN200x con 7 canali per pacchetto).

YouTube "come" video


Guidare un motore passo-passo

inserisci qui la descrizione dell'immagine

Anche qui


Guidare piccoli motori DC - e molto altro.

inserisci qui la descrizione dell'immagine Milioni di esempi

Digikey - disponibile in 1 se desiderato $ 0,72 / 1, $ 0,29 in 1000.

Scheda tecnica ULN2803


In vendita su Sparkfun - può essere piuttosto economico ma questi sono disponibili


7

L'uscita consigliata (sorgente o sink) da un pin I / O è 20 mA. Il massimo assoluto è di 40 mA. È probabile che la bobina del relè consumi più di questo, in particolare quando inizialmente si eccita. Ciò danneggerà il pin di uscita. Quindi alla fine fallirà.

Niente sembra essere di gran lunga sbagliato.

No, non ancora. :)

Come si possono controllare tali componenti senza rischiare l'Arduino? Quali sono alcuni mezzi comuni per raggiungere questo obiettivo?

Utilizzare transistor o MOSFET.

Quali altri dispositivi possono generalmente danneggiare una scheda Arduino (o qualsiasi unità di microcontrollore) in modo simile?

Tutto ciò che supera i limiti di tensione o corrente massimi, come documentato nel foglio dati. In particolare, le bobine (ad es. Nei relè e nei motori) hanno probabilmente una tensione inversa elevata quando sono spente, motivo per cui è necessario un diodo snubber .

Sarebbe consigliabile procedere?

Sarebbe consigliabile prestare attenzione a ciò che ho scritto sopra e leggere i molti, molti articoli sul Web su come guidare motori e relè da un Arduino. Non sei la prima persona a tentare questo.


4

Dai un'occhiata al semplice circuito di questo PDF dal Arduino Playground. Mostra un singolo transistor per pilotare un piccolo relè.

Come dice Russell nella sua risposta, un ULN2803 o simile è un chip che ti permetterà di pilotare diversi piccoli relè, che è più ordinato rispetto all'utilizzo di più transistor, se è quello che vuoi.

(Nota anche il diodo "D1" nel circuito che ho collegato - ne hai bisogno, è per proteggere il transistor da eventuali danni causati da picchi induttivi generati quando il relè si spegne. Alcuni chip in stile ULN hanno questo diodo incorporato, ed è per questo che non lo vedi sempre negli schemi.)


3

Per proteggere davvero il tuo arduino vale la pena mettere un fotoaccoppiatore sul perno e guidare il circuito in quel modo. Quindi nessuna carica induttiva vagante o corto può influenzare l'arduino.

Sono anche chiamati OptoIsolators o Optocouplers.

http://forum.arduino.cc/index.php?topic=143954.0


1
Hai perfettamente ragione, gli optoisolatori sono un ottimo modo per andare. Un altro modo per farlo che è leggermente meno isolante ma comunque utile è usare un amplificatore operazionale (Op Amp) come buffer. Questi sono anche chiamati amplificatori operazionali 'folloer'. Nota che puoi farlo con qualsiasi OpAmp standardizzato, disponi il circuito in un modo particolare. en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Dan

3

Guardiamo come alcuni di base, questi sembrano essere la base di molte domande:

Un condensatore all'accensione assorbe un'enorme quantità di corrente che si assottiglia mentre viene caricata. Questa curva è anche chiamata costante di tempo RC (questa è stretta ma non esatta " http://www.electronics-tutorials.ws/rc/rc_1.html " fornirà una spiegazione migliore).

Quando si spegne un condensatore si scarica a una velocità esponenziale (costante di tempo RC) a seconda del valore, della tensione di carica e del carico. Questo li rende buoni per mantenere la potenza per un breve periodo in cui la corrente si interrompe.

Un induttore non assorbe nulla alla prima accensione, ma la corrente aumenta esponenzialmente fino a quando la sua tensione raggiunge la tensione di alimentazione.

Quando è spento il campo induttivo nel collasso dell'induttore provoca l'inversione della polarità. La tensione aumenterà illimitata fino a quando in genere qualcosa non la limita esternamente. Più veloce viene spento, più rapidamente sono i tempi di salita e la tensione. L'energia cesserà di fluire quando la carica induttiva viene dissipata. Indovina dove va questa corrente quando il carico induttivo come un relè è collegato a un pin della porta?

Per questo motivo è necessario posizionare un diodo (comunemente chiamato diodo volano) attraverso il carico induttivo. Google per: "curva di carica induttore / condensatore" troverai molti bei grafici che spiegano questo. Se guardi il circuito ha il catodo + collegato al lato più positivo dell'alimentatore. In questa configurazione non condurrà a meno che la tensione non sia invertita (quando il carico induttivo è spento).

Un altro malinteso comune è che è possibile caricare al massimo un I / O a microprocessore. Questo è un cattivo design. Ti danno un massimo per pin, per porta e per il chip. A temperatura ambiente probabilmente te ne andrai per un po '.

Supponiamo di avere una porta con un carico di 40 mA. L'uscita è 0,005 dalla barra di alimentazione. Usando la legge di Ohm stiamo dissipando 20 milliwatt di potenza su un pin. A questo ritmo di caricamento non ci vuole molto a surriscaldare il dispositivo a causa della dissipazione di potenza interna.

Quando il pin di uscita cambia stato, assorbe più corrente perché deve caricare o scaricare la sua capacità interna e esterna, "più calore", più velocità "più calore".

Se guardi alcune delle specifiche ti darà una temperatura massima, è per la giunzione sulla matrice, non la temperatura del case. La plastica è un cattivo conduttore, quindi il calore che affonda nel pacco non fa molto. Ora considera questo insieme alla temperatura ambiente. Le classificazioni sono fornite in genere con il dispositivo a 25 ° C, indovina cosa succede quando si riscalda.

Divertiti,

Gil

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.