2 Motores de passo 28BYJ-48 com drive (chines) + lib accellstepper

Olá a todos, preciso de ajuda. Estou querendo usar a lib accellstepper que

controla mais de um motor de passo ao mesmo tempo, mas não consigo o código para

usar 2 motores rodando em sentidos opostos simultaneamente, acionados por botões

para sentidos horário e anti-horário. Para a lib "Stepper.h" e 2 motores já

consegui (abaixo). :roll_eyes:

Agradeço quem poder ajudar.

Fcaldeira

#include <Stepper.h>


//
//
// 2 Motor de passo 5v + 2 botões
//
//
#include <Stepper.h>  //Biblioteca já disponível na IDE do Arduino



 #define STEPS 150  // max 100
 
const int steps=100;  //Número de passos para o motor
 int buttonState1=0;
 int buttonState2=0;
 Stepper stepper1(STEPS, 0, 2, 1, 3); // Motor 1
 Stepper stepper2(STEPS, 5, 7, 4, 6); // Motor 2

void setup()
 {
 stepper1.setSpeed(200);    //Velocidade da rotação do motor (RPM)
 stepper2.setSpeed(200);    //Velocidade da rotação do motor (RPM)
 pinMode(8,INPUT);   //Botão 1
 pinMode(9,INPUT);   //Botão 2
 pinMode(12,OUTPUT);   //LED

 }

void loop()
 {
 buttonState1=digitalRead(8);
 buttonState2=digitalRead(9);
 if(buttonState1==LOW)   //Gira para um lado horário
 {
    digitalWrite(12,HIGH);
    stepper1.step(steps);
    stepper2.step(steps);
 }
 else if(buttonState2==LOW)  //Gira para o outro lado anti-horário
 {
    digitalWrite(12,HIGH);
    stepper1.step(-steps);
    stepper2.step(-steps);
 }
 else   //Fica parado
 {
    digitalWrite(12,LOW);
    stepper1.step(0);
    stepper2.step(0);

 }
 }

Cara, coloca o código da forma correta, assim, está muito ruim de ver.

Utilize dessa forma:

[code*]
código
[/code*] *tire o asterico

fcaldeira:
Olá a todos, preciso de ajuda. Estou querendo usar a lib accellstepper que controla mais de um motor de passo ao mesmo tempo,

E onde está essa biblioteca incluída no teu código?

Quando mandas um motor dar 150 passos o outro ficará parado até que o primeiro termine, pois acontece uma coisa de cada vez. Tenta dar um número menor de passos (steps) intercalando ente o motor 1 e o motor 2, para que pareça simultâneo :wink:

Da forma que esta o teu código, o loop se encarregará de manter os motores girando enquanto o botão estiver pressionado ^^

Tenta mudar steps para 5, e para sentidos diferentes informe valores diferentes (positivo e negativo):

if(buttonState1==LOW)   //Gira para um lado horário
 {
    digitalWrite(12,HIGH);
    stepper1.step(-steps);
    stepper2.step(steps);
 }
 else if(buttonState2==LOW)  //Gira para o outro lado anti-horário
 {
    digitalWrite(12,HIGH);
    stepper1.step(steps);
    stepper2.step(-steps);
 }

Coloquei um exemplo bem básico no post Problema com motor de passo. - #11 by Mortis - Português - Arduino Forum

Diz ai se ajudou em algo ^^