Hur man kontrollerar Arduino med RC mottagare på 10 minuter (3 / 4 steg)
Steg 3: kod
Du koden ändra denna kod för att styra motorer eller göra det att servon är mer exakt på där de rör sig, men detta är bara för ett exempel så ni kan komma igång, om du ändrar eller använda den här koden behaga nämna mig i det jag skrev ut de flesta av koden förutom att Nick Poole skrev ut pulsen delvis.
RC PulseIn följetong läsa av: Nick Poole
utökad av Jason Mclaughlin
2015
#include < Servo.h > / / för servo i exempel
Servo myservo; servo enheten
int pos = 0; position för servo
int ch1; Här är där vi håller våra kanalvärdena
int ch2;
int ch3;
void setup() {myservo.attach(9);
pinMode (5, ingång); Ställa in vår ingång pins som sådan
pinMode (6, ingång); pinMode (7, ingång);
Serial.BEGIN(9600); Häll en skål med följetong
}
void loop() {
CH1 = pulseIn (5, hög, 25000); Läs puls bredd
CH2 = pulseIn (6, hög, 25000); varje kanal
CH3 = pulseIn (7, hög, 25000);
Serial.Print ("kanal 1:"); Skriva ut värdet av
Serial.println(CH1); varje kanal
Serial.Print ("kanal 2:");
Serial.println(CH2);
Serial.Print ("kanal 3:");
Serial.println(CH3);
om ((ch3 > = 1500) & & (ch3 < = 1600)) {/ / den center position för controller
Serial.println("between");
POS = 90. //set servo till mitten
myservo.write(POS); inställd på pos som är 90
}
annat {
Serial.println ("inte mellan");
för (pos = 0; pos < 180; pos + = 1) / / går från 0 grader till 180 grader
{/ / i steg om 1 grad
myservo.write(POS); berätta servo gå för att placera i variabel "pos"
Delay(1); Waits 1ms för servo att nå ställning
}
för (pos = 180, pos > = 1; pos-= 1) / / går från 180 grader till 0 grader
{
myservo.write(POS); berätta servo gå för att placera i variabel "pos"
Delay(1); Waits 1ms för servo att nå ställning
}
}
Delay(100); Jag satte det här bara för att göra terminalen
fönstret lyckligare
}