Arrow Electronic Components Online

Controllo semplice della velocità di un motore CC con PWM

Controllo motore23 mar 2023
Un microcontrollore Raspberry Pi Pico è collegato a un circuito su breadboard, controllando un piccolo motore DC.
Visualizza tutti gli articoli

Di: Jeremy Cook

Una delle operazioni più fondamentali nell'elettronica è il controllo della velocità di un motore CC. Qui esamineremo cosa significa a partire dalle basi: inviare un segnale PWM a un MOSFET o a un driver dedicato. Questo segnale controlla direttamente la velocità del motore CC, utilizzando correnti (e spesso tensioni) più elevate di quelle che il controller può produrre da solo.

Controllo PWM semplice per LED

A blue handheld oscilloscope is shown capturing waveforms from a small electronic circuit on a white breadboard.

Jeremy Cook | LED esterno con impulsi indicati dall'oscilloscopio

Il PWM (ossia, modulazione di larghezza di impulso) simula un'uscita di tensione analogica ripetendo impulsi per durate variabili. In questa configurazione, il periodo è definito come il tempo necessario per completare un ciclo di accensione e spegnimento. Il ciclo di lavoro, spesso espresso in percentuale, è il rapporto tra il tempo di accensione e quello di spegnimento. 
 
Un segnale a cinque volt con un ciclo di lavoro del 50% risulterebbe in un segnale analogico simulato di 2,5V. Un periodo di 1ms produrrebbe questo stato di accensione/spegnimento 1000 volte al secondo (o 1000 Hz), definito come la frequenza del segnale PWM. Il controllo PWM funziona bene con motori CC e altri carichi che cambiano lentamente. Un'uscita analogica vera e propria è preferibile in situazioni diverse, come la riproduzione audio.
 
Utilizzeremo il Raspberry Pi Pico con CircuitPython per esplorare questo principio e generare segnali PWM. Per una breve introduzione, carica il codice disponibile qui. Questo codice alternerà il LED integrato tra la massima intensità, ossia 65.535 (2^16 – 1), e 4.095 (2^12 -1), meno di 1/10 del valore iniziale. Si può osservare il cambiamento della luce, sebbene possa essere difficile correlare l'uscita luminosa osservata con il valore numerico.

Circuito di controllo motore MOSFET

This schematic diagram features a Raspberry Pi Pico microcontroller connected to a simple DC motor driver circuit.

Jeremy Cook | Circuito di controllo del motore DC con MOSFET

Il metodo di controllo che utilizza un MOSFET (FQP30N06L) è essenzialmente lo stesso di quello per un LED. Il codice per il nostro prossimo esperimento si trova qui. Collega l’uscita di controllo al pin di gate del MOSFET attraverso una piccola resistenza (~100Ω). Aggiungi una resistenza da 10k verso massa per mantenerlo basso quando non è presente alcun input. Il cavo positivo del motore si collega al drain del MOSFET, mentre il source del MOSFET è connesso a massa.
 
Il pin VBUS inizialmente forniva la tensione positiva; tuttavia, sarebbe generalmente meglio utilizzare una fonte di tensione esterna collegata a una massa comune con il Pico. Sarebbe inoltre consigliabile implementare un diodo di flyback per gestire carichi induttivi parassiti.

L293D motor driver: Un modo più semplice per costruire un circuito di controllo per motori CC

A Raspberry Pi Pico microcontroller is connected on a white breadboard alongside a small DC motor.

Jeremy Cook | Didascalia: L293D Motor Driver

MOSFETs sono dispositivi versatili, ma se desideri controllare velocità e direzione—o se hai più di un motore da gestire—le cose possono complicarsi molto rapidamente. Fortunatamente, sono disponibili driver per motori integrati pronti all'uso per affrontare questa sfida, tra cui il rinomato driver L293D utilizzato qui. I requisiti di cablaggio possono essere determinati dalla scheda tecnica. Il metodo che ho utilizzato per collegarlo al mio Raspberry Pi Pico è illustrato nel diagramma seguente:

This schematic shows a Raspberry Pi Pico microcontroller connected to an L293D motor driver IC.

Jeremy Cook | Pin GND U4 collegati internamente

Il codice di rotazione digitale (on/off) per questa configurazione si trova qui, che fa andare il motore avanti e indietro alla massima potenza, con pause intermedie. Questo codice PWM inizializza il motore con un ciclo di lavoro specifico, lo accelera progressivamente e poi lo ferma. Successivamente accelera nell'altra direzione e si ferma di nuovo prima di ripetere la sequenza.

Una parola di cautela sul driver L293D

Utilizzando quell'ultimo pezzo di codice (con un ingresso VCC2 a 12V e senza condensatore), ho finito per disabilitare una scheda Raspberry Pi Pico. Una buona pratica sarebbe stata utilizzare condensatori per stabilizzare gli ingressi di alimentazione e logica. L'L293D fornisce capacità di clampaggio interne per gestire carichi induttivi, quindi non sarebbero stati necessari diodi flyback esterni. Ci sono diversi potenziali responsabili per quanto accaduto, ma dovrebbe servire come promemoria per garantire che l'hardware sia specificato e implementato per soddisfare i requisiti del mondo reale una volta lasciato il banco di lavoro.

Plug-and-play – o personalizzazione completa?

I vostri circuiti di controllo dei motori CC probabilmente non rimarranno a lungo su una breadboard. Da qui, ci sono due strade divergenti:   Per prototipazione avanzata o progetti unici, sono disponibili shield per motori e schede di sviluppo che aggiungono driver come il L293D come soluzione plug-and-play per motori CC, stepperservo, e altro. Lo Arduino Motor Shield è forse il più noto ed è compatibile con il form factor di Arduino Uno. Se desiderate continuare con la piattaforma RP2040, il Maker Pi RP2040 potrebbe essere un'ottima soluzione plug-and-play per controllare motori e altri dispositivi.   Dall'altro lato dello spettro, è possibile integrare i progetti di controller per motori direttamente nel proprio design di scheda a circuito stampato. Questa integrazione offre una libertà di progettazione quasi infinita, permettendo, ad esempio, di implementare alcune delle funzionalità del Maker Pi RP2040 lasciando fuori ciò che non è necessario. Potete anche progettare la vostra scheda con il form factor fisico perfetto per la vostra applicazione.

A Raspberry Pi Pico microcontroller is connected to a breadboard circuit alongside a JF-0530B solenoid.

Jeremy Cook | MOSFET per motore elettrico e altri controlli di carico. Poiché il solenoide funge da induttore, un diodo di ricircolo sarebbe comunque stata una buona idea.

I principi generali di controllo PWM presentati qui sono validi e possono essere utilizzati per una varietà di carichi; tuttavia, l'hardware presentato è stato rapidamente assemblato come demo per questo articolo. Per i progetti finali, sarà necessario considerare attentamente ogni situazione particolare, insieme alle specifiche e alle informazioni sui datasheet disponibili su Arrow. Il tuo dispositivo può funzionare senza problemi per anni con una corretta configurazione del controller PWM per motori DC.
 
Qualunque sia lo sviluppo del tuo progetto, Arrow è qui per fornire i microcontrolloriMOSFETdriver per motori e altri dispositivi necessari per trasformare in realtà il tuo controller di velocità PWM per motori DC!

Tag articolo

Globale
Articolo
Controllo Motore
Motori

Contenuto correlato