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

Committer:
stefan1691
Date:
Wed Mar 25 12:03:02 2015 +0000
Revision:
1:32f0eb92121b
Parent:
0:e6f25efb6af9
Child:
2:fbe80f505ced
ergaenzt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 1:32f0eb92121b 1 /** Servo am Digital Pin D9.
stefan1691 1:32f0eb92121b 2 Das orange Kabel (Signal) ist links.
marcel1691 0:e6f25efb6af9 3 */
marcel1691 0:e6f25efb6af9 4 #include "mbed.h"
marcel1691 0:e6f25efb6af9 5 #include "Servo.h"
marcel1691 0:e6f25efb6af9 6
stefan1691 1:32f0eb92121b 7 Servo servo( D9 );
marcel1691 0:e6f25efb6af9 8
marcel1691 0:e6f25efb6af9 9 int main()
marcel1691 0:e6f25efb6af9 10 {
marcel1691 0:e6f25efb6af9 11 while ( 1 )
marcel1691 0:e6f25efb6af9 12 {
marcel1691 0:e6f25efb6af9 13 // Servo langsam bewegen (immer in der Mitte Anfangen mit Tests, sonst besteht die Gefahr von Schäden)
marcel1691 0:e6f25efb6af9 14 for ( float p = 0.4f; p < 0.6f; p += 0.0001f )
marcel1691 0:e6f25efb6af9 15 {
marcel1691 0:e6f25efb6af9 16 servo = p;
marcel1691 0:e6f25efb6af9 17 wait(0.001);
marcel1691 0:e6f25efb6af9 18 }
marcel1691 0:e6f25efb6af9 19 wait( 1.0 );
marcel1691 0:e6f25efb6af9 20 // und die andere Seite
marcel1691 0:e6f25efb6af9 21 for ( float p = 0.6f; p >= 0.4f; p -= 0.0001f )
marcel1691 0:e6f25efb6af9 22 {
marcel1691 0:e6f25efb6af9 23 servo = p;
marcel1691 0:e6f25efb6af9 24 wait(0.001);
marcel1691 0:e6f25efb6af9 25 }
marcel1691 0:e6f25efb6af9 26 wait( 1.0 );
marcel1691 0:e6f25efb6af9 27 }
marcel1691 0:e6f25efb6af9 28 }
marcel1691 0:e6f25efb6af9 29