Ultimo aggiornamento della pagina 2 luglio 2004 a cura di Nicola Sellitto (Napoli) e Adriano Gandolfo (Torino) |
|
Per controllare i motori DC si utilizzano normalmente dei ponti ad H di transistor. Sono disponibili anche dei ic che implementano al suo interno 2 ponti ad H. Esempi di tali integrati sono L293D, SN754410NE, L293B. Tutti e 3 gli integrati premettono di pilotare in modo direzionale 2 piccoli motori DC. Le caratteristiche generali sono: |
|
---|
Lo schema logico di funzionamento è identico per tutti e 3 gli integrati ad eccezione del L293B che abbisogna di 4 diodi shottley di protezione per motore. Di seguito è mostrato lo schema per L293D ed SN754410NE
|
Entrambi gli schemi permettono la stessa modalità di controllo dei motori secondo la seguente tabella: |
|
---|
|
---|
Come si vede per gestire il verso di rotazione del motore si impostano opportunamente i valori IN1 ed IN2 per il primo motore ed IN3 ed IN4 per il secondo motore. Il controllo dei 2 motori è perfettamente simmetrico. Per gestire correttamente sono necessari 3 segnali input, volendo risparmiare un ingresso è anche possibile rinunciare alla funzionalità di "arresto rapido" e forzando (con un inverter) a valori sempre diversi i 2 input IN1 - IN2; in tal modo l'arresto avviene impostando l'Enable a low. Lo schema risultante è il seguente, per semplicità non sono riportati gli eventuali diodi di protezione: In tal caso la tabella di controllo diventa, per semplicità si riporta soltanto quella relativa ad M1: |
|
---|
La modalità di controllo vista è la più semplice e non permette la gestione della velocità. Volendo utilizzare una tecnica più sofisticata si può usare il PWM ovvero Pulse Width Modulation. Fondamentalmente esistono 3 tecniche diverse per applicare il pwm: |
|
Lo schema della prima tecnica è riportata di seguito, per semplicità non sono riportati gli eventuali diodi di protezione: |
In questo caso il controllo della rotazione del motore avviene sempre mediante DIR, mentre impostando opportunamente il duty cycle del segnale pwm si controlla la tensione fornita ai motori e conseguentemente la velocità di rotazione degli stessi. La seconda tecnica è una variante della prima in cui il segnale pwm non è inviato all'Enable ma ad un pin di direzione influenzando la potenza, mentre l'altro pin di direzione viene impostato per il verso di direzione desiderato. Lo schema è riportata di seguito, per semplicità non sono riportati gli eventuali diodi di protezione: |
Poiché la tabella di controllo risulta sempre valida bisogna fare attenzione al valore da assegnare al duty cycle quando il segnale di direzione Dir M1 = IN 1 risulta alto. Infatti in tal caso la rotazione avviene durante il segnale basso del pwm; pertanto per avere un duty cycle del 30% bisogna impostare un valore del 70%. Nulla cambia, invece, nell'altro verso di rotazione cioè quando Dir M1 = IN1 risulta basso. La terza ed ultima tecnica è quella riportata di seguito: |
In questo caso la direzione dei motori è controllata dal valore di duty cycle utilizzato, impostando un valore :
|
|
Si possono utilizzare anche valori intermedi con la realtiva diminuzione della velocità. Volendo realizzare un circuito di controllo motori il più possibile flessibile, cioè che possa essere utilizzato, in base all'impostazione di semplici jumper, con le tecniche:
|
|
si può utilizzare il seguente circuito in cui l'assegnazione del compito non è prestabilita ma assegnata di volta in volta dal software di controllo: |
Anche in questo schema non sono riportati gli eventuali diodi di protezione. Il funzionamento del circuito dipende dalla seguente tabella che, per semplicità, fa riferimento soltanto al pilotaggio del motore M1 essendo l'altro totalmente equivalente: |
|
---|
Nella pratica risulta semplice implementare questo schema rinunciando ad avere il Pwm nella modalità classica. |
|
---|
Volendo risparmiare un pin si può fare a meno di RB2 ed impostando l'enable sempre a +5V. |
Encoder Per controllare l'effettivo movimento della ruota connessa al motore, mediante il sistema di ingranaggi del motoriduttore, si utilizzano gli encoder. Questi sono formati da una coppia di diodi ad infrarossi in cui uno emette un raggio di luce e l'altro la riceve a secondo della posizione in cui si viene a trovare una rotella interposta tra i 2 led. Il circuito elettrico di pilotaggio degli encoder è il seguente: E' bene, quindi, prevedere nella motor board anche questa semplice circuiteria in cui output rappresenta l'input ad un pin del pic e server per contare gli impulsi ricevuti da cui si ricava (in base al numero di tacche presente nella rotella ed alla circonferenza della ruota) il reale spostamento della ruota. |
Elenco revisioni | |
02/07/2004 | Emissione preliminare |