Salve a tutti,
come scritto in oggetto, vorrei qualche consiglio per realizzare/dimensionare l'hardware di un progetto per il pilotaggio di 30 luci led 12V a catodo comune.
Ho realizzato un hardware che alimenta l'Arduino Mega tramite il pin Vin con una tensione di 12V (batteria auto, quindi anche 13,7).
L'Arduino prende, su alcuni ingressi analogici utilizzati in digitale, dei segnali a 12V opportunamente livellati tramite partitore di tensione.
In uscita mediante un transistor NPN ed un MOSFET a canale P vado a pilotare il mio faro led da 12V.
Un secondo MOSFET a canale P fa in modo che in assenza del 12V che alimenta l'Arduino, il faro led 12V venga pilotato direttamente dal segnale che di norma va in ingresso all'Arduino.
Ho realizzato tutto questo per 9 ingressi e 30 uscite, ma mi sono accorto che in assenza dell'alimentazione l'Arduino si alimenta tramite i segnali in ingresso.
Come posso fare per ovviare a questo problema?
I segnali in ingresso devono soltanto pilotare i fari led quando l'Arduino non è alimentato sul pin Vin.
Riguardo ai valori delle resistenze avete qualche correzione da suggerirmi?
Anche a livello di circuito eventualmente.
Ho disegnato uno schema per rendere più comprensibile ciò che ho fatto finora.
Spero di riuscire a caricare l'immagine.
Non ho trovato la board Mega 2560 quindi ho utilizzato una Nano, ma il concetto è lo stesso.
Consigli e/o correzioni sono altamente graditi.
Grazie.
Buonanotte.
Ciao
Riguardo al circuito non capisco assolutamente come sia collegato il secondo MOSFET
A prima vista lo hai collegato male e comunque mi sembra che la logica di comando sia invertita
Inoltre per proteggere meglio Arduino alimentalo a 5V tramite un regolatore, o meglio metti un regolatore intermedio a 7-8 volt prima della sua alimentazione, in auto non si sa mai ed e sempre meglio stare parati
Anche per i partitori in ingresso, bene hai fatto ma mettici anche uno zener a 5 V o meglio mettici un diodo veloce al +5, che scarichi al +5 eventuali sovratensioni
Buona giornata
I MOS sono disegnati al contrario.
Verso il LED vanno messi due diodi, in modo che la tensione in arrivo da un MOS non vada verso l'altro.
Per l'alimentazione del MEGA si, un bel preregolatore 9V.
Invece mi preoccupano di più i 30 partitori di tensione, che complessivamente possono iniettare oltre 30 mA sugli ingressi dell'Arduino spento...
È vero, la logica di comando del secondo mosfet è invertita.
Il progetto prevede di prelevare i 9 segnali, che normalmente andrebbero a pilotare direttamente i led, e dirottarli in ingresso ad Arduino che li elabora e li ripartisce sulle 30 uscite creando effetti di accensioni e spegnimenti sequenziali e dimmeraggio tramite alcune uscite pwm.
In mancanza di alimentazione di Arduino però il tutto deve continuare a funzionare normalmente come se non ci fosse Arduino ad aggiungere gli "effetti speciali".
Quindi il secondo mosfet fa in modo che il segnale passi direttamente al led quando la tensione sul gate è bassa, mentre interrompe il collegamento in presenza di alimentazione Vcc.
Il problema è che i segnali che vanno comunque sugli ingressi di Arduino invece di morire lì in assenza di alimentazione di quest'ultimo, riescono ad alimentarlo, quindi mi ritrovo con i led che vengono pilotati in maniera standard a cui si aggiungono gli effetti di Arduino e questo annulla tutto il beneficio apportato dal progetto, anzi mi crea problemi.
Ho pensato di sostituire i partitori in ingresso con dei fotoaccoppiatori, o optoisolatori che dir si voglia, che hanno il vantaggio di non produrre nessun segnale in uscita in mancanza di alimentazione. Correggetemi se sbaglio.
Quanto al dimensionamento delle resistenze nella parte dell'output ci sono correzioni da suggerire?
Grazie.
Il fatto che la tensione in uscita dal drain di un mos possa andare sul drain dell'altro può costituire un problema? Non so, pensavo che fosse ininfluente.
Il fatto è che se metto diodi a destra e a manca come se piovesse aggiungo cadute di tensione che mi fanno perdere buona parte della luminosità dei led da accendere.
Gli ingressi su Arduino sono solo 9, tutti trattati come digitali, mentre di uscite ne utilizzo 30 di cui 5 pwm.
A quanti gradi devo mettere il saldatore per saldare i BC547 e gli IRF9540?
Su 30 linee ne ho 6 che rimangono accese fisse, forse ho bruciato i mos o forse gli npn.
È vero che li ho comprati su un noto sito cinese, ma anche quelli che si comprano altrove alla fine vengono tutti dalla stessa zona.
Cosa ho sbagliato?
Il rischio è che su Aliexpress vendano scarti di produzione o brutte imitazioni con il chip molto più piccolo o, per i transistor fuori produzione, altri completamente diversi rimarchiati.
Una volta mi arrivarono dei FET BF245... NPN!!!
Ho letto gli altri post che però non mi hanno schiarito le idee.
Intanto gira i mosfet e riposta lo schema.
Q3 ha il gate potenzialmente flottante quando manca la VCC
o meglio, il gate si trova connesso a GND attraverso l'impedenza del circuito VIN÷GND. Forzare il gate con una R10K potrebbe essere una soluzione.
R1 è connesso a SEGNALE12V
, per evitare l'auto-alimentazione allora R1 andrebbe collegato a VCC
. Però tu usi A1 per comunicare ad arduino che il led è alimentato diretto.
Tra il nodo R1÷R2 e A1 puoi inserire una resistenza da 10K (o più) per alzare l'impedenza. Se non dovesse bastare puoi usare un BC547, con la RC collegata a +5V e la base collegata a SEGNALE12V
attraverso un RB di adeguato valore.
Ciao.
Non mi è chiaro come tu voglia fare
Diciamo che un comando deve arrivare all'arduino che comanda il corrispondente mosfet come da programma
In assenza di alimentazione da arduino il comando deve arrivare dritto ai mosfet
Se è cosi, e me ne darai conferma, hai sbagliato approccio:
Non devi prevedere due differenti linee di alimentazione ai led e mettere in parallelo le uscite dei mosfet ma usare un solo mosfet comandato in OR da due linee di comando
Una è luscita di arduino, l'altra, tagliata in presenza di alimentazione arduino è il comando stesso
E poi: optoisolatori come se piovesse
Anzitutto vi voglio ringraziare tutti per i consigli e la partecipazione attiva al mio progetto.
Ho postato uno schema modificato in cui ho sostituito il partitore in ingresso con un optoisolatore.
Ho girato i mosfet, ma non capisco perchè EasyEDA me li disegna così.
Ho messo anche un esempio di come vengono inseriti i mosfet su EasyEDA.
Ricordo che sto lavorando con mosfet a canale P perchè devo gestire l'alimentazione dei led dal lato anodo in quanto questi sono a catodo comune.
Sto cercando di gestire l'accensione e lo spegnimento in sequenza di alcuni fanalini led di un rimorchio e far lampeggiare, assieme alle frecce, i fanalini di ingombro laterale, che normalmente sarebbero alimentati dalla linea dei fanalini di posizione destro e sinistro.
Per fare questo entra in gioco l'Arduino che viene alimentato dalla linea di alimentazione batteria (posta sul pin 9 della presa a 13 poli del gancio di traino della macchina) e che gestisce accensioni e spegnimenti dei fanalini interpretando gli ingressi provenienti dalla presa della macchina (che normalmente andrebbero ad alimentare direttamente i relativi fanalini led).
Il tutto sarebbe piuttosto facile se non fosse che per poter utilizzare il rimorchio anche su auto che non hanno la presa a 13 poli, ma a 7 (quindi solo segnali senza alimentazione diretta da batteria) devo fare in modo che in assenza di questa alimentazione il tutto possa funzionare normalmente come se non esistesse Arduino, quindi alimentando ciascun fanalino, stop, retronebbia, freccia etc tramite la sua linea senza intervento del microcontrollore.
Quindi diciamo, per riassumere, il primo mosfet serve per pilotare i led tramite microcontrollore, il secondo per staccare il collegamento tra i segnali della presa 13poli dai led quando è presente l'alimentazione 12V diretta dalla batteria che va ad alimentare Arduino.
Non so se adesso è più comprensibile.
Gli assorbimenti dei singoli led vanno da un minimo da 7mA per i fanalini più piccoli fino ad un massimo di 600mA di ciascun retronebbia o retromarcia.
Ogni luce è pilotata singolarmente da una uscita di Arduino. Non ci sono coppie o gruppi di luci pilotati da Arduino, come invece avviene nel funzionamento diretto dalla presa 13 poli.
Quindi ciascun mosfet deve reggere al massimo 600ma (o molto meno, dipende da quale luce farà funzionare) mentre l'assorbimento totale sarà di circa 6A, ma questo per il progetto è abbastanza irrilevante se non nel dimensionamento dei conduttori di alimentazione e di massa.
Optoisolatori come se piovesse rende bene l'idea, più della mia descrizione del funzionamento del progetto che è abbastanza arzigogolata.
Hai ragione a dire che Q3 ha il gate flottante, mi ero già accorto dell'errore, in realtà però sul circuito che ho realizzato avevo messo una resistenza di pulldown da 10KOhm tra la linea di alimentazione batteria e GND.
Poi mi sono dimenticato di disegnarla nello schema, ma quando me ne sono accorto l'avevo già postato.
Grazie per lo schema che mi hai suggerito, ma penso (spero) di poter risolvere usando degli optoisolatori che mi trovo già tra le mani.
L'immagine qui sotto rappresenta ciò che ho al momento.
Questo invece è ciò che voglio realizzare, tenendo conto che in presenza di 12V sul pin 9 della presa 13 poli i led devono essere pilotati solo da Arduino, mentre in assenza dei 12V sul pin 9 della presa 13 poli i led devono continuare a funzionare normalmente come nello schema precedente.
Per gli ingressi vado di optoisolatori.
Per le uscite P-MOSFET pilotato da transistor NPN.
E per staccare i led dall'alimentazione diretta della presa 13 poli quando è in funzione Arduino?
Come faccio?
Avevo il dubbio che fosse così.
Ma di norma a quanti gradi si saldano questi componenti?
Credo che ci voglia un po' più di riguardo rispetto a un connettore o una resistenza...
In pratica dovrei realizzare un ipotetico relé (ma di silicio, non elettromeccanico) che mi aprisse tutti i contatti in presenza dei 12V dalla batteria.
Ho disegnato contatti NO perchè non ho trovato il simbolo degli NC, ma in realtà dovrebbero essere NC.
Suggerimenti?
Da qui la soluzione di inserire il secondo mosfet per staccare le linee dei led in presenza dei 12V batteria.
Rigorosamente con resistenza di pulldown da 10KOhm tra l'alimentazione da batteria e GND per non far fluttuare i gates dei mosfet quando manca l'alimentazione.
Soluzioni migliori?
Purtroppo sì
Dico purtroppo perché tu evidentemente non hai le conoscenze per applicarle
Questo invece "per fortuna"
Perché stai tentando di alterare componenti di sicurezza di un veicolo
Lascia stare: è pericoloso oltre che vietato
Buona Pasqua
Ha ragione "il sindaco" @Salvorhardin quando dice che basta un solo mosfet comandato in OR da arduino, da un lato
Da un AND con il segnale e l'alimentazione arduino (negata) dall'altro
In buona sostanza con tre porte Cmos per luce te la cavi
Giustosì avrei ragione, grazie
Se non fosse che ho appena "capito" che lui per segnale non intende il segnale di comando delle luci, ma proprio la "linea di potenza" delle luci
Che se lo avesse detto prima...
Com'era la legge di Kidlin?
"Se scrivi chiaramente il problema, la questione è risolta a metà"
Comunque così com'è si tratta, ripeto, di operazione vietata e pericolosa
Ripeto: buona Pasqua
Per me non se ne esce, c'è un OR tra due linee di potenza (che possono essere attive tutte due o una sola alla volta, ma la logica è accesa solo quando c'è Vbatt), e per non far andare la tensione di una verso l'altra servono due diodi.
Ma... siamo sicuri che Vbatt e Vlamp saranno sempre dello stesso valore?