regolatore di velocita’ carico CC (PWM con NE555)

agosto 11th, 2011 | Posted by Marco Plessi in Elettronica | Visite: 32.892

Il circuito che verrà presentato è un regolatore PWM per carichi resistivi o
induttivi in bassa tensione.

Il cuore del circuito è il noto integrato NE555, il quale ha il compito di generare un’onda
quadra di 144 Hz.
La scelta del valore dell’onda quadra verrà spiegata più avanti.
La regolazione della velocità del motore posto in uscita, o della lampadina, ecc.. è data dal
duty cycle della frequenza generata, che può assumere un valore medio compreso tra 0
volt e la tensione di alimentazione.
Di seguito verrà mostrato lo schema di questo regolatore:

schema_pwm_ne555

Lista componenti:
R1 : 100 kΩ potenziometro lineare
R2 : 10 kΩ ¼ W
C1 : 100 nF
C2 : 10 nF
C3 : 100 nF
D1 : 1N5818 (shottky)
D2 : 1N5818 (shottky)
U1 : NE555
U2 : IRFZ46N (mosfet)

AGGIORNAMENTO: Per prevenire precoci distruzioni del mosfet in caso di motori potenti, è consigliato aggiungere un diodo veloce in antiparallelo al carico, cioè con il katodo collegato al polo positivo del carico e l’anodo collegato al polo negativo del carico, per evitare di scaricare sovratensioni (spike) sul mosfet, scaricandole attraverso il diodo. Diodi veloci possono essere BA159 o simili.
All’accensione del circuito il pin TRIGGER è a livello basso, perché C1 è scarico, quindi
inizia l’oscillazione, e l’uscita va livello alto.

Dato che l’uscita va a livello alto, C1 si inizia a caricare tramite il potenziometro R1 e il
diodo D2, quando la tensione di carica di C1 arriva ai 2/3 della tensione di alimentazione, il
pin 6 va a livello alto, quindi manda a livello basso l’uscita (pin 3) e il pin di scarica (pin 7).
Dato che l’uscita (3) va a livello basso, il condensatore C1 inzia a scaricarsi tramite D1 e
R1, e quando la sua tensione arriva ad 1/3 della tensione di alimentazione, l’uscita 3 e il
pin di scarica (7) vanno a livello alto, e il ciclo si ripete sempre così.
La rete composta da R1, D1 e D2 è stata progettata perché dato che il tempo di
carica/scarica sulla resistenza R1 è sempre la stessa (infatti il potenziometro ai due
estremi ha sempre la stessa resistenza), la frequenza del segnale è sempre uguale, ma
nello stesso tempo si può variare il suo duty cycle agendo su R1, in quanto si variano i
tempi di carica/scarica del condensatore, e quindi il tempo in cui il periodo sta ALTO e
BASSO.
Tramite C1 ed R1 (sempre considerando i due estremi del potenziometro), è possibile
variare la fequenza, che in questo caso è circa 144 Hz (ed è costante per il discorso fatto
prima).
La scelta di questo valore è da attribuirsi ad una semplificazione del calcolo, in quanto la
formula per determinare la frequenza è:
F = 1,44 / (C1 * R1)
i valori di C1 ed R1 devono essere ovviamente in Farad ed Ohm.
In questo caso avendo:
C1 = 100 nF = 0,0000001 F
R1 = 100 kΩ = 100 000 Ω
1,44 / (0,0000001 * 100 000) = 144 Hz
Per il collegamento del carico, è stato utilizzato un IRFZ46N, un mosfet il quale estratto del
datasheet è riportato qui di seguito:

max_ratings_IRFZ46N

Da questa tabella potete vedere i valori massimi accettabili da questo circuito.
La tensione di alimentazione del circuito può essere compresa tra 5 e 18 V dc, in quanto
valori più bassi non farebbero condurre il mosfet (è un canale N conduce solo con 4 volt o
più), e valori più alti potrebbero dare problemi, ma comunque è un range di tensione
accettato dalla maggior parte degli alimentatori.
La tensione di alimentazione del CARICO deve essere collegata al pin contrassegnato col
segno + in ALTO, dove c’è scritto “+V carico”; il cerchio indica il carico, il cui terminale
negativo (ove presente) deve essere rivolto verso il mosfet.
Per i valori massimi del carico (tensione, corrente ecc…) fare riferimento alla tabella
estratta dal datasheet del IRFZ46N, dato che l’onda quadra generata dal NE555 serve
solo a pilotare il mosfet.

Di seguito riporto il master del pcb:

pcb_pwm_ne555_ok

(questo articolo proviene dal vecchio sito. Visualizzazioni al momento della migrazione: 2347)

banner_licenza_cc-by-nc-nd-3-0-it

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

