Sommario:
- Passaggio 1: motori e driver
- Passaggio 2: come utilizzare Arduino L293D Motor Driver Shield?
- Passaggio 3: guidare il motore CC
- Passaggio 4: guida del servomotore
- Passaggio 5: guida del motore passo-passo
- Passaggio 6: acquista lo scudo del driver del motore Arduino L293D
- Passaggio 7: progetti correlati:
- Passaggio 8: metti mi piace su Facebook
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
Puoi leggere questo e molti altri fantastici tutorial sul sito ufficiale di ElectroPeak
Panoramica
In questo tutorial imparerai come pilotare motori DC, passo-passo e servomotori utilizzando uno shield driver motore Arduino L293D.
Cosa imparerai:
- Informazioni generali sui motori DC
- Introduzione allo scudo motore L293D
- Azionamento di motori DC, Servo e Stepper
Passaggio 1: motori e driver
I motori sono una parte inseparabile di molti progetti di robotica ed elettronica e hanno diversi tipi che è possibile utilizzare a seconda della loro applicazione. Ecco alcune informazioni sui diversi tipi di motori:
Motori CC: il motore CC è il tipo più comune di motore che può essere utilizzato per molte applicazioni. Possiamo vederlo in auto telecomandate, robot e così via. Questo motore ha una struttura semplice. Inizierà a rotolare applicando una tensione adeguata alle sue estremità e cambierà direzione cambiando la polarità della tensione. La velocità dei motori DC è direttamente controllata dalla tensione applicata. Quando il livello di tensione è inferiore alla tensione massima tollerabile, la velocità diminuirà.
Motori passo-passo: in alcuni progetti come stampanti 3D, scanner e macchine CNC, è necessario conoscere accuratamente i passaggi di rotazione del motore. In questi casi utilizziamo motori passo passo. Il motore passo-passo è un motore elettrico che divide una rotazione completa in un numero di passaggi uguali. La quantità di rotazione per passo è determinata dalla struttura del motore. Questi motori hanno una precisione molto elevata.
Servomotori: il servomotore è un semplice motore a corrente continua con un servizio di controllo della posizione. Usando un servo sarai in grado di controllare la quantità di rotazione dell'albero e spostarlo in una posizione specifica. Di solito hanno dimensioni ridotte e sono la scelta migliore per i bracci robotici.
Ma non possiamo collegare questi motori a microcontrollori o schede controller come Arduino direttamente per controllarli poiché potrebbero aver bisogno di più corrente di quella che un microcontrollore può pilotare, quindi abbiamo bisogno di driver. Il driver è un circuito di interfaccia tra il motore e l'unità di controllo per facilitare la guida. Le unità sono disponibili in molti tipi diversi. In questa istruzione imparerai a lavorare sullo scudo del motore L293D.
L293D shield è una scheda driver basata su L293 IC, che può pilotare 4 motori DC e 2 stepper o servomotori contemporaneamente.
Ogni canale di questo modulo ha la corrente massima di 1.2A e non funziona se la tensione è superiore a 25v o inferiore a 4.5v. Quindi fai attenzione nella scelta del motore appropriato in base alla sua tensione e corrente nominali. Per ulteriori caratteristiche di questo shield ricordiamo la compatibilità con Arduini UNO e MEGA, la protezione elettromagnetica e termica del motore e il circuito di sezionamento in caso di innalzamento di tensione non convenzionale.
Passaggio 2: come utilizzare Arduino L293D Motor Driver Shield?
Durante l'utilizzo di questo shield 6 pin analogici (che possono essere utilizzati anche come pin digitali), il pin 2 e il pin 13 di arduino sono liberi.
In caso di utilizzo di servomotore, i pin 9, 10, 2 sono in uso.
In caso di utilizzo di un motore CC, pin11 per #1, pin3 per #2, pin5 per #3, pin6 per #4 e pin 4, 7, 8 e 12 per tutti sono in uso.
In caso di utilizzo del motore passo-passo, i pin 11 e 3 per il n. 1, i pin 5 e 6 per il n. 2 e i pin 4, 7, 8 e 12 per tutti sono in uso.
È possibile utilizzare pin liberi tramite connessioni cablate.
Se stai applicando un'alimentazione separata ad Arduino e shield, assicurati di aver scollegato il jumper sullo shield.
Passaggio 3: guidare il motore CC
#includere
La libreria di cui hai bisogno per controllare il motore:
AF_DCMotore motore (1, MOTOR12_64KHZ)
Definire il motore DC che stai utilizzando.
Il primo argomento rappresenta il numero dei motori nello scudo e il secondo rappresenta la frequenza di controllo della velocità del motore. Il secondo argomento può essere MOTOR12_2KHZ, MOTOR12_8KHZ, MOTOR12_8KHZ e MOTOR12_8KHZ per i motori numero 1 e 2, e può essere MOTOR12_8KHZ, MOTOR12_8KHZ e MOTOR12_8KHZ per i motori numero 3 e 4. E se non è selezionato, sarà 1KHZ per impostazione predefinita.
motor.setSpeed(200);
Definizione della velocità del motore. Può essere impostato da 0 a 255.
ciclo vuoto() {
motore.run(AVANTI);
ritardo(1000);
motore.run(INDIETRO);
ritardo(1000);
motore.run(RELEASE);
ritardo(1000);
}
La funzione motor.run() specifica lo stato di movimento del motore. Lo stato può essere AVANTI, INDIETRO e RILASCIO. RELEASE è lo stesso del freno, ma potrebbe volerci del tempo prima che il motore si fermi completamente.
Si consiglia di saldare un condensatore da 100nF a ciascun pin del motore per ridurre il rumore.
Passaggio 4: guida del servomotore
La libreria e gli esempi Arduino IDE sono adatti per pilotare un servomotore.
#includere
La libreria di cui hai bisogno per pilotare il servomotore
Servo mio servo;
Definizione di un oggetto Servomotore.
void setup() {
mioservo.attach(9);
}
Determinare il pin che si collega a Servo. (pin 9 per sevo n. 1 e pin 10 per servo n. 2)
ciclo vuoto() {
mioservo.write(val);
ritardo(15);
}
Determinare la quantità di rotazione del motore. Da 0 a 360 o da 0 a 180 a seconda del tipo di motore.
Passaggio 5: guida del motore passo-passo
#include < AFMotor.h>
Determina la libreria di cui hai bisogno
AF_Motore passo-passo(48, 2);
Definizione di un oggetto motore passo-passo. Il primo argomento è la risoluzione del passo motore. (ad esempio, se il tuo motore ha la precisione di 7,5 gradi/passo, significa che la risoluzione del passo del motore è. Il secondo argomento è il numero del motore passo-passo collegato allo schermo.
void setup() { motor.setSpeed(10);
motor.onestep(AVANTI, SINGOLO);
motore.rilascio();
ritardo(1000);
}
void loop() { motor.step(100, FORWARD, SINGLE);
motor.step(100, INDIETRO, SINGOLO);
motor.step(100, AVANTI, DOPPIO); motor.step(100, INDIETRO, DOPPIO);
motor.step(100, FORWARD, INTERLEAVE); motor.step(100, BACKWARD, INTERLEAVE);
motor.step(100, AVANTI, MICROSTEP); motor.step(100, INDIETRO, MICROSTEP);
}
Determinare la velocità del motore in giri/min.
Il primo argomento è la quantità di passo necessaria per muoversi, il secondo è per determinare la direzione (AVANTI o INDIETRO), e il terzo argomento determina il tipo di passi: SINGLE (Attiva una bobina), DOUBLE (Attiva due bobine per più coppia), INTERLEAVED (Variazione continua del numero di spire da una a due e viceversa a doppia precisione, però in questo caso la velocità è dimezzata), e MICROSTEP (Il cambio dei passi va fatto lentamente per una maggiore precisione. In questo caso, la coppia è inferiore). Di default, quando il motore si ferma, mantiene il suo stato.
È necessario utilizzare la funzione motor.release() per rilasciare il motore.
Passaggio 6: acquista lo scudo del driver del motore Arduino L293D
Acquista Arduino L293D Shield da ElectroPeak
Passaggio 7: progetti correlati:
- L293D: teoria, diagramma, simulazione e piedinatura
- La guida per principianti al controllo dei motori di Arduino e L293D
Passaggio 8: metti mi piace su Facebook
Se ritieni che questo tutorial sia utile e interessante, metti mi piace su Facebook.