16 lines
436 B
Python
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) |