sketch_27_servo_ansteuern_schwenken

sketch_27_servo_ansteuern_schwenken
   /*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<=70 ; i++)          //Wird 100x wiederholt, damit hat der Servo 20ms x 70 = 1,4s 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<=70 ; i++)          //Wird 100x wiederholt, damit hat der Servo 20ms x 70 = 1,4s Zeit zum Drehen
    {
    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<=70 ; i++)          //Wird 100x wiederholt, damit hat der Servo 20ms x 70 = 1,4s Zeit zum Drehen
    {
    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<=70 ; i++)         //Wird 100x wiederholt, damit hat der Servo 20ms x 70 = 1,4s 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(20);                          //Ergaenzung auf Zykluszeit etwa 20ms 
    }
  
    for (;;) {}                         //Beende Sketch
  }