Arduino + Mosfet Potenza - Help

Ciao a tutti,
Sto terminando il progetto di una super torcia a LED per immersione bastata su arduino come gestione dei segnali, in sostanza arduino ha il compito di monitorare la temperatura del dissipatore, regolare il PWM del Drive LED, leggere un encoder magnetico che serve come Dimmer, gestire un display OLED e leggere la tensione di 6 celle Lipo con cui alimento il tutto… un discreto casino per un newby come me :stuck_out_tongue:

Al momento su breadboard il tutto funziona bene ma ho deciso di inserire la possibilità al sw di tagliare completamente l’alimentazione del Driver LED, volevo quindi mettere un Mosfet ( P o N non importa ) fra l’uscita della batteria (dopo il fusibile) e l’ingresso del drive. Ho fatto qualche esperimento con i Mosfet ma non sono un elettronico e pur avendo capito il princicpio non sono in grado di dimensionare un circuito adeguato.

Questi sono i dati…

Tensione Massima 26 VDC
Corrente Nominale 5 A ( con un picco in accensione di circa 7 A quando si carica l’induttore del drive )
Pilotaggio a 5 V utilizzando un porta digitale di Arduino, quindi massimo 40 mA

Le dimensioni della schedina devono essere ridotte, percui pensavo di evitare finezze come optocoupler etc se non strettamente necessarie.

Il Mosfet viene usato come interruttore e quindi non devo farlo switchare a frequenza ma solo in ON all’avvio e in OFF se la batteria scende sotto un certo voltaggio LIMITE.

Uno schemino anche fatto sulla carta del formaggio mi sarebbe di grande aiuto ! :slight_smile:

Grazie 1000k in anticipo

Flavio

Il driver che usi non ha la possibilitá di essere messo in standby? Hai messo un interuttore per evitare che Arduino svuoti le batterie? Ciao Uwe

http://www.sparkfun.com/products/10256

ecco qui.... http://brunningsoftware.co.uk/FET.htm al posto di S1 colleghi un pin di arduino e lo comandi con digitalWrite :) logicamente con correnti del genere da pilotare il mos che usano nel sito indicato non basta potrebbe andare un IRF520 dissipato o forse non bisognerebbe provare ma visto che costano uguali sarebbe meglio qualcosa di più "Grosso" IRF 530/540 poi se ti serve roba grossa davvero NDP7060(150A di picco e 70 continui ):P:P:P per una lampada sono tantini però :):):)

Grazie per le dritte ragazzi,

Il drive purtroppo è un Booster con controllo PWM inverso e di conseguenza quando il PWM è al massimo lui va in diretta con il voltaggio della batteria che contando un paio di diodi schotty in mezzo arriva a 25 V quando la batteria è completamente carica. Il Modulo LED ha come tensione nominale 34V ma già a 25V comincia a consumare corrente... non molta... circa 0.2 A a seconda della temperatura. Questo comporta due problemi, il primo è che la torcia non si spegne completamente e il secondo è che in caso di emergenza non posso escludere completamente il drive. Ad esempio se una cella della batteria è troppo sbilanciata o un aumento della temperatura olotre il limite ( tipo se qualcuno la lascia accessa per sbaglio sotto il sole in Egitto ad Agosto... :-P )

Dai Link che mi avete dato ho dedotto che non serve molto per far funzionare un Mosfet anche di potenza elevata, la domanda è.. ma la corrente sul Gate è sufficiente anche per Mosfet di potenze elevate ? La resistenza di pull down a cosa serve ? Se la porta di arduino è in LOW non dovrebbe già essere ad alta impedenza verso GND ?

Visto che il Drive ha una componente Induttiva è necessario un diodo o altro nel circuito per evitare problemi ?

Grazie a tutti

Flà

La res di puldown serve per "forzare" lo spegnimento del mos.... tieni conto che se te gli dai corrente e poi di colpo la togli lui ci mette un pò per spegnersi... e spegnendosi lui aumenta la sua resistenza interna unpò alla volta perchè devono scaricarsi i campi magnetici al suo interno un pò come un condensatore.... io con 30mA ho pilotato due mos in parallelo che mi conducevano 140A.....

Questo è chiaro , ma la porta di arduino in LOW non è già un’impedenza verso GND ?

si possono configurare i pin di arduino sia pinup che pindown, quindi puoi provare a risparmiare la resistenza.

MatrixGTI: Dai Link che mi avete dato ho dedotto che non serve molto per far funzionare un Mosfet anche di potenza elevata, la domanda è.. ma la corrente sul Gate è sufficiente anche per Mosfet di potenze elevate ? La resistenza di pull down a cosa serve ? Se la porta di arduino è in LOW non dovrebbe già essere ad alta impedenza verso GND ?

