Buenas noches!
Necesito un poco de ayuda con este programa, soy nuevo en Arduino y estoy teniendo problemas con este codigo.
Este es el programa completo, estoy utilizando la libreria accelstepper.
La seccion setup corre una rutina de home (la cual funciona correctamente), el problema es la seccion de loop.
#include "AccelStepper.h"
AccelStepper stepper (1, 9 , 8);
#define home_switch 4
#define buttonState 7
long initial_homing = -1;
int x;
int sensorPushCounter = 0;
int sensorState = 0;
int lastsensorState = 0;
void setup() {
pinMode(buttonState, INPUT);
pinMode(home_switch, INPUT_PULLUP);
delay(150);
stepper.setCurrentPosition(0);
stepper.setMaxSpeed(1.0);
stepper.setAcceleration(1500.0);
initial_homing=1;
while (digitalRead(home_switch)) {
stepper.moveTo(initial_homing);
initial_homing++;
stepper.run();
delay(5);
}
stepper.setCurrentPosition(0);
stepper.setMaxSpeed(1.0);
stepper.setAcceleration(1500.0);
initial_homing=1;
while (!digitalRead(home_switch)) {
stepper.moveTo(initial_homing);
stepper.run();
initial_homing++;
delay(5);
}
stepper.setCurrentPosition(0);
x == 0;
stepper.setMaxSpeed(3000.0);
stepper.setAcceleration(45000.0);
stepper.setSpeed(2000);
}
void loop()
{
sensorState = digitalRead(buttonState);
if (sensorState != lastsensorState){
if (buttonState == HIGH){
sensorPushCounter++;
}
delay(50);
}
lastsensorState = sensorState;
if (sensorPushCounter % 9 == 0) {
stepper.runSpeed();
} else {
stepper.stop();
}
if (digitalRead(home_switch) == HIGH) {
stepper.stop();
sensorPushCounter = 0;
}
}
La seccion de loop debe contar cuantas veces se activa el sensor, al llegar al conteo definido debera correr el comando stepper.runSpeed().
Por ahora lo que pasa es que terminada la rutina de home, el stepper comienza a correr incluso antes de que active por primera vez el sensor.
Gracias de antemano!