#define enA 9
#define in1 6
#define in2 7
const int TOGGLE_PIN = 3;
const int SWITCH_PIN = 4;
void setup() {
// put your setup code here, to run once:
pinMode(TOGGLE_PIN, INPUT_PULLUP);
pinMode(SWITCH_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(TOGGLE_PIN), startStop, FALLING);
Serial.begin(115200);
Serial.println("Start ...");
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
// Set initial rotation direction
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
}
void startStop()
{
while (digitalRead(TOGGLE_PIN) == LOW);
}
void CheckSwitchAfterDelay(int wTime){
delay(wTime);
while (digitalRead(SWITCH_PIN) == LOW);
}
void loop() {
Serial.println("State 1");
int speed = 0;
analogWrite(enA, speed);
CheckSwitchAfterDelay(1000);
Serial.println("State 2");
speed = 255;
analogWrite(enA, speed);
CheckSwitchAfterDelay(10000);
Serial.println("State 3");
speed = 0;
analogWrite(enA, speed);
CheckSwitchAfterDelay(1000);
Serial.println("State 4");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
speed = 255;
analogWrite(enA, speed);
CheckSwitchAfterDelay(10000);
Serial.println("State 5");
speed = 0;
analogWrite(enA, speed);
CheckSwitchAfterDelay(1000);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
}