Motor Control
Motor Control
#define BUTTON_PIN 13
#define Motor_Pin_Number 2
//Variable Definition
byte MotorDirectionPin[Motor_Pin_Number] = {PIN_1,
PIN_2};
//Function Declaration
void initDirectionPins()
{
for (int i = 0; i < Motor_Pin_Number; i++) {
pinMode(MotorDirectionPin[i], OUTPUT);
}
}
//
void initDirectionPins();
pinMode(BUTTON_PIN, INPUT_PULLUP);
digitalWrite(MotorDirectionPin[DirectionIndex], HIGH);
}
//Loop
void loop(){
unsigned long timeNow = millis();
if (timeNow - lastTimeButtonStateChanged > debounceDuration) {
byte buttonState = digitalRead(BUTTON_PIN);
if (buttonState != lastButtonState) {
lastTimeButtonStateChanged = timeNow;
lastButtonState = buttonState;
if (buttonState == HIGH) { // button has been released
DirectionIndex++;
if (DirectionIndex >= Motor_Pin_Number) {
DirectionIndex = 0;
}
powerOnSelectedDirection(DirectionIndex);
}
}
}