Stap 3: Arduino
Afbeelding 1
Ik kreeg niet de koppen voor de Ardumotor toen ik het van Sparkfun kocht en ik zou hoogst adviseren u doen als het maakt het systeem een stuk makkelijker te debuggen. Wat ik deed was soldeer enkele rechte kop pinnen op het bord "ondersteboven" zodat het bestuur in de Arduino past.
Afbeelding 2
Ik gesoldeerd een drukknop om 5V zin wanneer het is depressief. Wanneer het is depressief, pin 2 krijgt een signaal en telt het aantal keren dat de knop is ingedrukt. Als er een zelfs pers, pin 12 brandt het groene deel van een rood groen blauwe LED. Als er een oneven nummer, pin 13 brandt het rode gedeelte van de LED.
Afbeelding 3
Ik had echt geen zin om te omsluiten de circuits in een doos te wijten aan luiheid en omdat ik niet één rondslingeren. Dus, ik gewoon vast de Arduino en de Ardumoto op een oude floppy disk sommige spacers. De voeding die ik gebruik wordt begroot op 12 VDC bij 1.9 ampère.
Code
De onderstaande code is wat ik gebruikt om te krijgen dit ding aan het werk.
Const int buttonPin = 2;
Const int ledPin1 = 13;
Const int ledPin2 = 12;
Const int motorPWM = 11;
Const int motorDirection = 10;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
VOID Setup {}
pinMode (buttonPin, INPUT);
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
pinMode (motorPWM, OUTPUT);
pinMode (motorDirection, OUTPUT);
}
void loop {}
buttonState = digitalRead(buttonPin);
digitalWrite (ledPin1, laag);
digitalWrite (ledPin2, laag);
digitalWrite (motorDirection, laag);
Als (buttonState! = lastButtonState) {}
Als (buttonState == HIGH) {}
buttonPushCounter ++;
}
lastButtonState = buttonState;
}
Als (buttonPushCounter % 2 == 0) {}
digitalWrite (ledPin1, laag);
digitalWrite (ledPin2, hoge);
Als (digitalRead(buttonPin) == HIGH) {}
digitalWrite (motorDirection, hoge);
}
}
else {}
Als (buttonPushCounter % 2! = 0) {}
digitalWrite (ledPin2, laag);
digitalWrite (ledPin1, hoge);
Als (digitalRead(buttonPin) == HIGH) {}
digitalWrite (motorDirection, hoge);
}
}
}
delay(50);
}