Motor paso a paso con 2 botones

Hola, soy nuevo en el foro.

Estoy tratando de armar una válvula motorizada. Pero tengo problemas con la programación.

El armado consta de una placa arduino, un driver L9110 y un paso a paso de una impresora epson.
Lo programo con 2 botones simulando un flotante. Pero después de buscar y copiar varias programaciones, no consigo que funcione. Esta hecho con la librería stepper.h

Que me pueden recomendar?. Gracias!!

Código:

const int abajo = 2;
const int arriba = 3;

Stepper motor(100,8,9,10,11);

int estado_flotante_abajo;
int estado_flotante_arriba;

void setup(){

motor.setSpeed(2);
pinMode(abajo, INPUT);
pinMode(arriba, INPUT);

digitalWrite(motor, LOW);

}

void loop(){

estado_flotante_abajo = digitalRead(abajo);
estado_flotante_arriba = digitalRead(arriba);

if(estado_flotante_abajo == HIGH){
motor.step(10);
delay(2000);
}
if(estado_flotante_arriba == HIGH){
motor.step(-10);
delay(2000);
}
}

Primero, corte/pegue su código en un bloque de código (edite su publicación, corte su código, haga clic en el botón "</>", pegue su código, para que sea más fácil para todos leer su código. Así:

#include<Stepper.h> //   agregó este archivo

const int abajo = 2;
const int arriba = 3;

Stepper motor(100, 8, 9, 10, 11);

int estado_flotante_abajo;
int estado_flotante_arriba;

void setup() {

  motor.setSpeed(2);
  pinMode(abajo, INPUT);
  pinMode(arriba, INPUT);

  digitalWrite(motor, LOW);

}

void loop() {

  estado_flotante_abajo = digitalRead(abajo);
  estado_flotante_arriba = digitalRead(arriba);

  if (estado_flotante_abajo == HIGH) {
    motor.step(10);
    delay(2000);
  }
  if (estado_flotante_arriba == HIGH) {
    motor.step(-10);
    delay(2000);
  }
}

Cuando intentas compilar tu código, primero ves:

error: 'motor' was not declared in this scope
     motor.step(-10);

Lo que te dice que falta un "#include" archivo... que es Stepper.h... para definir el motor.

Intente agregar #include<Stepper.h> en la parte superior de su código.

Esta línea no es consistente con la instancia de Stepper:

digitalWrite(motor, LOW);

Moderador:
Por favor, lee las Normas del foro y edita tu código usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Hola, ahí lo arregle. Disculpen.

Gracias por las respuestas.
Sacando la lineal digitalWrite(motor, LOW) me deja compilarlo.
Pero cuando uso un motor se bloquea y calienta el arduino.
Estoy probando con leds y andan solos. No me esta tomando los botones.
La libreria la cargue pero no la copie en lo que subi.
Es dificil encontrar un codigo con botones y la libreria stepper.h
Que me sugieren estudiar para entenderlo mejor?

Gracias!!

El motor no debe ser alimentado por el Arduino. Utilice únicamente una fuente de alimentación externa para alimentar el motor. Utilice el Arduino para el control.

¿Cuál es la salida de su IDE? ¿Algún error durante la compilación? ¿Alguna salida de Serial.print ()?

Uso el driver. Pero lo tuve que desconectar por que el regulador de tensión del Arduino levanto temperatura (mucha).
Igual no se si me falta algo o me sobra o hay errores.
El motor esta conectado directamente al driver. No se si tendré que regularlo. Debe estar consumiendo mucha corriente. Para esto uso 2 leds conectados a las salidas del driver.
Los led funcionan solos, no cuando presiono los botones. Prende uno y después el otro de manera intermitente.

Gracias!!

Agradecería si alguien me puede recomendar como estudiar el tema. Y puntualmente la librería que tengo que usar.

Gracias.

No se si lo resolviste pero esta línea

digitalWrite(motor, LOW);

no corresponde, pero porquè? Resulta que defines a motor como un objeto stepper.
Nada tiene que ver con un pin al que le quieres forzar un nivel bajo o LOW.
tal vez los pines abajo o arriba si los pensaste con la idea de que controlen algo son mas adecuados.

digitalWrite(abajo, LOW);
// o
digitalWrite(arriba, LOW);

estos no te darán error porque digitalWrite(pin, estado) donde pin es alguno de los pines disponibles en tu Arduino y estado será LOW o HIGH

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.