from machine import Pin, PWM
from time import sleep
#------------------------------------------------------
# Servo an GPIO 13
servo = PWM(Pin(13), freq=50)
#------------------------------------------------------
def map_value(x, in_min, in_max, out_min, out_max):
    r = (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
    
    if r < out_min:
        r = out_min
    elif r > out_max:
        r = out_max
        
    return r
    
#------------------------------------------------------
def writeServo(winkel):
    if winkel < 0:
        winkel = 0
    elif winkel > 180:
        winkel = 180
    T = 1.0 / 50.0 * 1000.0
    q = T / 1023.0
    
    ms = map_value(winkel, 0, 180, 0.6, 2.1)  
    pw = int(ms / q)
    
    servo.duty(pw)
    
    print('w =', winkel, ', ms =', ms, ', pw =', pw);
#------------------------------------------------------
while True:
    writeServo(0)
    sleep(1.5)
    
    writeServo(180)
    sleep(2.5)