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:
marcel1691
Date:
Mon Mar 23 17:10:05 2015 +0000
Revision:
0:e6f25efb6af9
Child:
1:32f0eb92121b
Servo Beispiel

Who changed what in which revision?

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