class Button {
int pinNum;
int prevState;
public:
Button(int pin) {
pinNum = pin;
prevState = LOW;
}
boolean isPressed() {
int currState = digitalRead(pinNum);
if(prevState == LOW && currState == HIGH) return true;
return false;
}
void loop() {
prevState = digitalRead(pinNum);
}
};
int PIN_BUTTON_LEFT = 8;
int PIN_BUTTON_RIGHT = 9;
int PIN_BUTTON_STOP = 10;
int PIN_MOTOR_L = 12;
int PIN_MOTOR_R = 13;
void setup() {
pinMode(PIN_BUTTON_LEFT, INPUT);
pinMode(PIN_BUTTON_RIGHT, INPUT);
pinMode(PIN_BUTTON_STOP, INPUT);
pinMode(PIN_MOTOR_L, OUTPUT);
pinMode(PIN_MOTOR_R, OUTPUT);
}
Button left(PIN_BUTTON_LEFT);
Button right(PIN_BUTTON_RIGHT);
Button stop(PIN_BUTTON_STOP);
int motorL = LOW, motorR = LOW;
void loop() {
if(left.isPressed()) {
motorL = LOW;
motorR = HIGH;
}
if(right.isPressed()) {
motorL = HIGH;
motorR = LOW;
}
if(stop.isPressed()) {
motorL = LOW;
motorR = LOW;
}
digitalWrite(PIN_MOTOR_L, motorL);
digitalWrite(PIN_MOTOR_R, motorR);
left.loop();
right.loop();
stop.loop();
delay(100);
}