Мне нужен двигатель для циклического движения вперед, а затем назад, когда пользователь нажимает один раз. проблема в том, что arduino будет работать в цикле после нажатия и не остановится.
Как я могу сделать так, чтобы он повторялся только один раз при каждом нажатии кнопки?
Я пытался выйти (0), stop_it и т. Д., Но они просто выходят из цикла, а не запускаются снова при повторном нажатии кнопки.
const int pwm_pin = 9;
const int dir_1a_pin = 8;
const int dir_2a_pin = 7;
int buttonPin = 2;
boolean on=false;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(pwm_pin, OUTPUT);
pinMode(dir_1a_pin, OUTPUT);
pinMode(dir_2a_pin, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH){
if (on==true){
on=false;
} else{
on=true;
}
}
if(on == true){
digitalWrite(dir_1a_pin, HIGH);
digitalWrite(dir_2a_pin, LOW);
analogWrite(pwm_pin, 255);
delay (8000);
digitalWrite(dir_1a_pin, LOW);
digitalWrite(dir_2a_pin, HIGH);
analogWrite(pwm_pin, 255);
delay (12000);
}
}