Arduino - Motore passo-passo

Un motore passo-passo o un motore passo-passo è un motore sincrono senza spazzole, che divide una rotazione completa in un numero di passaggi. A differenza di un motore CC senza spazzole, che ruota continuamente quando viene applicata una tensione CC fissa, un motore passo-passo ruota con angoli di passo discreti.

I motori passo-passo sono quindi prodotti con passi per giro di 12, 24, 72, 144, 180 e 200, con angoli di passo di 30, 15, 5, 2,5, 2 e 1,8 gradi per passo. Il motore passo-passo può essere controllato con o senza feedback.

Immagina un motore su un aeroplano RC. Il motore gira molto velocemente in una direzione o nell'altra. È possibile variare la velocità con la quantità di potenza fornita al motore, ma non è possibile dire all'elica di fermarsi in una posizione specifica.

Ora immagina una stampante. Ci sono molte parti mobili all'interno di una stampante, inclusi i motori. Uno di questi motori funge da alimentazione della carta, ruotando i rulli che muovono il pezzo di carta mentre l'inchiostro viene stampato su di esso. Questo motore deve essere in grado di spostare la carta di una distanza esatta per poter stampare la riga di testo successiva o la riga successiva di un'immagine.

C'è un altro motore collegato a un'asta filettata che sposta la testina di stampa avanti e indietro. Ancora una volta, quella barra filettata deve essere spostata di una quantità esatta per stampare una lettera dopo l'altra. È qui che i motori passo-passo tornano utili.

Come funziona un motore passo-passo?

Un normale motore a corrente continua gira nella sola direzione mentre un motore passo-passo può ruotare con incrementi precisi.

I motori passo-passo possono ruotare di una quantità esatta di gradi (o passi) come desiderato. Questo ti dà il controllo totale sul motore, permettendoti di spostarlo in una posizione esatta e mantenerlo. Lo fa alimentando le bobine all'interno del motore per periodi di tempo molto brevi. Lo svantaggio è che devi alimentare il motore tutto il tempo per mantenerlo nella posizione che desideri.

Tutto quello che devi sapere per ora è che, per muovere un motore passo-passo, gli dici di muovere un certo numero di passi in una direzione o nell'altra e gli dici la velocità alla quale camminare in quella direzione. Esistono numerose varietà di motori passo-passo. I metodi qui descritti possono essere utilizzati per dedurre come utilizzare altri motori e driver non menzionati in questo tutorial. Tuttavia, è sempre consigliabile consultare le schede tecniche e le guide dei motori e dei driver specifici per i modelli che possiedi.

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1 × scheda Arduino UNO
  • 1 × piccolo motore passo-passo bipolare come mostrato nell'immagine sotto
  • 1 × LM298 guida IC

Procedura

Seguire lo schema del circuito ed effettuare i collegamenti come mostrato nell'immagine sotto riportata.

Schizzo

Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.

Codice Arduino

/* Stepper Motor Control */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
   // set the speed at 60 rpm:
   myStepper.setSpeed(5);
   // initialize the serial port:
   Serial.begin(9600);
}

void loop() {
   // step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
   // step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

Codice da notare

Questo programma aziona un motore passo-passo unipolare o bipolare. Il motore è collegato ai pin digitali 8-11 di Arduino.

Risultato

Il motore farà un giro in una direzione, poi un giro nell'altra direzione.