Il gate dei mos ha impedenza d'ingresso maggiore di 100 Mohm, non assorbe nessuna corrente, quello che richiede corrente è la capacità parassita che si trova tra il gate e il source, mentre nei piccoli mos è trascurabile nei mospower ha valori che richiedono correnti elevate, anche centinaia di mA per poterla caricare in tempi brevi. In realtà il problema si pone solo nel caso di controlli pwm ad alta frequenza, è vitale aprire e chiudere molto rapidamente il gate per non far funzionare il mos nella zona triodo (lineare) in modo da evitare perdite di potenza e surriscaldamento, nel caso del controllo ON/OFF il problema non esiste, basta limitare la corrente massima al valore che può fornire Arduino. Un semplice calcolo ci dice che è bene mettere in serie al gate una resistenza da 5V/ 40 mA = 125 ohm, va benissimo una da 120-100 ohm, in modo da evitare correnti su un pin di Arduino superiori al massimo previsto, anche se il mos si apre/chiude in 100 us invece di farlo in 10 us non cambia nulla per l'applicazione in esame. La resistenza di pull down serve per tenere aperto (nessuna conduzione di corrente) il canale quando il gate non è tenuto a 0 logico da Arduino, cioè quando il relativo pin si trova in condizione di alta impedenza durante il reset e/o il caricamento dello sketch.

Chiarissimo, Grazie.

Per questa applicazione mi consigliate un Mosfet P o N ?

Non mi è chiara la differenza pratica tra i due.. nel senso.. a livello di funzionamento credo di aver capito am alivello pratico cosa cambia ?

dipende da dove devi metterlo.... io ho sempre usato quelli a canale N che son anche quelli che t'ho suggerito.... si collega il gate ad un pin di arduino con una resitenza come ti è stato suggerito..... il drain va collegato al piedino negativo del tuo led, ed il suorce va collegato a massa :) a livello pratico so che quelli a canale N son molto più veloci come anche i transistor e son i più diffusi. poi a livello d'uso nel circuito cambia poco per quel che ne so.... ma non vorrei dire ca**te quindi aspetta i più grandi :)

astro sempre chiarissimo, vorrei conferma sul mio consiglio a questo punto, cioe' sei daccordo che settando il pin per avere un pulldown interno puo' andare bene al fine di sostituire la res di pulldown esterna ? grazie

Testato: astro sempre chiarissimo, vorrei conferma sul mio consiglio a questo punto, cioe' sei daccordo che settando il pin per avere un pulldown interno puo' andare bene al fine di sostituire la res di pulldown esterna ? grazie

A me risulta che puoi attivare una pull-up interna quando imposti il pin come INPUT, non ho sentito anche di pull-down interne.

Ok, quindi ricapitolando... la resistenza di pulldown è meglio averla in ogni caso in modo da avere il gate a 0 anche durante il reset ol il power up di arduino...

il mosfet N lo collego con D al Negativo del drive e S a GND.

Se invece volessi usare un Mosfet P lo dovrei collegare con S al Positivo della batteria e D al Positivo del Drive ? Il resto dovrebbe essere uguale ?

Curioso il fatto dell pulldown interno dell' Atmega, ho sempre pensato ci fosse anche perchè pilotando un semplice transistor non ho mai avuto instabilità sul gate, forse c'è ma è solo di pochi ohm ?

menniti: A me risulta che puoi attivare una pull-up interna quando imposti il pin come INPUT, non ho sentito anche di pull-down interne.

quindi una cosa cosi' non esiste, la metto nel mio elenco delle cazzate :)

pinMode(pin, INPUT); digitalWrite(pin, LOW);

grazie

Confermo,il ATmega non ha resistenze pull down interne. se scrivi:

digitalWrite(pin, LOW);

disattivi la resistenza pull up precedentemente attivata. Ciao Uwe

mi confermate quanto sotto per favore... cosi' metto giu' la schedina di test ! :)

"

Ok, quindi ricapitolando... la resistenza di pulldown è meglio averla in ogni caso in modo da avere il gate a 0 anche durante il reset ol il power up di arduino...

il mosfet N lo collego con D al Negativo del drive e S a GND.

Se invece volessi usare un Mosfet P lo dovrei collegare con S al Positivo della batteria e D al Positivo del Drive ? Il resto dovrebbe essere uguale ? "

MatrixGTI: Se invece volessi usare un Mosfet P lo dovrei collegare con S al Positivo della batteria e D al Positivo del Drive ? Il resto dovrebbe essere uguale ?

Se usi un mosfet canale P serve una pullup al posto della pull down perché il GATE deve essere polarizzato negativamente, cioè va connesso a GND, per ottenere l'apertura del canale. Però c'è il problema del massimo valore della Vgs che nel tuo caso sarebbe troppo alta vista la tensione delle batterie, quindi devi usare un mos a canale N di tipo logic level, cioè con il gate che va in saturazione completa con meno di 5V, inoltre i canale N sono quelli più facilmente reperibili e costano di meno.

Ecco, il fatto della polarizzazione negativa non la sapevo.. ok meglio un canale N.

Ho recuperato un IRF1010E , dovrebbe andare bene, 60V 70A e il treshold è 2-4V è un po grosso per pilotare 5A ma è quello che ho recuperato :-)