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

Files at this revision

API Documentation at this revision

Comitter:
stefan1691
Date:
Wed May 20 12:12:00 2015 +0000
Parent:
1:32f0eb92121b
Commit message:
Servo kalibrieren, damit er die vollen 180? verwendet.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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);