SG90-Servo
Jump to navigation
Jump to search
see also https://tutorials-raspberrypi.de/raspberry-pi-servo-motor-steuerung/
Python Source Code
# Servo control
# see https://tutorials-raspberrypi.de/raspberry-pi-servo-motor-steuerung/
import RPi.GPIO as GPIO
import time
# set the GPIO pin to be used
servoPIN = 23
# set the mode
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
p = GPIO.PWM(servoPIN, 50) # set pulse width modulation (PWM to 50Hz)
# start the pulswidth with a 2.5 cycle
p.start(2.5) # Initialisierung
try:
while True:
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(12.5)
time.sleep(0.5)
p.ChangeDutyCycle(10)
time.sleep(0.5)
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
p.ChangeDutyCycle(5)
time.sleep(0.5)
p.ChangeDutyCycle(2.5)
time.sleep(0.5)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Angle control
# set servo position by angle (degree)
# calculate duty cycle from angle
def setservo(angle):
if angle < 0:
angle = 0
if angle > 180:
angle = 180
pwm = angle/18 + 2.5
servo.ChangeDutyCycle(pwm)