Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
servo [2016/06/28 11:34] – created peltzer | servo [2023/07/03 10:16] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ==== Servo ==== | ||
+ | === Was ist das? === | ||
+ | |||
+ | Ein Servo besteht aus zwei Komponenten. Zum Einen aus einem [[DC-Motor]], | ||
+ | Bei den drei Anschlüssen des Servos handelt es sich um GND, eine Eingangsspannung (diese hängt vom Bedarf des Servos ab) und dem PWM-Signal. Über dieses Signal wird der SOLL-Winkel an den Servo gesendet. Durch den Vergleich von IST- und SOLL-Winkel wird eine etwaige Korrektur des Winkels per DC-Motorleistung ermöglicht. | ||
+ | PWM (Pulsweitenmodulation): | ||
+ | Es wird eine Periodenlänge beliebig festgelegt. Innerhalb dieser Periode liegt nur eine bestimmte Zeit lang Strom an, für den Rest der Periode liegt die Spannung bei 0V. Der Teil der Periode, in welchem Strom anliegt, wird prozentual angegeben und "Duty Cycle" genannt. | ||
+ | |||
+ | === Bild === | ||
+ | |||
+ | {{20151105_102523.jpg? | ||
+ | |||
+ | |||
+ | === Schaltplan === | ||
+ | |||
+ | {{servo-fritzing.jpg? | ||
+ | |||
+ | |||
+ | === CODE === | ||
+ | |||
+ | <file python Servo.py> | ||
+ | |||
+ | import RPi.GPIO as GPIO | ||
+ | import time | ||
+ | import os | ||
+ | |||
+ | GPIO.setwarnings (False) # | ||
+ | GPIO.setmode(GPIO.BOARD) # | ||
+ | GPIO.setup(11, | ||
+ | |||
+ | print "L = Nach links drehen" | ||
+ | print "R = Nach rechts drehen" | ||
+ | print "M = Mittelposition" | ||
+ | print "Q = Verlassen" | ||
+ | |||
+ | |||
+ | While True: | ||
+ | Servo = GPIO.PWM(11, | ||
+ | | ||
+ | input = raw_input(" | ||
+ | |||
+ | | ||
+ | Servo.ChangeDutyCycle(2.5) # | ||
+ | time.sleep(1) # | ||
+ | Servo.stop() | ||
+ | | ||
+ | | ||
+ | Servo.ChangeDutyCycle(12.5) | ||
+ | time.sleep(1) | ||
+ | Servo.stop() | ||
+ | | ||
+ | elif(input==" | ||
+ | Servo.ChangeDutyCycle(5) | ||
+ | time.sleep(1) | ||
+ | Servo.stop() | ||
+ | |||
+ | | ||
+ | print(" | ||
+ | os._exit(1) | ||
+ | Servo.stop() | ||
+ | GPIO.cleanup() # | ||
+ | else: | ||
+ | print " | ||
+ | |||
+ | </ |