Currently i've working code of controlling stepper motor with pushbuttons. So, basically i have to press two push button to run forward and backward. but the problem is , when i press 1st pushbutton it detects that pushbutton and run motor cw or ccw , That means it cannot detect the press of another pushbutton to make it counter clock wise.
i realize that the program isn't detecting second push button after pressing 1st one. Tried different options to make it work. but failed.
any suggestions?
heres my code for reference:-
#include <AccelStepper.h>
const int button1Pin = A2 ;
const int button2Pin = A1;
int button1State = 0;
int button2State = 0;
boolean flag1 = 0;
boolean flag2 = 0;
AccelStepper stepper = AccelStepper(1, 8, 9);
void setup()
{
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
Serial.begin(9600);
}
void loop()
{
int sensorReading = analogRead(A0);
int motorSpeed = map(sensorReading, 0, 1023, 500, 1000);
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
stepper.setMaxSpeed(2000);
stepper.setSpeed(motorSpeed);
if (button1State == HIGH)
{
stepper.setSpeed(motorSpeed);
Serial.print("ok");
stepper.runSpeed();
}
if (button2State == HIGH)
{
Serial.print("ok2");
stepper.setSpeed(-motorSpeed);
stepper.runSpeed();
}
}
Another problem is in this current code , it cannot detect the potentiometer input inside the if ( buttonstate ) {} loop.
it would be a great help pointing out my mistakes.
setup
function since you only have to do this once. – Swedgin Aug 12 '20 at 8:55