import time
from machine import Pin, PWM
# ── Servomoteur sur GP12 ─────────────────────────────────────────────────────
servo = PWM(Pin(10))
servo.freq(50) # 50 Hz standard pour les servos
def angle_vers_duty(angle):
"""Convertit un angle (0–180°) en duty cycle u16"""
min_us = 500 # 0.5 ms → 0°
max_us = 2500 # 2.5 ms → 180°
us = min_us + (max_us - min_us) * angle / 180
return int(us * 65535 / 20000)
print("=" * 40)
print(" BALAYAGE SERVO 0° → 180° → 0°")
print("=" * 40)
while True:
# ── Aller : 0° → 180° ───────────────────────
print("\n▶ Aller : 0° → 180°")
for angle in range(0, 181, 10):
servo.duty_u16(angle_vers_duty(angle))
print(f" → {angle:>3}° {'█' * (angle // 10)}")
time.sleep(0.4)
time.sleep(0.5)
# ── Retour : 180° → 0° ──────────────────────
print("\n◀ Retour : 180° → 0°")
for angle in range(180, -1, -10):
servo.duty_u16(angle_vers_duty(angle))
print(f" → {angle:>3}° {'█' * (angle // 10)}")
time.sleep(0.4)
time.sleep(0.5)