Styra en stor linjära ställdon med Arduino (3 / 5 steg)
Steg 3: Kod 1 - manuell kontroll
Denna kod visar hur man gör grundläggande manuell kontroll av en stor linjära ställdon med hjälp av en Arduino och två knappar. Den första knappen utökar manöverdonet och andra dras in manöverdonet.
Du kan hämta kod skissen här: https://github.com/robotgeek/largeLinearManualButton/archive/master.zip
/*
Manuell linjära ställdon kontroll med hjälp av en Arduino och två tryckknappar
Denna demo visar hur man gör grundläggande manuell kontroll av en stor linjär
manöverdonet med en Arduino och två knappar. Den första knappen sträcker sig
manöverdonet och andra dras manöverdonet.
Krets:
* RobotGeek tryckknapp - Digital stift 2
* RobotGeek tryckknapp - Digital Pin 4
* RobotGeek Relay - Digital stift 7
* RobotGeek Relay - Digital stift 8
Produkter som används i den här demon:
-http://www.robotgeek.com/linear-actuators
-http://www.robotgeek.com/robotgeek-geekduino-sensor-kit
-http://www.robotgeek.com/robotGeek-pushbutton
-http://www.robotgeek.com/robotgeek-relay
*/
konstanter ändras inte. De används här att ange pin-koder:
CONST int button1Pin = 2; antalet pushbutton1 PIN-koden
CONST int button2Pin = 4; antalet pushbutton2 PIN-koden
CONST int relay1Pin = 7. antalet Realy1 PIN-koden
CONST int relay2Pin = 8; antalet Relay2 PIN-koden
variabler som ändras:
int button1State = 0; variabel för att läsa tryckknapp status
int button2State = 0; variabel för att läsa tryckknapp status
CONST int sensorPin = 0; Välj input PIN-koden för potentiometer
int sensorValue = 0; variabel för att lagra värdet kommer från sensorn
void setup() {
Starta seriell anslutning
Serial.BEGIN(9600);
initiera tryckknapp PIN-koden som indata:
pinMode (button1Pin, ingång);
pinMode (button2Pin, ingång);
initiera stafett pinnen som en utgång:
pinMode (relay1Pin, produktionen);
pinMode (relay2Pin, produktionen);
}
void loop() {
Läs värdet från sensorn:
sensorValue = analogRead(sensorPin);
skriva ut värdet av tryckknappen
Serial.println(sensorValue);
Läs statligt av tryckknapp värden:
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
Kontrollera om pushbutton1 trycks.
om det är, är buttonState hög:
vi också se till tha andra knappen inte trycks att undvika konflikt
om (button1State == hög & & button2State == låg) {
Aktivera relay1:
digitalWrite (relay1Pin, hög);
}
När vi släpper knappen, stänga av reläet
annat if (digitalRead(relay1Pin) == hög) {
stänga av relay1:
digitalWrite (relay1Pin, låg);
}
Upprepa samma procedur för andra tryckknappen
om (button1State == låg & & button2State == hög) {
Aktivera relay2:
digitalWrite (relay2Pin, hög);
}
När vi släpper knappen, stänga av reläet
annat if (digitalRead(relay2Pin) == hög) {
stänga av relay2:
digitalWrite (relay2Pin, låg);
}
}