Questa è una vecchia versione del documento!
Indice
Shield motore 2017
Definizione delle specifiche
Scelta driver motore:
integrato | pro | contro |
---|---|---|
L293D | su zoccolo e con diodi integrati | da comprare, solo 0,6A, niente chopper con L297 |
L293B | su zoccolo, disponibile in lab, 1A | niente chopper con L297, 8 diodi sul PCB |
L293E | su zoccolo, 1A, chopper con L297 | da comprare 8 diodi sul PCB |
L298 | disponibile in lab, 2A, chopper con L297 | niente zoccolo, 8 diodi sul PCB |
NB Texas e ST possono avere una piedinatura diversa!
Scelta logica PWM:
sui 4 ingressi- sui 2 enable
La seconda soluzione è più semplice perché usa solo due segnali PWM per gli enable e la risposta è più rapida (vedi appication note ST)
Direzione:
quattrodue ingressi per la direzione (usare delle porte NOT per comandare in maniera complementare il ponte)
Scelta scheda:
- shield per Arduino
- scheda motore collegabile a Arduino o generatore di funzione
Scelta controllo:
- solo motore DC (facile)
- motore DC e stepper usando Arduino (senza L297 ma via software)
- solo stepper con driver motore + L297 (non ha molto senso farne uno shield Arduino)
- motore DC e stepper con jumper per escludere L297 (complicato)
Scelta alimentazione:
- i driver vanno a 5V ma possono funzionare a tensioni più alte perché c'è un regolatore interno
- meglio separare l'alimentazione della logica e quella del motore
- se si fa uno shield Arduino logica su 5V e morsettiera di alimentazione motore collegata alla Vin di Arduino (alimenta entrambi, max 12V)
- in alternativa alimentazioni separate per Arduino e logica; motore con morsettiera non collegata a Vin (o jumper che permette di scollegare Vin se si vuole mantenere la possibilità di alimentare Arduino)
- meglio una morsettiera sullo shield dello spinotto (più facile il collaudo)
La soluzione più semplice è:
- shield Arduino (usando i template della National)
- driver L293D (niente diodi, su zoccolo), in alternativa SN754410 che è identico ma da 1A
- PWM su enable usando due pin digitali PWM (3, 5, 6, 9, 10, 11)
- direzione con due pin digitali e una porta NOT
o quattro pin digitali - niente L297 perché troppo complicato, non useremmo il chopper e il limite di 0,6A impedisce di usare i motori del lab
Probabilmente è fattibile su single layer.
Progetti di riferimento
Arduino Motor shield R3
Usa:
- L298P (SMD), con PWM sugli enable dei due ponti (più veloce, con ricircolo su diodi e alimentazione)
- 4077 (XNOR), per generare input complementari per i due ponti dell'L298 e impostare la direzione con un solo pin
- LMV358 (OP-AMP) per la misura delle correnti (come caduta su 0,15 Ohm amplificata 10 volte)
- jumper SMD (da tagliare) per:
- escludere i pin A0 e A1 che misurano la corrente
- Vin della scheda Arduino e separare l'alimentazione dei motori (su morsettiera shield)
- escludere i pin D8 e D9 per la frenatura
Il controllo del singolo motore avviene impostando:
- la direzione su un pin digitale non PWM che, grazie alla porta XNOR, comanda in maniera complementare i due semiponti (0 e 1 oppure 1 e 0)
- l'eventuale frenatura con un pin digitale che, grazie alla porta XNOR, comanda attiva il ponte solo nella parte alta (1 e 1) o bassa (0 e 0)
- la velocità con un segnale PWM applicato all'enable del ponte collegato ad un pin digitale PWM
Nella fase OFF del PWM il ponte è spento, il ricircolo avviene attraverso i diodi e l'alimentazione, e la risposta è rapida. Nella frenatura il ponte è attivo solo nella parte alta o bassa, il ricircolo avviene attraverso diodo e transistor, e la frenatura è meno rapida.