Hola necesitaria una mano si alguien es tan amable.
Tengo un motor paso a paso, con u arduino uno y un driver TB6600, tengo un codigo que con un pulsador avanza cierta cantidad de pasos y con otro pulsador vuelve cierta cantidad de pasos.
Lo que necesito es luego de avanzar cierta cantidad de paso pulsando muchas veces el pulsador con el otro pulsador vuelva al inicio de una sola vez, dejo el codigo debajo.
// defines pins numbers
const int dirPin = 3;
const int stepPin = 4;
const int enPin = 5;
const int switchOne = 8;
const int switchTwo = 9;
int p1buttonState = 0; // current state of the button
int lastp1buttonState = 0; // previous state of the button
int p2buttonState = 0; // current state of the button
int lastp2buttonState = 0; // previous state of the button
bool bPress = false;
bool isForward = false;
bool isBackward = false;
void setup() {
Serial.begin(9600);
pinMode( switchOne, INPUT_PULLUP);
pinMode( switchTwo, INPUT_PULLUP);
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
pinMode(enPin,OUTPUT);
digitalWrite(enPin,LOW);
}
void loop() {
isForward = false;
isBackward = false;
p1buttonState = digitalRead(switchOne);
p2buttonState = digitalRead(switchTwo);
if (p1ButtonPress()) {
digitalWrite(dirPin,HIGH);
delay(5);
}
if (p2ButtonPress()) {
digitalWrite(dirPin,LOW);
delay(5);
}
if( isForward || isBackward ){
for(int x = 0; x < 800; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
}
}