Remote control Toyota (mekaniker) (3 / 6 steg)
Steg 3: fjärrkontroll Toyota (kontroll)
Jag hade verkligen svårt att försöka "rena" sopor som min RC controller genereras (jag använder en 20 år gammal sändare och mottagare, som var ger som en present till min vän för sin 10: e födelsedag, det är så gammal att när du skruva alla 4 bultar av höljet, sändaren slutar fungera, om du tar bort 2 av dem - det fungerar igen...)
Jag använde en Arduino Duemilanova, (lånade efter jag blåst mig...)
Arduino skiss är nedan:
RC ToyotaKontrollerande riktig familjebil med en fjärrkontroll
Aug 2013
för mer info se Http://www.KeerBot.com
int ch1 = 5; Här är där vi håller våra kanalvärdena
int ch2 = 6;
int out1 = 8.
int UT2 = 9.
int UT3 = 10;
int out4 = 11;
int out5 = 2;
int out6 = 3;
booleska gas_operated = false;
booleska brake_operated = false;
int ledpin = 13.
osignerad länge;
void setup() {
pinMode (ch1, ingång); Ingång från mottagare kanal 1
pinMode (ch2, ingång); Ingång från mottagare kanal 2
pinMode (out1, produktionen);
pinMode (UT2, produktionen);
pinMode (UT3, produktionen);
pinMode (out4, produktionen);
pinMode (out5, produktionen);
pinMode (out6, produktionen);
pinMode (ledpin, produktionen);
Serial.BEGIN(9600); Häll en skål med serier - (ha ha ha...)
}
void loop() {
tid = millis();
CH1 = pulseIn (5, hög, 25000); Läs puls bredd
CH2 = pulseIn (6, hög, 25000); varje kanal
Serial.Print(Time);
Serial.Print(";");
Serial.Print(CH1);
Serial.Print(";");
Serial.Print(CH2);
Serial.Print(";");
om (ch1 > 1700 & & ch1 < 2200) {
Serial.Print("2500"); Mottagare kanal 1 signal
digitalWrite (out1, hög); Gas på - gaskolv FWD
gas_operated = sant;
}
annars om (ch1 > 1000 & & ch1 < 1400) {
Serial.Print("1000"); Mottagare kanal 1 ner signal
digitalWrite (UT2, hög); Broms på - broms kolven FWD
brake_operated = sant;
}
annat {
Serial.Print("1500"); Mottagare kanal 1 inaktiv signal
digitalWrite (out1, låg); Gas bort
digitalWrite (UT2, låg); Ingen broms Off
om (brake_operated == true) {
digitalWrite (ledpin, hög); Ingen broms på - broms kolven BCK
digitalWrite (out5, hög); Ingen broms på - broms kolven BCK
Delay(1500);
brake_operated = false;
digitalWrite (ledpin, låg); Ingen broms off
digitalWrite (out5, låg); Ingen broms off
//}
om (gas_operated == true) {
digitalWrite (ledpin, hög); Ingen Gas på - gaskolv BCK
digitalWrite (out6, hög); Ingen Gas på - gaskolv BCK
Delay(1500);
gas_operated = false;
digitalWrite (ledpin, låg); Gas bort
digitalWrite (out6, låg); Gas bort
//}
}
Serial.Print(";");
om (ch2 > 1700 & & ch2 < 2200) {
Serial.println("2500"); Mottagare kanal 2 rätt signal
digitalWrite (UT3, hög);
}
annars om (ch2 > 1000 & & ch2 < 1400) {
Serial.println("1000"); Mottagare kanal 2 vänster signal
digitalWrite (out4, hög);
}
annat {
Serial.println("1500"); Mottagare kanal 2 inaktiv signal
digitalWrite (UT3, låg);
digitalWrite (out4, låg);
}
Delay(50); Jag satte det här bara för att göra terminalfönstret lyckligare
}