DIY Laser slutaren (3 / 4 steg)
Steg 3: Arduino
Bild 1
Jag fick inte rubrikerna för Ardumotor när jag köpte den från Sparkfun och jag rekommenderar starkt att du gör det eftersom det gör felsökning systemet mycket lättare. Vad jag gjorde var att löda vissa raka huvudet pins till styrelsen "upp och ner" så att styrelsen passa i Arduino.
Bild 2
Jag lödde en tryckknapp för att känna av 5V när det är deprimerad. När det är deprimerad, stift 2 får en signal och räknar hur många gånger har tryckt på knappen. Om det är en jämn press, stift 12 lyser den gröna delen av en röd grön blå LED. Om det är ett udda tal, stift 13 tänds den röda delen av lampan.
Bild 3
Jag hade verkligen ingen lust att omsluta kretsarna i en låda på grund av lättja och eftersom jag inte hade en lögnaktig runt omkring. Så, jag bara fast den Arduino och Ardumoto på en gammal diskett med några distanser. Nätaggregatet jag använder är uppskattat på 12 VDC vid 1.9 ampere.
Koden
Den nedan koden är vad jag brukade få det här att fungera.
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, ingång);
pinMode (ledPin1, produktionen);
pinMode (ledPin2, produktionen);
pinMode (motorPWM, produktionen);
pinMode (motorDirection, produktionen);
}
void loop() {
buttonState = digitalRead(buttonPin);
digitalWrite (ledPin1, låg);
digitalWrite (ledPin2, låg);
digitalWrite (motorDirection, låg);
om (buttonState! = lastButtonState) {
om (buttonState == hög) {
buttonPushCounter ++;
}
lastButtonState = buttonState;
}
om (buttonPushCounter % 2 == 0) {
digitalWrite (ledPin1, låg);
digitalWrite (ledPin2, hög);
om (digitalRead(buttonPin) == hög) {
digitalWrite (motorDirection, hög);
}
}
annat {
om (buttonPushCounter % 2! = 0) {
digitalWrite (ledPin2, låg);
digitalWrite (ledPin1, hög);
om (digitalRead(buttonPin) == hög) {
digitalWrite (motorDirection, hög);
}
}
}
Delay(50);
}