Hur man styr alla R/C bil med ett flygplan sändare! (6 / 7 steg)
Steg 6: Programmera Arduino
Nedan är den kod som är självförklarande!
/ * Detta är koden för att kontrollera alla R/C bil med ett flygplan sändare skriven av Vishnu Johan Karpuram. Njut av!! */
int motor1Left = 5; / / definierar stift 5 som ansluten till motorn
int motor1Right = 6; / / definierar stift 6 som ansluten till motorn
int motor2Left = 7; / / definierar stift 7 som ansluten till motorn
int motor2Right = 8; / / definierar stift 8 som ansluten till motorn
int channel1 = 9; definierar de kanaler som är anslutna
int channel2 = 10; / / till stift 9 och 10 i arduino respektive
int Channel1; Senare brukade
int Channel2; lagra värden
Ogiltiga inställningar)
{
pinMode (motor1Left, produktionen); / / initialises motor stiften
pinMode (motor1Right, produktionen);
pinMode (motor2Left, produktionen);
pinMode (motor2Right, produktionen); / / som utgångar
pinMode (channel1, ingång); / / initialises kanalerna
pinMode (channel2, ingång); / / som insatsvaror
Serial.BEGIN (9600); Anger överföringshastigheten till 9600 bps
}
Ogiltig loop)
{
Channel1 = (pulseIn (channel1, hög)); Kontrollerar värdet på channel1
Serial.println (Channel1); Skriver ut kanaler värdet på serial monitorn
om (Channel1 > 1300 & & Channel1 < 1500) / * om dessa villkor är uppfyllda, gör du följande. Det är dessa värderingar som jag fick från min sändare, som du kan anpassa efter din sändare värden * /
{
digitalWrite (motor1Left, låg); Anger både den
digitalWrite (motor1Right, låg); / / motorer till låg
}
om (Channel1 < 1300) / / kontroller om Channel1 är mindre än 1300
{
digitalWrite (motor1Left, hög); / / varv vänster
digitalWrite (motor1Right, låg); motorn fram
}
om (Channel1 > 1500) / / kontrollerar om Channel1 är större än 1500
{
digitalWrite (motor1Left, låg); / / varv rätt
digitalWrite (motor1Right, hög); / / motor fram
}
Channel2 = (pulseIn (channel2, hög)); Kontrollerar värdet på channel1
Serial.println (Channel2); Skriver ut kanalerna värde värde på serial monitorn
om (Channel2 > 1300 & & Channel1 < 1500) / / om dessa villkor är uppfyllda, gör du följande
{
digitalWrite (motor2Left, låg); / / sätter både den
digitalWrite (motor2Right, låg); / / motorer till låg
}
om (Channel2 < 1300) / / kontroller om Channel2 är mindre än 1300
{
digitalWrite (motor2Left, låg); / / varv vänster
digitalWrite (motor2Right, hög); / / motor bakåt
}
om (Channel2 > 1500) / / kontrollerar om Channel2 är större än 1500
{
digitalWrite (motor2Left, hög); / / varv rätt
digitalWrite (motor2Right, låg); / / motor bakåt
}
/ * Observera - kontrollera värdena på de kanaler som du får i följetong monitor
och justera värdena i om uttalanden därför. I mitt fall när pinnen
var centrerad, mina värden var 1400 till 1470. När staven togs upp, var avläsningarna
ovanför låg 1470 och när det var sänkt, avläsningarna under 1300.
*/