20 Responses

  • orlando pennino says:

    Ciao, complimenti per i tuoi progetti, vorrei farti una domanda con questo circuito e possibile pilotare motori cc 48v 120w 3A

    • Ciao, con il circuito descritto puoi pilotare tranquillamento il motore che hai, perché viene pilotato in modalità NPN, ovvero il mosfet comanda la massa del motore. Quindi l’unico vincolo del circuito è la corrente massima, che però secondo il datasheet del mosfet è di 53 A a 25°C, e scende a 37 A a 100°C. In ogni caso abbondantemente superiore a quella assorbita dal tuo motore. Avendo 48 V di tensione devi però prevedere un regolatore di tensione secondario per alimentare il 555.
      Saluti, Marco (grazie per i complimenti 😉

      • Alessandro says:

        Ciao, complimenti per il avoro svolto…

        Volevo una delucidazione…
        Se la caduta di tensione ai capi del motore dovesse scendere al di sotto di un certo valore (motore bloccato) lasciando cadere il resto della tensione sul mosfet, come proponi di affrontare il problema?

        • Ciao, ci sono diverse strade, potresti misurare la tensione sul drain del mosfet U2 e con un operazionale o con un microcontrollore la confronti con una soglia da te impostata.
          Quindi l’uscita dell’opamp/micro la puoi collegare ad un secondo mosfet che collega a massa direttamente il carico, in modo da forzare l’avviamento (se il problema è che il motore non riesce a partire con una percentuale di PWM bassa).
          Se invece il problema è che il motore può bloccarsi durante il funzionamento perché sforza troppo potrebbe essere utile collegare l’uscita invertita dell’opamp/micro ad un mosfet collegato tra il source di U2 e la massa, in modo da staccare corrente in caso di blocco.

  • Marcello says:

    Ciao e anch’io ti faccio i complimenti. 😉
    Volevo sapere se il tuo circuito è adatto ad essere comandato da una centralina del clima di un’auto
    che ha un range da 0,9V a 5,9V e che piloterà la ventola abitacolo con un 12V fisso ed un consumo alla massima velocita, quindi in ingresso oltre 5V, di circa 7,10A

  • Mr Phil says:

    Ciao. Complimenti per il sito. Bel progettino che vorrei provare per pilotare una ventolina 12 volt. Volevo chiederti, c’è la possibilità di comandarlo tramite temperatura? Cioè al variare della temperatura varia la velocità delle ventole? Se si come? Grazie per la risposta.

    • Ciao Phil, si è possibile controllare tramite temperatura, ma abbastanza macchinoso perché dovresti sapere che tensione genera la tua sonda al minimo e al massimo della temperatura del range di regolazione, quindi realizzare un VCO con il 555 (ovvero un convertitore tensione/frequenza).
      Questa cosa è facilmente realizzabile con un microcontrollore in pochissimo tempo.

  • Marco says:

    Complimenti!
    Si può pilotare una ventola a 4 pin a 12 V?
    In questo caso il pin col segno + dello schema andrebbe collegato al pin pwm della ventola? Grazie

    • Ciao, si potresti pilotare anche una ventola a 4 fili, potresti provare a collegare il + e il – della ventola direttamente all’alimentazione, quindi collegare il 4° filo (che è il segnale di controllo) al pin 7 del 555. Però questo tipo di ventole sarebbe meglio controllarle con un segnale pwm più stabile di quello generato dal 555, ad esempio con un microcontrollore (Arduino sarebbe perfetto). Nel caso del microcontrollore, i collegamenti sarebbero gli stessi, e il 4° filo va collegato ad un uscita Pwm del micro stesso

  • Mr Phil says:

    Grazie per la risposta. La mia domanda in realtà era più semplice. Potrei sostituire il potenziometro con un termistore di pari valore? A me in realtà interessa che la ventola entri in funzione a circa 36° per arrivare al massimo della tensione a circa 45/50 gradi. Grazie

  • giacomo says:

    Posso collegare più motori 5v in parallelo?

    • Ciao Giacomo, si puoi collegare più motori in parallelo, attenzione però che questo non significa che gireranno alla stessa velocità e/o assorbiranno la stessa corrente, in quanto questo dipende unicamente dal motore.

      • giacomo says:

        Grazie per la risposta (peraltro veloce) il mio quesito è quello di comandare diversi motori dc( 2fili recuperati da stampanti) con arduino a velocità ridotta e un solo pin in Pwm, cosa mi consiglia?

        • Prego 🙂
          Per fare ciò puoi collegare un mosfet su un uscita PWM, tipo un IRL540 (che è un mosfet pilotabile anche con segnali TTL, ovvero 0-5V, dato che i mosfet classici si pilotano con un segnale 0-10V).
          Colleghi il Gate all’uscita PWM di Arduino, il Source al GND del tuo circuito, e il Drain al negativo del motore. Il positivo del motore lo colleghi diretto alla tensione di alimentazione (con un fusibile se vuoi).
          Per evitare spike che possono danneggiare il mosfet, aggiungi un diodo veloce di protezione, collegato in antiparallelo sul motore (ovvero: anodo al negativo del motore e catodo al positivo del motore).
          Questo è il circuito di base per pilotare un carico in PWM con Arduino, poi da qui si può ampliare aggiungendo filtri, stadi di pilotaggio e altre cose per renderlo più affidabile. Ma intanto puoi partire con questa base, e se non è un applicazione in ambiente critico (industriale o automotive) puoi anche lasciarlo così.
          Ovviamento io dico motore ma è un carico generico che può essere costituito anche da più motori in parallelo o anche diverse cose.

          • giacomo says:

            Salve, l’ambiente è un presepe e i motori sono da 5 v, volevo chiederle se va bene il Mosfet bdx53 e come diodo il 1N4007, e per ultimo se ho capito bene basta solo un mosfet per tutti i motori o bisogna mettere un mosfet per ogni motore, se non chiedo troppo può farmi uno schema, grazie. Un saluto

          • Il BDX53 non va bene perché è un transistor e non un mosfet. Cioè collegato come suggerito non funziona, ma progettando il circuito diversamente potrebbe andare bene. Il mosfet è comunque meglio sotto molti punti di vista per questa applicazione.
            Il diodo, anche se non è un diodo veloce, va bene lo stesso.
            Puoi usare un solo mosfet per tutti i motori, a patto che la corrente totale stia comunque dentro ai limiti del mosfet. Considera che la corrente massima del IRL540 (oltre la quale distruggi il mosfet) è di 28A. Tieni presente che bisogna dimensionare correttamente anche la dissipazione del calore, in quanto per alte correnti la temperatura rischia di andare fuori limiti.
            Allego uno schema basilare del circuito:
            Collegamento IRL540 Arduino base



Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *