#made by DIEGO ;-)
#----Import de Bibliothèques----------------------------------------------
from machine import Pin, PWM
from time import sleep_ms
#----Sorties LED----------------------------------------------
led_rouge = Pin(18, Pin.OUT)
led_vert = Pin(19, Pin.OUT)
#----Sortie Servomoteur----------------------------------------------
#Un FUTABA S3003 peut aller de 0 à 180°
#pwm_servo.duty_u16(1800) # rapport cyclique 1800/65535 = 0°
#pwm_servo.duty_u16(4800) # rapport cyclique 4800/65535 = 90°
#pwm_servo.duty_u16(7800) # rapport cyclique 7800/65535 = 180°
#il y a donc 6000 unités pour 180°, donc 3000 unités pour 90°, donc "coef = 3000/90"
#Pour 0°, on commence à 1800, donc "constante = 1800"
pwm_servo = PWM(Pin(27, mode=Pin.OUT))
pwm_servo.freq(50)
#----Entrées Boutons----------------------------------------------
button_rouge = Pin(13, Pin.IN, Pin.PULL_UP)
button_vert = Pin(12, Pin.IN, Pin.PULL_UP)
#----CREATION de fonctions----------------------------------------------
def position_servomoteur(angle):
constante = 1800
coef = 3000/90
pwm_servo.duty_u16(int(angle * coef + constante))
#-----Conditions initiales---------------------------------------------
#-#----LED éteintes---------------------------------------------
led_rouge.value(0)
led_vert.value(0)
#-#----Servomoteur---------------------------------------------
angle = 90
constante = 1800
coef = 3000/90
position_servomoteur(angle)
#----Début du programme----------------------------------------------
while True:
if button_rouge.value() == 0 and angle <180:
led_rouge.value(1)
angle += 1
position_servomoteur(angle) #mettre le servomoteur dans la position indiquée
print("servomoteur à angle", angle, "°") #écrire ce message sur l'ordinateur
sleep_ms(5) #temps d'arrêt
else:
led_rouge.value(0)
if button_vert.value() == 0 and angle >0:
led_vert.value(1)
angle -= 1
position_servomoteur(angle) #mettre le servomoteur dans la position indiquée
print("servomoteur à angle", angle, "°") #écrire ce message sur l'ordinateur
sleep_ms(5) #temps d'arrêt
else:
led_vert.value(0)