Je recherche une méthode de programmation afin de pouvoir montée et descendre une vitesse d'avancement d'un véhicule qui est géré par encoder.
Dans le fonctionnement, plus je tourne l'encoder dans un sens, plus j'augmente ma vitesse et pareil dans le sens inverse, plus je tourne en anti-horaire, plus je descends la vitesse.
J'ai repéré la routine de l'encodeur d'origine :
Montée de la vitesse :
signal 1 0V
signal 2 0V
|
signal 1 5V
signal 2 0V
|
signal 1 5V
signal 2 5V
|
signal 1 0V
signal 2 5V
Descente de la vitesse :
signal 1 0V
signal 2 0V
|
signal 1 0V
signal 2 5V
|
signal 1 5V
signal 2 5V
|
signal 1 5V
signal 2 0V
L'idée est de créer deux fonctions, une de descente et une de montée qui seront intégrées dans un if(switch_monte, HIGH) { fonction-monte }
si tu regardes bien, tu remarqueras qu'à chaque pas il n'y a qu'une seule sortie qui change.
la séquence complète fait 4 pas. il faut regarder comment fonctionne le système sur lequel tu veux remplacer l'encodeur pour voir si la vitesse change au bout des 4 pas ou seulement tout les 2 pas.
Dans les deux condition du Loop, lorsque j'active la led 13 dans le programme sans la fonction Descente_vitesse(); - Monter_vitesse(); j'ai bien un clignotement toute les une seconde de la led à l'appui de mes contacteurs poussoir.
Lorsque je rajoute mes deux fonctions dans les conditions, il ne se passe rien sur l'affichage de vitesse de mon véhicule.
Lorsque je supprime la partie led, ça ne marche pas non plus.
Comment faire évoluer mes fonctions Monter_vitesse(); et Descente_vitesse(); pour simuler cette encodeur et qu'elles deviennent fonctionnelles ?
Oui, j'ai des Pullup de 10Kohm sur mes deux poussoirs, je n'ai pas réussi à faire marcher mes poussoirs avec DigitalRead hier, je n'ai réussi qu'avec les ports analogiques.
Je n'ai pas de Pullup par contre sur mes sorties 2 et 3 de carte.
La borne 2 et 3 connectées à l'encodeur coté véhicule en S1 et S2 est relié directement au faisceau électrique du véhicule.
Le plus 5V et masse du faisceau d'encodeur véhicule ne sont pas connectées au circuit arduino car ces deux derniers sont générés par le véhicule.
Ne faudrait il pas que les deux signaux soient sur la même ligne de code afin d'avoir un état simultané et pas à la suite l'un de l'autre niveau horodatage ?
Qu'est ce qui cloche dans cette suite d'état pour quelle me face varier ma vitesse ?
Faudrait il des pullup pour forcer l'état vers le haut des ports ?