Files
ModulX_BaseRoulante/tests/logique_moteurDC.py
2025-12-03 01:04:28 +01:00

36 lines
816 B
Python

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
}