Buenos días a tod@s.
Primero que nada decirles que es mi primer skech, por llamarlo de alguna manera.
El caso es que quiero hacer el siguiente proyecto en un arduino nano pero no me sale y eso que hasta a mí me parece sencillo (pero soy muy garrulo).
Al pulsar un botón, darle un delay “X” y después se acciona un Nema 17 que girará “X” vueltas hacia un sentido y se para. Vuelve a haber otro delay y se activa un módulo relé que a su vez activa una bomba de agua (aquí, no sé si se puede activar directamente la bomba de agua desde el arduino, o tiene que pasar por el relé) se para el relé y por consiguiente la bomba de agua y se repite el delay ”X” y luego el Nema 17 gira las mismas vueltas que antes pero en sentido opuesto.
Para este proyecto estoy usando el siguiente material y todo esto está alimentado con una batería de 12V
Un pulsador con su resistencia en modo Pull Down (pulsas y enciende). PIN 2
Un motor Nema 17 (200 pasos por vuelta) y un driver DRV8825 con la instalación sacada de esta pagina: Manejar un motor stepper con un driver DRV8825 y Arduino | Carlini's Blog . El voltaje que me da a mi según esa página es de 0.46V por fase . PIN 3 dirección y PIN 4 pasos.
Un módulo relé conectado a una bomba de agua. PIN 5.
Pues bien, después de montar todo provisionalmente, le cargo el skech de esta pagina, el que pone conexion dos pins http://diymakers.es/mover-motores-paso-paso-con-arduino/ Y mi primera sorpresa es que solo se mueve un cuarto de vuelta escaso.
En el skech que he hecho también me pasa lo mismo.
#include <Stepper.h> // incluimos la libreria motor paso a paso
int MyStepper[2] = {3, 4}; // [b]el numero 2 no se que quiere decir[/b]
Stepper stepper_MyStepper(200, 3, 4); // le decimos los pasos necesarios para una vuelta(200)
// y le adjudicamos los pines de direccion (3) y pasos (4)
void setup() {
stepper_MyStepper.setSpeed(80); // definimos la velocidad del motor en rpm (80).
pinMode(2, INPUT); // declaramos el pulsador en el pin 2 como entrada
pinMode(5, OUTPUT); // declaramos el rele en el pin 5 como salida
}
void loop() {
{
if (digitalRead(2)) // al accionar el pulsador lee el pin digital 2
{
delay(2000); // espera el tiempo que se le indique, en este caso 2 segundos
stepper_MyStepper.step(800); // gira el motor el numero de vueltas indicado
delay(2000); // vuelve a esperar el tiempo que se le indique, otros 2 segundos
digitalWrite(5, HIGH); // activa el rele que esta declarado en el pin 5
delay(2000); // vuelve a esperar el tiempo que se le indique, otros 2 segundos
digitalWrite(5, LOW); // desactiva el rele que esta declarado en el pin 5
delay(2000); // vuelve a esperar el tiempo que se le indique, otros 2 segundos
stepper_MyStepper.step(-800); // vuelve a girar el motor el numero de vueltas indicado pero en sentido contrario
}
}
}
El codigo esta generado con Ardubloky