Il mio circuito a solenoide gestito da MOSFET distrugge i miei ingressi Arduino


14

Ho realizzato una serie di PCB per alimentare alcune elettrovalvole che utilizzano un alimentatore esterno. Li cambio con MOSFET BS170 usando un Arduino come segnale di gate. Ho basato che una soluzione da Jason S .

Questa è un'illustrazione di come appare il mio circuito: Circuito valvola gestito da MOSFET

Durante i test dei PCB, ho notato che la maggior parte di essi funziona bene, ma alcuni non lo fanno. Nessun problema, probabilmente una cosa di saldatura.

Tuttavia, quelli difettosi sono riusciti a distruggere due pin digitali Arduino! Su uno, ottengo una tensione costante di 5 V e l'altro emette 0,2 V quando invio un segnale ALTO e 0,5 V quando invio un segnale BASSO. Roba strana.

Quindi immagino che i circuiti difettosi abbiano in qualche modo causato (alcuni) dei 16 V attraverso l'Arduino, distruggendoli.

Come posso proteggere Arduino in questo scenario da una corrente troppo alta?

Conosco diodi zener , ma non ho idea di come posizionarli per proteggere gli ingressi.

Informazioni tecniche:


Quale software hai usato per creare quel disegno? Sembra davvero buono!
mjh2007,

3
Fritzing. Gratuito e molto utile per questo genere di cose, anche per la progettazione di
circuiti stampati

Il diodo zener gate-source di dire 12V (> Vgate_drive) è davvero un'ottima idea in tutti i circuiti con carico induttivo. Montare zener vicino a MOSFET. Anodo per sorgente e catodo per gate in modo che zener di solito non conduce. || MOSFET di gran lunga molto migliori a Digikey 26c / 10 sono ad esempio IRLML6346 SOT23. O NDT3055 48c / 10 TO251 al piombo, o RFD14N05 71c / 10 TO220.
Russell McMahon,

...When MOSFETs fail they often go short-circuit drain to gate...Citato da qui .
Abdullah Kahraman,

L'applicazione di 16V potrebbe uccidere le porte di Arduino.
Abdullah Kahraman,

Risposte:


7

Il circuito va bene in teoria.
È richiesto un miglioramento nella pratica.

L'aggiunta di un diodo zener gate-source di 12V (> Vgate_drive) è davvero un'ottima idea in tutti i circuiti con carico induttivo. Ciò impedisce che il gate venga pilotato in modo distruttivo in modo elevato dall'accoppiamento della "capacità di Miller" al drain durante variazioni impreviste o estreme della tensione di drain.

Montare lo zener vicino al MOSFET.
Connetti Anodo alla sorgente e Catodo alla porta in modo che lo zener di solito non conduca.

Il resistore drive gate 10k (come mostrato) è grande e causerà lo spegnimento e l'accensione lenti e una maggiore dissipazione di potenza nel MOSFET. Questo probabilmente non è un problema qui.

Il MOSFET scelto è molto marginale in questa applicazione.
I MOSFET di gran lunga molto migliori disponibili a magazzino presso Digikey includono:

Per 26c / 10 Digikey IRLML6346 SOT23 pkg, 30V, 3.4A, 0.06 Ohm, Vgsth = 1.1V = Tensione soglia gate ..

NDT3055 48c / 10 TO251 con piombo 60 V, 12 A, 0,1 Ohm, Vgsth = 2 V

RFD14N05 71c / 10 TO220 50V, 14A, 0,1 Ohm, 2V Vgsth.


AGGIUNTO

MOSFET ADATTI PER DRIVE 3V:

Il sistema ha appena rovinato la mia risposta più lunga :-(. Quindi - MOSFET DEVE avere Vth (tensione di soglia) non superiore a 2 V per funzionare correttamente con i controller di alimentazione 3V3.
Nessuno dei FET suggeriti soddisfa questo requisito.
Potrebbero funzionare dopo carico attuale ma sono sottodimensionati e eccessivamente con perdita e la soluzione non si estende bene a carichi più grandi.
Sembra che i FET IRF nella gamma di dimensioni interessata che hanno Vth (di Vgsth) <= 2 volt TUTTI hanno codici numerici a 4 cifre che iniziano con 7 tranne IRF3708 .

I FET OK includono IRFxxxx dove xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470

Ce ne saranno altri, ma tutti quelli suggeriti sembrano avere Vth = 4V o 5V e sono marginali o peggiori in questa applicazione.

Vgsth o Vth deve essere almeno una Volt in meno e idealmente diversi volt in meno rispetto alla tensione effettiva del gate drive.


Sì, sto andando in modo sicuro e userò un altro mosfet. Quello e il diodo zener dovrebbero probabilmente fare il trucco. Nel negozio di elettronica vicino a dove vivo non hanno i mosfet che hai proposto, ma hanno: IRF520, IRF530, IRL530, IRF540, IIRF730, IRF740, IRF830, IRF840, IRF9140, IRF9530, IRF9540, IRF9610, IRFBC620, IRFDD110, IRFD9120, IRFP50, IRFP054, IRFP140, IRFP150, IRFP450, IRFP520, IRFP9140, IRFZ44, IRFZ46. Suppongo che potrei scegliere un IRF520 per esempio? la corrente di drain continua è da 6,5 ​​a 9,2 A. Min Vgs è 2 V e max è 4 V, va bene però per Arduino?
Dyte,

L'IRF520 va bene per un Arduino da guidare. Min Vgs e "max Vgs" non sono proprio quello che pensi, questa è la tensione "treshold", dove il MOSFET inizia a condurre. Il Vg massimo è sostanzialmente più alto (al di sopra del 5v verrà emesso Arduino). Supera quella valutazione più alta (20 V?) E sbaglierai il FET.
Bryan Boettcher,

Funziona con il MOSFET IRF520 e un diodo zener 5.1 V e probabilmente continuerà a funzionare questa volta :) Grazie mille per l'aiuto. Tutte le risposte mi hanno aiutato, ma hai elaborato diodi zener e tipi specifici di mosfet, quindi accetto le tue come risposta.
Dyte

