La Stepper Library est accompagnée d'un exemple intitulé "stepper_speedControl" qui accomplit à peu près cette tâche, sauf que le moteur tourne toujours dans la même direction (la vitesse est nulle à une position extrême du potentiomètre, et maximale à l'autre position extrême). Au départ, j'ai supposé que ma tâche consistait à apporter quelques modifications mineures à ce sketch pour obtenir le comportement souhaité.
Malheureusement, cette première approche n'a pas très bien fonctionné. L'exemple "stepper_speedControl" règle la vitesse au moyen de la routine "setSpeed" de la Stepper Library. Malheureusement, tel qu'indiqué dans l'entête de l'exemple, l'Arduino est lent à répondre aux commandes du potentiomètre lorsque setSpeed est réglé à une faible valeur. Le pire, c'est lorsque qu'on règle setSpeed à zéro: l'Arduino se met alors à attendre pendant un délai qui semble sans fin. Inutile de modifier la position du potentiomètre: l'Arduino ne la vérifiera même pas.
À la place, j'ai donc choisi de régler la vitesse de rotation sans utiliser setSpeed: le moteur tourne d'un step à la fois, et la position du potentiomètre contrôle la durée du délai qui s'écoule entre deux rotations successives. Le moteur se comporte exactement de la façon souhaitée.
Voici mon sketch:
Pour les branchements, du moteur au Arduino, vous suivez les instructions fournies ici pour un L293D ou ici pour un ULN2003. Il ne reste plus qu'à ajouter un potentiomètre à l'entrée A0.
Yves Pelletier (Twitter: @ElectroAmateur)
Pour les branchements, du moteur au Arduino, vous suivez les instructions fournies ici pour un L293D ou ici pour un ULN2003. Il ne reste plus qu'à ajouter un potentiomètre à l'entrée A0.
Yves Pelletier (Twitter: @ElectroAmateur)
Bonsoir et merci pour votre Tito.
RépondreSupprimerPeut on adaptée le code pour un arduino avec une carte shield adafruit.
Cordialement. Merci