Bonjour,
Alors la variable imot représente la mesure de la tension induite par le moteur (back-EMF motion feedback)
Mais qu'est-ce que c'est?
Pour faire tourner un moteur à courant continu, on a une bobine fixe dans laquelle on peut faire passer un courant et un rotor qui peut tourner et qui contient un aimant.
Si on fait passer un courant dans la bobine, ça génère un champ magnétique. Donc l'aimant du rotor va vouloir tourner pour s'aligner dans ce champ magnétique. En alternant le champ généré par la bobine on va pousser le rotor à toujours continuer de tourner. (c'est à ça que sert le pont H)
De même, si on fait tourner à la main le rotor dans un moteur au repos, la rotation de l'aimant va générer un courant dans la bobine, qu'on peut mesurer. ce courant donne l'indication de la vitesse.
Concrètement, dans le robot, si on veut faire tourner le moteur à la vitesse maximale, on applique la tension max aux bornes du pont H. Si on veut le fare tourner plus lentement, on va faire un PWM (pulse width modulation) c'est à dire que au lieu de changer la tension qu'on applique, on va toujours appliquer la tension max mais dans un certain pourcentage du temps. On va alterner tension max et tension nulle très souvent, le moteur continue de tourner avec l'inertie, et la proportion des deux donne la vitesse. Par exemple 100% du temps à tension max donne la vitesse max, 80% du temps à tension max et 20% à tension nulle donne ue vitesse encore rapide, 30% max et 70% nulle donne une vitesse lente…
On n'a plus qu'à profiter du moment ou on n'applique pas la tension et que le moteur tourne en roue libre avec son inertie, pour mesurer le courant induit décrit plus haut :)