Page 92 - Microcontrolere - Indrumator de laborator
P. 92
myStepper.setSpeed(10);
myStepper.step(-stepsPerRevolution);
delay(1000);
}
Pentru funcționarea codului vom avea nevoie de o librărie arduino, numită
Arduino Stepper Library, care este inclusă în pachetul de instalare Arduino IDE.
Primul fragment de cod din cadrul buclei Loop face ca motorul să se rotească
foarte încet în sensul acelor de ceasornic, în timp ce al doilea îl face să se rotească
foarte repede în sens invers acelor de ceasornic.
De notat este că funcția step() este o funcție de blocare. Aceasta înseamnă că
Arduino va aștepta până când motorul se oprește din mers înainte de a trece la
următoarea linie din program. De exemplu, la un motor cu 100 de pași, dacă setăm
viteza la 1 RPM și apelăm step(100), această funcție va dura un minut pentru a se
termina.
Biblioteca Arduino Stepper este perfectă pentru aplicații simple, cu un singur
motor. Cu toate acestea, dacă dorim să controlăm mai multe motoare, avem nevoie de
o altă librărie.
Pentru exemplul următor vom instala și utiliza librăria AccelStepper, care
suportă accelerare și decelerare, comandă half-step și poate comanda mai multe
motoare deodată.
Pentru instalarea librăriei trebuie să deschidem mediul de dezvoltare Arduino
IDE și să urmăm calea Sketch>Include Library>Manage libraries...
În continuare găsiți codul corespunzător, care accelerează motorul pas cu pas
într-o direcție și apoi îl decelerează pentru a se opri. După o revoluție, motorul își
inversează direcția de rotație și se repetă procesul [11].
#include <AccelStepper.h>
#define MotorInterfaceType 4
AccelStepper myStepper(MotorInterfaceType, 8, 10, 9, 11);
void setup() {
myStepper.setMaxSpeed(1000.0);
myStepper.setAcceleration(50.0);
myStepper.setSpeed(200);
myStepper.moveTo(2038);
89