/*Achtung: +5Vdc vom L298N muss an den Servo gelegt werden (Stromaufnahme ist zu hoch, Spannungsversorgung ueber USB vom Arduino zu stark belastet).
Dieser Sketch stellt den Servo auf die Mittelstellung 0 Grad.
Danach wird nach links, rechts und zuueck auf 0 Grad geschwenkt.
Die "for"-Schleife sorgt dafuer, dass der Servo so lange aktiviert bleibt bis er seine Zielstellung erreicht hat.
Der Sketch und damit die Loop-Schleife wird beendet.
Pin D9 ist vor Beendigung auf LOW gesetzt, deshalb laesst sich der Servo per Hand verdrehen*/
void setup()
{
pinMode(9, OUTPUT); //Arduino Pin D9 als Ausgang (Signal zum Servo)
}
void loop()
{
for (int i=0; i<=100 ; i++) //Wird 100x wiederholt, damit hat der Servo 20ms x 100 = 2s Zeit zum Drehen
{
digitalWrite(9,HIGH);
delayMicroseconds(1150); //Bei Einstellung von 1,15ms stellt sich Servo auf 0 Grad(experimentell ermittelt)
digitalWrite(9,LOW);
delay(19); //Ergaenzung auf Zykluszeit etwa 20ms (delayMicroseconds funktioniert nur bis 16383 "integer")
}
for (int i=0; i<=100 ; i++)
{
digitalWrite(9,HIGH);
delayMicroseconds(1900); //Bei Einstellung von 1,9ms stellt sich Servo nach links
digitalWrite(9,LOW);
delay(19); //Ergaenzung auf Zykluszeit etwa 20ms
}
for (int i=0; i<=100 ; i++)
{
digitalWrite(9,HIGH);
delayMicroseconds(500); //Bei Einstellung von 0,6ms stellt sich Servo nach rechts
digitalWrite(9,LOW);
delay(20); //Ergaenzung auf Zykluszeit etwa 20ms
}
for (int i=0; i<=100 ; i++)
{
digitalWrite(9,HIGH);
delayMicroseconds(1150); //Bei Einstellung von 1,15ms stellt sich Servo auf 0 Grad(experimentell ermittelt)
digitalWrite(9,LOW);
delay(20); //Ergaenzung auf Zykluszeit etwa 20ms
}
for (;;) {} //Beende Sketch
}