Servomotor SG90: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
== Einleitung == | == Einleitung == | ||
Diese Micro Servo ist winzig und leicht mit hoher Ausgangsleistung. Der Servo kann | Diese Micro Servo ist winzig und leicht mit hoher Ausgangsleistung. Der Servo kann sich um ca. 180 ° drehen (180 ° in jede Richtung), funktioniert genau wie ein Standardservo ist dabei jedoch deutlich kleiner. Für die Ansteuerung mit dem Arduino ist eine Bibliothek vorhanden. | ||
kleiner. Das kleine günstige Micro Servo eignet sich hervorragend für viele Anwendungen. Falls du mehrere Servos betreiben willst, gibt es auch noch das Motor Shield oder ein Servo Driver mit 16 Kanälen. | kleiner. Das kleine günstige Micro Servo eignet sich hervorragend für viele Anwendungen. Falls du mehrere Servos betreiben willst, gibt es auch noch das Motor Shield oder ein Servo Driver mit 16 Kanälen. | ||
Zeile 86: | Zeile 86: | ||
Ports sind in diesem Fall für den Servobetrieb reserviert. | Ports sind in diesem Fall für den Servobetrieb reserviert. | ||
Die Grundschaltung (Abb. 4) steuert einen Servo an Port 9, indem ein Sollwert von der Software vorgegeben wird. | Die Grundschaltung (Abb. 4) steuert einen Servo an Port 9, indem ein Sollwert von der Software vorgegeben wird (siehe Video 2). | ||
Tipp: Die <code>Servo.h</code> liegt bei Ihnen lokal unter <code>c:\Users\NUTZER\Documents\Arduino\linraries\Servo\src\Servo.h</code>. | Tipp: Die <code>Servo.h</code> liegt bei Ihnen lokal unter <code>c:\Users\NUTZER\Documents\Arduino\linraries\Servo\src\Servo.h</code>. | ||
== Servo Bibliothek == | |||
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/Servo | |||
Die Ansteuerung eines Servomotors durch die Arduino-Servo-Bibliothek ist nicht auf PWM-fähige Pins beschränkt. Dies liegt daran, dass die Servo-Bibliothek die Servo-Ansteuerung softwareseitig implementiert, wodurch alle digitale Pins für die Kontrolle von Servomotoren verwendet werden können, auch wenn sie nicht über Hardware-PWM-Fähigkeiten verfügen. | |||
== Demo == | == Demo == | ||
Zeile 120: | Zeile 125: | ||
{{#ev:youtube|https://www.youtube.com/watch?v=mUmGx-94diw| 600 | | Video 1: SG90 Servomotor einfach erklärt |frame}} | {{#ev:youtube|https://www.youtube.com/watch?v=mUmGx-94diw| 600 | | Video 1: SG90 Servomotor einfach erklärt |frame}} | ||
<iframe key="panopto" path="/Panopto/Pages/Embed.aspx?id=e268228b-7439-4642-92a0-af5200c05eb8&autoplay=false&offerviewer=true&showtitle=true&showbrand=true&captions=false&interactivity=all" height="405" width="720" style="border: 1px solid #464646;" allowfullscreen allow="autoplay"></iframe> | |||
<br> | |||
Video 2: Einbindung des Micro Servos SG90 | |||
== Tutorial == | |||
*[https://docs.arduino.cc/learn/electronics/servo-motors/ arduino.cc: Servo Tutorial] | |||
== Literatur == | == Literatur == | ||
Zeile 132: | Zeile 141: | ||
== Weiterführende Links == | == Weiterführende Links == | ||
* [https://funduino.de/nr-12-servo-ansteuern Funduino: Servomotor TowerPro SG90] | * [https://funduino.de/nr-12-servo-ansteuern Funduino: Servomotor TowerPro SG90] | ||
* [https://www.arduino.cc/reference/en/libraries/servo/ Arduino.cc: Servo Bibliothek] | |||
Aktuelle Version vom 27. November 2024, 11:35 Uhr
Autoren: Prof. Dr.-Ing. Schneider
Einleitung
Diese Micro Servo ist winzig und leicht mit hoher Ausgangsleistung. Der Servo kann sich um ca. 180 ° drehen (180 ° in jede Richtung), funktioniert genau wie ein Standardservo ist dabei jedoch deutlich kleiner. Für die Ansteuerung mit dem Arduino ist eine Bibliothek vorhanden. kleiner. Das kleine günstige Micro Servo eignet sich hervorragend für viele Anwendungen. Falls du mehrere Servos betreiben willst, gibt es auch noch das Motor Shield oder ein Servo Driver mit 16 Kanälen.
Als Servo bezeichnet man eine elektrische Einheit aus einem Elektromotor und einer Ansteuer- oder Regelungselektronik. Servos für den Modellbau gehören zu den am meisten verbreiteten Varianten von Servos. Modellbauservos wandeln die vom Sender übermittelte elektrische Information in eine mechanische Bewegung um. Dabei werden Lenkung, Höhen- oder Seitenruder und andere bewegliche Teile des ferngesteuerten Modells aktiviert.
In einem Servo sind auf engstem Raum Steuerelektronik und ein Gleichspannungs-Elektromotor untergebracht. Eine integrierte Schaltung ermittelt die aktuelle Drehposition (Drehwinkel) des Motors, der sich nach links und nach rechts drehen muss. Diese Einheit zur Erfassung der Position wird meist mit einem Potentiometer, also einem verstellbaren Widerstand realisiert. Die im Servo integrierte Regeleinheit vergleicht das Eingangssignal des Servos (Sollwert) mit der aktuellen Position des Motors (Istwert) und regelt so den Motor auf die vorgegebene Position.
Modellbauservos werden hauptsächlich mittels PWM-Signal (Pulsweitenmodulation) angesteuert. Die Breite des Pulssignals (HIGH-Signal) entspricht dem Sollwert. Das PWM-Signal hat meist eine Frequenz von 50 Hz. Dies entspricht einer Periodendauer von 20 ms. Die Pulsweite des Sollwertes liegt dann im Bereich von 1 ms (linker Anschlag) und 2 ms (rechter Anschlag). Die Mittelposition liegt bei 1,5 ms. Die restliche Zeit der Periode bleibt das Signal auf LOW. Der Winkel zwischen linkem und rechtem Anschlag beträgt üblicherweise 180 Grad [basierend auf 1].
Der Servo wird mit 3 verschiedenen Armen und 3 Befestigungsschrauben (1x Befestigung Arm-Servo, 2x Befestigung Arm-Drehobjekt (spitz)) geliefert.
Achtung: Ein Servo darf nie von Hand gedreht werden, da so das Kunststoffgetriebe zerstört werden kann.
Technische Daten
Messbereich | 0 ° .. 180 ° |
PWM-Modulation | analog |
PWM-Pulszykluszeit | 20 ms |
PWM-Pulsweite | 500-2400 ms |
Versorgungsspannung | 4.0 V .. 7.2 V |
Versorgungsstrom | 20 mA |
Geschwingigkeit | 0,12 s/60 ° (@4,8 V, lastfrei) |
Drehmoment | 1,5 kg/cm (@4,8 V) |
Gewicht | 9 g |
Getriebe | Kunststtoff |
Arbeitstemperatur | 0 °C .. +55 °C |
Abmessungen | 22,2 mm x 11,8 mm x 31 mm |
Pinbelegung
Pin | Belegung | Farbe |
---|---|---|
1 | Ausgang (PWM) | Orange |
2 | Versorgungsspannung 5 V (VCC) | Rot |
3 | Masse (GND) | Braun |
Abb. 2 zeigt die Pin-Belegung und Abb. 3 eine mögliche Grundschaltung füt den Arduino.
Ansteuerung
Winkel | Position | Pulsweite | PWM | Befehl |
-90 ° | Linksanschlag | 1 ms | SERVO.write(0)
| |
0 ° | Mittelstellung | 1,5 ms | SERVO.write(90)
| |
+90 ° | Rechtsanschlag | 2 ms | SERVO.write(180)
|
Servos benötigen für die Ansteuerung nur rund 20 mA und können von einem PWM-Ausgang des Arduino direkt angesteuert werden.
Die Ansteuerung eines Servos mit dem Arduino erfordert ein Programm, das die nötigen Pulssignale erzeugt. Dies kann einerseits von Hand ausprogrammiert
werden oder man nutzt die Standardbibliothek Servo.h
. Beim Einsatz der SERVO-Bibliothek muss man sich keine Gedanken um die korrekten Impulsbreiten und Frequenzen machen.
http://www.arduino.cc/en/Reference/Servo
Die SERVO-Bibliothek unterstützt auf den meisten Boards den Einsatz von bis zu zwölf Servos. Beim Einsatz der SERVO-Bibliothek muss beachtet werden, dass die normale PWM-Funktionalität für die Pins 9 und 10 deaktiviert ist. Die beiden Ports sind in diesem Fall für den Servobetrieb reserviert.
Die Grundschaltung (Abb. 4) steuert einen Servo an Port 9, indem ein Sollwert von der Software vorgegeben wird (siehe Video 2).
Tipp: Die Servo.h
liegt bei Ihnen lokal unter c:\Users\NUTZER\Documents\Arduino\linraries\Servo\src\Servo.h
.
Servo Bibliothek
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/Servo
Die Ansteuerung eines Servomotors durch die Arduino-Servo-Bibliothek ist nicht auf PWM-fähige Pins beschränkt. Dies liegt daran, dass die Servo-Bibliothek die Servo-Ansteuerung softwareseitig implementiert, wodurch alle digitale Pins für die Kontrolle von Servomotoren verwendet werden können, auch wenn sie nicht über Hardware-PWM-Fähigkeiten verfügen.
Demo
Quelltext: DemoServoSG90.ino
include <Servo.h> // Die Servobibliothek wird aufgerufen. Sie wird benötigt, damit die Ansteuerung des Servos vereinfacht wird.
Servo SERVO_SG90; // Erstellt eines Servo-Objektes mit dem Namen „SERVO_SG90“
const int SERVO_PORT_s16 = 9; // PWM Port D9
const unsigned long DELAY_u32 = 3000; // in ms
void setup(){
/* Einmalige Initialisierung */
SERVO_SG90.attach(SERVO_PORT_s16); //Das Setup enthält die Information, dass das Servo an der Steuerleitung (gelb) mit Pin 8 verbunden wird. Hier ist natürlich auch ein anderer Pin möglich.
}
void loop(){
SERVO_SG90.write(0); // Position 1 ansteuern mit dem Winkel 0°
delay(DELAY_u32); // Das Programm stoppt für 3 Sekunden
SERVO_SG90.write(90); // Position 2 ansteuern mit dem Winkel 90°
delay(DELAY_u32); // Das Programm stoppt für 3 Sekunden
SERVO_SG90.write(180); // Position 3 ansteuern mit dem Winkel 180°
delay(DELAY_u32); // Das Programm stoppt für 3 Sekunden
}
Videos
Video 2: Einbindung des Micro Servos SG90
Tutorial
Literatur
- Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL
Datenblatt
Datenblatt: SG90 9 g Micro Servo
Weiterführende Links
→ zurück zum Hauptartikel: Informatikpraktikum 1: Arduino Praxiseinstieg
→ zurück zum Hauptartikel: HSHL-Mechatronik-Baukasten