Hace unos dias recibí el motor 28BYJ-48 y me viene con el driver ULN2003. Con un sketch hecho a pelo sin librería funciona perfectamente pero si utilizo la que viene con el IDE no. Se mueve el eje muy ligeramente y en un solo sentido, cuando el programa le está diciendo que gire una vuelta, espere un segundo y gire otra vuelta en sentido contrario.
Este es el sketch que utilizo:
DarylMike:
se mueve lento y aparte no hace lo que le dice el skecth...
Ese motor lleva una reductora interna de 1/64,por lo que los pasos no se corresponden con el giro final del motor,y tendrias que modificar la declaracion de miStepper:
Stepper miStepper(2048, 8, 9, 10, 11); // 32 pasos del motor * 64 de la reductora
Por eso mismo ,60 rpm es demasiado para ese motor ,para que el eje vaya a 60 rpm ,imagina como ira el motor....no recomiendan pasar de las 15 rpm como mucho.
Para dar una vuelta completa:
Al final he cambiado a la librería AccelStepper y el motor funciona sin problemas.
La he probado con este codigo:
#include <AccelStepper.h> #define HALFSTEP 8
// Motor pin definitions #define motorPin1 8 // IN1 on the ULN2003 driver 1 #define motorPin2 9 // IN2 on the ULN2003 driver 1 #define motorPin3 10 // IN3 on the ULN2003 driver 1 #define motorPin4 11 // IN4 on the ULN2003 driver 1
// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
void loop() {
//Change direction when the stepper reaches the target position
if (stepper1.distanceToGo() == 0) {
stepper1.moveTo(-stepper1.currentPosition());
}
stepper1.run();
}