El motor pas a pas 28BYJ-48 te 5 pins. D'aquests, quatre pins s'utilitzen per proporcionar una lògica de seqüència d'activació a les bobines i l'altre és un pin d'alimentació de 5 V.
Aquest motor no es pot alimentar directament des del ESP32, pel seu elevat requeriment de corrent. Cal sempre una font d'alimentació externa (jo he utilitzat una pila de 9V), i connectar a través d'un circuit controlador. Nosaltres utilitzarem el controlador ULN2003.
Atenció! El negatiu de la font d'alimentació ha d'anar connectat al GND de l'ESP32.
Test. Gira una volta sencera en un sentit i després en l'altre:
from stepmotor import mystepmotor # importa la llibreria
from time import sleep # per definir pauses en l'execució
motor = mystepmotor(26,27,14,12) # configuracio: nom i pins (IN1, IN2, IN3, IN4)
motor.moveSteps(1,2048,2000) # fem-lo girar un nombre especific de passos
# sentit de la rotacio: 1 horari - 0 antihorari
# nombre de passos: 1 volta == 2048 passos
# durada d'un pas en microsegons: minim 2000 us
sleep(2) # petita pausa abans d'invertir el sentit de rotació
motor.moveSteps(0,2048,2000)
motor.stop() # conve aturar el motor
Mètodes de la llibreria
motor.moveSteps (sentit, passos, us durada pas)
motor.moveAround (sentit, voltes, us durada pas) # han de ser voltes senceres
motor.moveAngle (sentit, angle, durada pas) # no me furula
motor.stop()
Referències
https://microcontrollerslab.com/28byj-48-stepper-motor-esp32-micropython/
https://www.luisllamas.es/motor-paso-paso-28byj-48-arduino-driver-uln2003/
https://github.com/larsks/micropython-stepper-motor
https://www.robotique.tech/robotics/control-a-stepper-motor-by-esp32/
https://controlautomaticoeducacion.com/micropython/motores-paso-a-paso-pap/
https://www.sketching-with-hardware.org/wiki/Stepper_Motor_and_ULN2003