Hallo Leute,
ich bin grad dabei das PCA9685 Servohat in Betrieb zu nehmen und hätte da mal eine Verständnisfrage.
Ich hab den unten aufgeführten Code im Internet gefunden und kann mir nicht so wirklich erklären was genau die "Helper function" macht. Kann mir das jemand von euch mit eigenen Worten mal kurz erklären? Ich möchte gern verstehen wie bzw was die "150" bei "Servo_min" aussagt bzw wie sie zustande kommt und genauso die "600" bei "Servo_max". Also das Programm an sich funktioniert und ich weiß auch das ich innerhalb des ranges von 150 und 600 Winkel zwischen 0 und 180° anfahren kann aber ich komm nicht hinter den Zusammenhang.
Vielen Dank schonmal
Python
# Simple demo of of the PCA9685 PWM servo/LED controller library.
# This will move channel 0 from min to max position repeatedly.
# Author: Tony DiCola
# License: Public Domain
from __future__ import division
import time
# Import the PCA9685 module.
import Adafruit_PCA9685
# Uncomment to enable debug output.
#import logging
#logging.basicConfig(level=logging.DEBUG)
# Initialise the PCA9685 using the default address (0x40).
pwm = Adafruit_PCA9685.PCA9685()
# Alternatively specify a different address and/or bus:
#pwm = Adafruit_PCA9685.PCA9685(address=0x41, busnum=2)
# Configure min and max servo pulse lengths
servo_min = 150 # Min pulse length out of 4096
servo_max = 600 # Max pulse length out of 4096
# Helper function to make setting a servo pulse width simpler.
def set_servo_pulse(channel, pulse):
pulse_length = 1000000 # 1,000,000 us per second
pulse_length //= 60 # 60 Hz
print('{0}us per period'.format(pulse_length))
pulse_length //= 4096 # 12 bits of resolution
print('{0}us per bit'.format(pulse_length))
pulse *= 1000
pulse //= pulse_length
pwm.set_pwm(channel, 0, pulse)
# Set frequency to 60hz, good for servos.
pwm.set_pwm_freq(60)
print('Moving servo on channel 0, press Ctrl-C to quit...')
while True:
# Move servo on channel O between extremes.
pwm.set_pwm(0, 0, servo_min)
time.sleep(1)
pwm.set_pwm(0, 0, servo_max)
time.sleep(1)
Display More