@Russell McMahon: la tensione che il mio arduino emette è (un po 'meno di) 5V, non 3V3. Ciò non cambia la situazione?
Dyte,

10

La tua valvola ha una potenza nominale di 500 mA a 12V. Se fornisci 16V, assorbirà un po 'più di 500mA. Supponendo che sia una resistenza, assorbirà 667 mA.

La corrente massima assoluta per il MOSFET utilizzato è continua di 500 mA. Qualunque cosa al di sopra dei valori massimi assoluti può distruggere il dispositivo. Questo è probabilmente il motivo per cui stai riscontrando problemi di affidabilità.

Non esiste una modalità di guasto garantita per i MOSFET, quindi non mi sorprende che fallirebbe in modo tale da danneggiare le uscite di Arduino.

Come ha detto Jason nella risposta collegata, BS170 è una cattiva scelta di MOSFET. Ne hai bisogno di uno migliore. Scegline uno in una custodia TO-220 classificata a diversi ampere. È inoltre necessario assicurarsi che il Vgs sia classificato per unità a livello logico 5V.

Quale diodo stai usando?


Ciao Mark, il diodo che uso è un 1N4001: fairchildsemi.com/ds/BS/BS170.pdf
Dyte

5

La tua valvola è classificata per ~ 500 mA. Un BS170 è valutato anche per 500 mA, ma questa è la cifra del passo di vendita. Vorrei usare un FET (molto) più alto valutato qui, 500mA attraverso un TO92 mi rende nervoso. E hai un resistore di gate da 1k, il che è una buona idea nella maggior parte dei casi, ma potrebbe far sì che il povero FET passi troppo lentamente per sopravvivere allo 0,5A.

Quale diodo stai usando? Deve essere valutato per 0,5 A, quindi un 1n4148 non lo farà. Non sono sicuro, ma potrebbe effettivamente ottenere più di 0,5 perché la parte mobile del valore potrebbe causare un picco ancora più grande di una bobina normale.

Nella tua foto hai il valore della corrente di ritorno che scorre oltre la connessione di terra di Arduino. Vorrei forgiarlo a una stella: collegare la terra di Arduino direttamente all'alimentazione. O molto meglio: utilizzare un accoppiatore ottico per isolare il circuito ad alta corrente dall'Arduino (e utilizzare due alimentatori separati).


Il diodo che uso è un 1N4001. diodes.com/datasheets/ds28002.pdf Non pensavo a un accoppiatore ottico . È un buon scenario da indagare :)
Dyte il

5

Dovresti avere un resistore gate-source sul tuo MOSFET in modo che il gate non possa galleggiare se l'uscita Arduino è ad alta impedenza. Poiché l'alimentatore a solenoide e l'alimentatore Arduino sono separati, questo scenario potrebbe accadere (a meno che non si garantisca dal progetto che Arduino sia sempre acceso per primo).

Il MOSFET è davvero così lontano dal solenoide? In tal caso, dovrebbe essere spostato molto più vicino. Spostalo in modo che lo scarico si inserisca direttamente nella striscia protettrice dove il filo rosso va al solenoide e al diodo. Quindi effettuare una connessione sorgente breve alla striscia GND. È meglio avere un loop di segnale gate più lungo (a bassa potenza) rispetto a un loop lungo che trasporta energia. Potresti anche avvicinare l'Arduino al solenoide, mantenendo tutti quei loop corti.


Per resistore gate-source, intendi un resistore tra gate e source del mosfet? Scusate se questa è una domanda stupida :). Quale valore mi consigliate? Per quanto riguarda le distanze, no, tutti i componenti sono vicini l'uno all'altro, ho questo circuito saldato su un PCB autoadesivo. Solo i fili all'Arduino sono più lunghi. Devo dire però che non avevo idea che questo avesse fatto la differenza. Pensavo che la differenza nel tempo in cui la corrente avanza di qualche cm in più fosse trascurabile.
Dyte,

@Dyte Sì, una resistenza tra gate e source.
Adam Lawrence,

@Dyte, immagino che un resistore gate-source da 10k andrebbe bene. L'obiettivo è solo assicurarsi che il gate del MOSFET non galleggi. Volete qualcosa di abbastanza basso da poter "vincere" contro gli elementi del circuito parassita, ma abbastanza alto da consentire all'uscita di Arduino di "vincere" quando deve accendere il MOSFET.
ajs410,

3

Il circuito come illustrato sembra a posto, a condizione che l'unica connessione di terra tra la scheda Arduino e il terminale negativo dell'alimentazione +16 sia il filo blu corto. D'altra parte, è possibile che i pantaloncini accidentali possano causare cose brutte. È difficile indovinare esattamente cosa sarebbe potuto succedere senza vedere come erano disposte le schede problematiche.

Se stai spingendo le specifiche del tuo MOSFET, potrebbe facilmente fallire in modo tale da mandare +16 fuori dal gate, ma se i resistori sono come illustrato mi aspetterei che Arduino dovrebbe essere abbastanza ben protetto.


1

Prima di tutto, quando si utilizzano motori o bobine sono necessari diodi di commutazione ultraveloci, non questi diodi 2n4001-4 economici. Più veloce è la commutazione, maggiore è la creazione di BEMF. Usa anche un diodo di commutazione 914 sul gate mosfet dall'arduino e un 10k pull / down resister dal gate a terra.

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.