Stap 3: Code
Hier is de code gelieve betreft de tijd die nodig voor dit was:
RC PulseIn Serial voorgelezen door: Nick Poole
uitgebreide door Jason Mclaughlin
2015
#include < Servo.h > / / voor servo in voorbeeld
Servo myservo; //servo entiteit
int pos = 0; positie-servo
int ch1; Hier is waar we houden onze kanaal waarden //servo 2
int ch2; motoren
int ch3; Servo
Const int channel_a_enable = 6;
Const int channel_a_input_1 = 4;
Const int channel_a_input_2 = 7;
Const int channel_b_enable = 5;
Const int channel_b_input_3 = 3;
Const int channel_b_input_4 = 2;
VOID Setup {}
pinMode (channel_a_enable, OUTPUT); Kanaal A inschakelen
pinMode (channel_a_input_1, OUTPUT); Kanaal A ingang 1
pinMode (channel_a_input_2, OUTPUT); Kanaal A ingang 2
pinMode (channel_b_enable, OUTPUT); Kanaal B inschakelen
pinMode (channel_b_input_3, OUTPUT); Kanaal B ingang 3
pinMode (channel_b_input_4, OUTPUT); Kanaal B ingang 4
myservo.attach(11);
pinMode (10, INPUT); Onze input pinnen als zodanig instellen
pinMode (9, INPUT);
pinMode (8, INPUT);
Serial.begin(9600); Giet een kom voor Serial
}
void loop {}
CH1 = pulseIn (10, hoog, 25000); Lees de pulsbreedte van
CH2 = pulseIn (9, hoog, 25000); elk kanaal
H3 = pulseIn (8, hoog, 25000);
Serial.Print ("kanaal 1:"); Afdrukken van de waarde van
Serial.println(CH1); elk kanaal
Serial.Print ("kanaal 2:");
Serial.println(CH2);
Serial.Print ("kanaal 3:");
Serial.println(CH3);
Als ((ch3 > = 1500) & & (ch3 < = 1600)) {/ / het midden positie voor controller
Serial.println("between");
POS = 90; //set servo wilt centreren
myservo.write(POS); ingesteld op pos die 90 is
}
anders als ((ch3 > = 1100) & & (ch3 < = 1490)) {}
Serial.println("right");
POS = 180;
myservo.write(POS); gaat van 180 graden tot 0 graden
wacht 15ms voor de servo te bereiken de positie
}
else {}
Serial.println("left");
(pos = 0); gaat van 0 graden tot 180 graden
in stappen van 1 graad
myservo.write(POS);
servo naar positie in de variabele 'pos' vertellen
}
Motor
Als ((ch1 > = 1000) & & (ch1 < = 1060)) {}
Serial.println ("Motors uit");
analogWrite (channel_a_enable, 125.5);
digitalWrite (channel_a_input_1, laag);
digitalWrite (channel_a_input_2, laag);
analogWrite (channel_b_enable, 125.5);
digitalWrite (channel_b_input_3, laag);
digitalWrite (channel_b_input_4, laag);
delay(50);
}
anders als ((ch1 > = 1060) & & (ch1 < = 1500)) {}
Serial.println ("Motors Medium");
analogWrite (channel_a_enable, 50);
digitalWrite (channel_a_input_1, hoge);
digitalWrite (channel_a_input_2, laag);
analogWrite (channel_b_enable, 50);
digitalWrite (channel_b_input_3, hoge);
digitalWrite (channel_b_input_4, laag);
delay(50);
}
else {}
Serial.println ("motoren hoog");
analogWrite (channel_a_enable, 255);
digitalWrite (channel_a_input_1, hoge);
digitalWrite (channel_a_input_2, laag);
analogWrite (channel_b_enable, 255);
digitalWrite (channel_b_input_3, hoge);
digitalWrite (channel_b_input_4, laag);
delay(50);
}
delay(100); Ik zet dit hier gewoon om de terminal
venster gelukkiger
}