Servo Beispiel

Dependencies:   Servo mbed

https://developer.mbed.org/media/cache/components/components/200x200xservoproduct.jpg.200x200_q85.jpg.pagespeed.ic.J23xm2NZAi.webp

Der Servo (auch Rudermaschine) hat die Aufgabe, entsprechend dem Signal, dass er vom Empfänger erhält, die Ruder (oder andere Komponenten am Modell) zu stellen.

Servo lassen sich, in der Regel, von 0 - 180° bewegen. Der entsprechende Stellwinkel wird mittels eines Wert von 0.0 bis 1.0 angegeben.

Es gibt analoge und digitale Servo's. Der Unterschied liegt darin, dass digitale Servo erst anfangen den Stellwinkel zu wechseln, wenn ein sauberes Signal anliegt.

Servo haben einen Stellmoment bzw. die Stellkraft, z.B. 9 Gramm, welche nicht überschritten werden sollte.

Servo benötigt die Servo Library. Diese Steuert einen Servo mittels PWM Signal an.

Anwendungen

  • Steuerung von Roboterarmen
  • Modellflugzeuge
  • Schalten von Weichen auf der Modelleisenbahn

Anschlussbelegung (Servo - Shield)

Der Servo wird mit 5V betrieben und kann direkt auf einen der Servo Header (D9 oder D10) gesteckt werden. Das orange Kabel zeigt nach links

Revision:
2:fbe80f505ced
Parent:
1:32f0eb92121b
--- a/main.cpp	Wed Mar 25 12:03:02 2015 +0000
+++ b/main.cpp	Wed May 20 12:12:00 2015 +0000
@@ -8,17 +8,20 @@
 
 int main()
 {
+    // Servo kalibrieren, damit er die vollen 180° verwendet.
+    servo.calibrate ( 0.0009, 180.0);
+    
     while   ( 1 ) 
     {
         // Servo langsam bewegen (immer in der Mitte Anfangen mit Tests, sonst besteht die Gefahr von Schäden)
-        for ( float p = 0.4f; p < 0.6f; p += 0.0001f )
+        for ( float p = 0.2f; p <= 0.8f; p += 0.0001f )
         {
             servo = p;
             wait(0.001);
         }
         wait( 1.0 );  
         // und die andere Seite          
-        for ( float p = 0.6f; p >= 0.4f; p -= 0.0001f )
+        for ( float p = 0.8f; p >= 0.2f; p -= 0.0001f )
         {
             servo = p;
             wait(0.001);