Stap 3: afstandsbediening Toyota (Control)
Ik had echt harde tijd proberen om "schoon" de vuilnis die mijn RC controller gegenereerd (ik gebruik een 20 jaar oude zender en ontvanger, dat geeft als een cadeau voor mijn vriend voor zijn 10e verjaardag was, het is zo oud dat wanneer u schroef alle 4 bouten van de behuizing, de zender stopt met werken, als je 2 van hen verwijderen-het werkt weer...)
Ik gebruikte een Arduino Duemilanova, (geleend nadat ik geblazen mijne...)
De Arduino schets is hieronder:
RC ToyotaBeheersing echte gezinsauto door een afstandsbediening
Aug 2013
voor meer info Zie Http://www.KeerBot.com
int ch1 = 5; Hier is waar we houden onze kanaalwaarden
int ch2 = 6;
int out1 = 8;
int out2 = 9;
int out3 = 10;
int out4 = 11;
int out5 = 2;
int out6 = 3;
Boole gas_operated = false;
Boole brake_operated = false;
int ledpin = 13;
niet-ondertekende lange tijd;
VOID Setup {}
pinMode (ch1, INPUT); Input van Reciever kanaal 1
pinMode (ch2, INPUT); Input van Reciever kanaal 2
pinMode (out1, OUTPUT);
pinMode (out2, OUTPUT);
pinMode (out3, OUTPUT);
pinMode (out4, OUTPUT);
pinMode (out5, OUTPUT);
pinMode (out6, OUTPUT);
pinMode (ledpin, OUTPUT);
Serial.begin(9600); Giet een kom Series - (ha ha ha...)
}
void loop {}
tijd = millis();
CH1 = pulseIn (5, hoog, 25000); Lees de pulsbreedte van
CH2 = pulseIn (6, hoog, 25000); elk kanaal
Serial.Print(time);
Serial.Print(";");
Serial.Print(CH1);
Serial.Print(";");
Serial.Print(CH2);
Serial.Print(";");
Als (ch1 > 1700 & & ch1 < 2200) {}
Serial.Print("2500"); Reciever kanaal 1 signaal
digitalWrite (out1, hoge); Gas ON - gas zuiger FWD
gas_operated = true;
}
anders als (ch1 > 1000 & & ch1 < 1400) {}
Serial.Print("1000"); Reciever kanaal 1 DOWN signaal
digitalWrite (out2, hoge); Rem ON - rem zuiger FWD
brake_operated = true;
}
else {}
Serial.Print("1500"); Ontvanger 1 kanaal inactief signaal
digitalWrite (out1, laag); Geen Gas uit
digitalWrite (out2, laag); Geen rem af
Als (brake_operated == true) {}
digitalWrite (ledpin, hoge); Geen rem ON - rem zuiger BCK
digitalWrite (out5, hoge); Geen rem ON - rem zuiger BCK
delay(1500);
brake_operated = false;
digitalWrite (ledpin, laag); Geen rem af
digitalWrite (out5, laag); Geen rem af
//}
Als (gas_operated == true) {}
digitalWrite (ledpin, hoge); Geen Gas ON - gas zuiger BCK
digitalWrite (out6, hoge); Geen Gas ON - gas zuiger BCK
delay(1500);
gas_operated = false;
digitalWrite (ledpin, laag); Geen Gas uit
digitalWrite (out6, laag); Geen Gas uit
//}
}
Serial.Print(";");
Als (ch2 > 1700 & & ch2 < 2200) {}
Serial.println("2500"); Reciever kanaal 2 juiste signaal
digitalWrite (out3, hoge);
}
anders als (ch2 > 1000 & & ch2 < 1400) {}
Serial.println("1000"); Reciever kanaal 2 links signaal
digitalWrite (out4, hoge);
}
else {}
Serial.println("1500"); Reciever kanaal 2 inactief signaal
digitalWrite (out3, laag);
digitalWrite (out4, laag);
}
delay(50); Ik zet dit hier gewoon om het terminalvenster gelukkiger
}