meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
uebung:itt11:servo_ansteuern [2023/01/21 13:08] – angelegt juergenhaasuebung:itt11:servo_ansteuern [2024/01/02 16:45] (aktuell) juergenhaas
Zeile 3: Zeile 3:
 [[uebung:itt11:beispielcode_esp8266|zurück zur Übersicht]] [[uebung:itt11:beispielcode_esp8266|zurück zur Übersicht]]
  
 +Eine Grafik für die Anschlussbelegung eines Servos mit **Graupner-Stecker** findest du bei {{https://www.electronicsplanet.ch/Roboter/Servo/stecker/servostecker-belegung.php | electronicsplanet.ch}}.
  
 <code cpp Servo_mit_Serial.ino> <code cpp Servo_mit_Serial.ino>
 +/*
 + * Servo-Beispiel für ESP8266
 + * Servo:
 + * PWM | D8
 + * VCC | 5V
 + * GND | GND
 + * Belegung siehe auch https://www.electronicsplanet.ch/Roboter/Servo/stecker/graupner.jpg
 + 
 + * Durch die Eingabe eines Zahlenwertes von 0 bis 180 in die serielle Konsole 
 + * kann die Stellung des Servos vorgegeben werden.
 + */
 +#include <Servo.h>
  
 +Servo servo;
 +int oldpos = 0;
 +int newpos = 0;
 +
 +#define SERVO D8  // Servo an Pin D8
 +
 +
 +void setup() {
 +  servo.attach(SERVO,500,2400);
 +  Serial.begin(115200);
 +  servo.write(newpos);
 +}
 +
 +void loop() {
 +  // Eingabe lesen
 +  String s = Serial.readString();
 +  if (s != "")
 +  {
 +    // Eingabe zur neuen Soll-Position erklären, wenn sie nicht leer und im zulässigen Bereich ist
 +    Serial.println(s);
 +    int n = s.toInt();
 +    if ( n >= 0 && n <= 180)
 +    {
 +      newpos = n;
 +    }
 +  }
 +
 +  // nur ansteuern, wenn sich die Position verändert hat
 +  if (newpos != oldpos)
 +  {
 +    oldpos = newpos;
 +    servo.write(newpos);
 +  }
 +}
 </code> </code>
  
  
 +[[uebung:itt11:beispielcode_esp8266|zurück zur Übersicht]]