def calc_signal_moteur(vitesse_pourcent, pwm_max=1023): # 1) On limite la valeur entre -100 et 100 if vitesse_pourcent > 100: vitesse_pourcent = 100 if vitesse_pourcent < -100: vitesse_pourcent = -100 # 2) Cas arrêt if vitesse_pourcent == 0: return { "in1": 0, "in2": 0, "pwm": 0 } # 3) Détermination du sens if vitesse_pourcent > 0: in1 = 1 # avant in2 = 0 amplitude = vitesse_pourcent else: in1 = 0 # arrière in2 = 1 amplitude = -vitesse_pourcent # valeur positive # 4) Conversion pourcentage -> PWM pwm = int(pwm_max * (amplitude / 100)) # 5) On renvoie les signaux à appliquer return { "in1": in1, "in2": in2, "pwm": pwm }