Hallo Michael
Die einfachste Variante ist die ServoLibrary der der Steffen hier verlinkt hat
https://github.com/netlabtoolkit/VarSpeedServo
Ich habe sie selber nie benutzt. Die Anleitung ist dort auf der Seite, aber in Englisch.
Zip auf die Festplatte runterladen (oben rechts das grüne "clone or downlaod"
Dann Im Arduino, Sketch > Bibliothek einbinden > Zip Bibliothek hinzufügen > auswählen und Abflug.
An sich sollte dann oben nur statt:
Servo Servo_Kopf; //Wir vergeben Namen für die Servos
Servo Servo_Arm_links; //Wir vergeben Namen für die Servos
u.s.w.
Dann in
VarSpeedServo Servo_Kopf; //Wir vergeben Namen für die Servos
VarSpeedServo Servo_Arm_links; //Wir vergeben Namen für die Servos
u.s.w.
geändert werden, dann müsste es schon funzen.
in der Loop dann statt
Servo_Kopf.write(90); //Servo_Kopf fährt auf 90°
Servo_Arm_links.write(100); //Servo_Arm_links fährt auf 100°
us.w.
hinter der GRadzahl mit komma den Speed:
Servo_Kopf.write(90, 90); //Servo_Kopf fährt auf 90°
Servo_Arm_links.write(100, 120); //Servo_Arm_links fährt auf 100°
wenn ich das dort richtig verstanden habe
Zum Empfänger, nur an aus, oder verschiedene (mehrerererere Abläufe?)
Die einfachste Variante (das "pulsln" bitte nur für nicht zeitkritische Sachen verwenden)
Empfängerpin ist D2, 1500 ist der Wert in uS für die Mittelstellung des Senderkanals, der geht normal von 1100-1900uS
Dazu müssen wir das Programm "verschachteln" und es in verschiedenen Unterprogramme/Schleifen aufteilen.
Code:
void loop(){ // hier beginnt die Endlosschleife
// Wir fragen den Sender ab:
if ((pulseIn(2, HIGH, 40000))<1500) //Ist Schalter auf Pos 1 ?
{
//dann mache das was hier in dieser Schleife steht
}
else //ansonsten (Schalter ist nicht auf Pos 1)
{
//mache das was hier in dieser Schleife steht
}
} //void loop zuende und wieder zurück zum Anfang von void loop