Controllo motore DC

Esistono diverse tipologie di motori alimentati con una tensione continua (DC).

Motore DC (alimentato con tensione continua), servo motori,(dotati di feedback), motori brushless (senza spazzole) e motori stepper (motori passo-passo).

I servo motori sono utilizzati, in gruppo, nella costruzione di robot grazie alla facilità di posizionamento  preciso e ripetitivo; per esempio nella ricostruzione dei movimenti di una mano.

I motori DC sono utilizzati per muovere avanti e indietro e girare una piattaforma scorrevole.

I motori stepper, sono utilizzati per spostamenti precisi come nei CNC.

I motori brushless, per la loro velocità e coppia motore, sono utilizzati principalmente nella costruzione di robots, veicoli e velivoli elettrici.

H-Bridge

Motori H-bridge

Il suffisso “H”, indica l’aspetto grafico dello schema elettrico che assomiglia a una H con al centro il motore.

Ci sono molti C.I. progettati per pilotare i motori in corrente continua, solitamente con un doppio H-bridge a Mosfet all’interno, tra questi L293, L298,.. che contengono anche il diodo di protezione (flyback diode) contro la back EMF (forza elettromotrice inversa generata dal motore.

Driver per controllo motori A3901

In Flowcode, i motori sono controllati dal C.I. A3901.

Il circuito integrato A3901, può pilotare due motori a spazzole DC con un assorbimento di corrente di 400 mA ciascuno, oppure, 1 motore con un assorbimento di 800 mA, utilizzando i due H-bridge in parallelo,  con la tensione di alimentazione compresa tra 2,5 e 5,5 Volt.

È possibile controllare un motore DC in modalità forward (avanti), Reverse(indietro) oppure, quando tutti gli ingressi sono a 1 Brake(frenato); (attenzione, in questo stato non c’è protezione se si supera la corrente massima).

Utilizzando un segnale PWM alla frequenza di 250 kHz; il controllo si attua mantenendo l’ingresso secondario alto o basso secondo che si voglia avere una risposta lenta o veloce.

Il circuito integrato ha un sistema di protezione interna contro la sovratemperatura (TSD thermal Shut down: 165°C) e crossover (shoot-through).

Con la funzione sleep_mode, tutti gli ingressi a 0,5 V, limita l’assorbimento a 50 nA

La simulazione in Flowcode può essere rappresentata in un “Ciclo” contenente due funzioni Input associate ai due pulsanti collegati alle porte che controllano il motore, che nella simulazione di Flowcode è già collegato al circuito integrato A3901.

il motore è collegato ai pin 0 e 1 della porta B.

Motori proprietà

I due pulsanti presenti nella 2D dashboard, sono associati alle variabili sw1 e Sw2 di tipo Bool e collegati ai pin 1 e 2 della porta B.

Motori variabili
Motori pulsanti

Input pin 0 e pin 1 della porta B

Variabili sw1 e Sw2

Applicando agli ingressi di controllo, un segnale logico, si ottiene il movimento del motore avanti o indietro, in funzione della combinazione dei segnali indicata sul data-sheet.

https://html.alldatasheet.com/html-pdf/143415/ALLEGRO/A3901/292/1/A3901.html

Il pannello Properties del motore indica la combinazione:

  • A=1, B=0: avanti
  • A=0, B=1: indietro
  • A=0, B=0: fermo

Nell’esempio i pulsanti sono collegati al pin 0 e 1, della porta B, corrispondenti ai pinA e pinB del controllo motore.

Premendo un pulsante, il segnale logico passa da 0 a 1, provocando il movimento del motore; se i due pulsanti non sono premuti contemporaneamente, il motore resta fermo.

Motori true table

l’esempio descritto non utilizza le librerie di Flowcode, che è predisposto con le funzioni avanti, indietro e fermo.

Motori macro component

Controllo velocità di rotazione di un motore DC.

Per variare la velocità di un motore in corrente continua, è possibile controllare la corrente di alimentazione con un segnale PWM.

Il segnale PWM è inviato a un solo pin che controlla il driver A3901, l’atro pin è mantenuto basso o alto per impostare il “Decay”.

Controllo motore con half-bridge

Il motore DC è facilmente azionabile accendendo o spegnendo un pin collegato alla base di un transistor o al gate di un Mosfet, utilizzati come driver di potenza; la configurazione half-bridge, non permette di invertire il senso di rotazione del motore.

Quando l’uscita digitale va a livello logico 1, la base del transistor (NPN), è attraversata dalla corrente proveniente dalla resistenza che limita la corrente in uscita dal pin, e fa scorrere la corrente nel motore collegato sul collettore

Maggiore è la corrente che scorre sulla base del transistor, maggiore sarà la corrente che scorrerà tra collettore e emettitore.

Il beta del transistor è il fattore di moltiplicazione per la corrente sulla base; un beta di 150, significa che 1 mA sulla base farà scorrere una corrente di 150 mA tra collettore e emettitore.

Il diodo posto in parallelo al motore, elimina la corrente generata dal motore (back EMF).

La resistenza da 10 k tra la base del transistor e il Ground, stabilizza il controllo della base del transistor contro i rumori elettromagnetici.

Motori half-bridge

Utilizzo dei Mosfet per controllo motori DC

I Mosfet si usano come i transistor, quando la tensione è applicata al gate, la corrente scorre tra il Drain e il Source.

Il Mosfet IR520 è un tipico Mosfet a canale N, può pilotare un carico da 10 A alla tensione di 100 Volt.

Il gate, è disaccoppiato con un condensatore all’interno del Mosfet e può essere collegato direttamente alla uscita, anche se per abitudine preferisco interporre una resistenza da 15 k, per proteggere l’uscita logica di Arduino.

Controllo motore con PWM

Arduino ha 6 uscite PWM, pins 3,5,6,9,10 e 11, quando l’uscita PWM è attivata, non è necessario ripetere l’operazione ad ogni ciclo del programma perché rimane attivo finché arriva il segnale stop.

Il segnale PWM, permette di controllare la quantità di corrente che arriva al gate del Mosfet o del transistor; quando il segnale logico è a livello alto, si avrà il trasferimento di potenza, quando il segnale è a livello basso, non si avrà alcun trasferimento di potenza.

Il segnale PWM si ripete con una frequenza prossima al KHz, perché se la ripetizione del segnale ha un periodo troppo lungo il motore si muoverà a scatti.

Con un Duty Cycle al 100%, si avrà la massima potenza trasferibile al motore, che girerà alla massima potenza di cui è capace, con un Duty cycle al 50 %, si avrà la metà della potenza trasferibile, con un duty cycle al 10% si avrà un trasferimento basso trasferimento di potenza; il motore girerà lentamente.

rick 3Riccardo Monti