import pwmio from Adafruit_PCA9685 import PCA9685 from time import sleep def angle_to_pulse(angle): # Calculate pulse length as derivative of the angle. pulse = int(round(41 / 9 * angle / 2 + 100, 0)) return pulse # Define driver object pwm = PCA9685() # Set frequency pwm.set_pwm_freq(50) # Channel of the driver board (0-15) channel = 0 # Minimum and maximum pulse lengths. 100-510 translates to 0-180 degree. # The formula for angel to pulse length is: 41/9 * /2 +100. MUST BE ROUNDED en set to INT() min_pulse = 100 # Min pulse length = 0deg max_pulse = 510 # Max pulse length = 180deg # Example with parameter set_angle = 180 print("Angle:", set_angle, "> Pulse:", angle_to_pulse(set_angle)) pwm.set_pwm(channel, 0, angle_to_pulse(set_angle))