micro_mpc_kmk/servo.py

16 lines
436 B
Python

from machine import Pin, PWM
class Servo:
def __init__(self, pin):
self.pwm = PWM(Pin(pin))
self.pwm.freq(50)
self.min_duty = 1638 # ~0.5 ms
self.max_duty = 8192 # ~2.5 ms
def angle(self, deg):
deg = max(0, min(180, deg))
duty = int(self.min_duty + (deg / 180) * (self.max_duty - self.min_duty))
self.pwm.duty_u16(duty)
def off(self):
self.pwm.duty_u16(0)