Vídeo usando a biblioteca accelstepper
Exemplo de utilização, sem bibliotecas, que dá um bom torque. No exemplo o driver deve ser conectado aos pinos 2, 4 6 e 8 do Arduino (mas quaisquer 4 pinos servem):
OBS: Meu exemplo é uma simplificação do exemplo encontrado nesta página
//declare variables for the motor pins int motorPin1 = 2; // 28BYJ48 pino 1 int motorPin2 = 4; // 28BYJ48 pino 2 int motorPin3 = 6; // 28BYJ48 pino 3 int motorPin4 = 8; // 28BYJ48 pino 4 // Red - 28BYJ48 pin 5 (VCC) int motorSpeed = 0; //variable to set stepper speed //////////////////////////////////////////////////////// void setup() { //declare the motor pins as outputs pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); } ///////////////////////////////////////////////////////// void loop(){ motorSpeed = 1; //scale potValue to be useful for motor counterclockwise(); //go to the ccw rotation function } ///////////////////////////////////////////////////////// //set pins to ULN2003 high in sequence from 1 to 4 //delay "motorSpeed" between each pin setting (to determine speed) void counterclockwise (){ // 1 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 2 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 5 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 6 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay (motorSpeed); // 7 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed); // 8 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed); }
[…] Kit motor de passo 28BYJ-48 (motor + placa driver ULN2003); […]