Après plusieurs recherches j'ai assemblée 2 morceaux de code qui fonctionne individuellement clavier matricielle, encodeurs rotatif.
Le but est de maintenir appuyer un bouton parmi 16 câbler comme un clavier matricielle
pendant que celui-ci est appuyer j'agrémente ou désagrément une variable avec l'encodeur rotatif, je valide la valeur en appuyant sur l'encodeur rotatif
les deux rassembler le clavier matricielle fonctionne mais l'encodeur ne fonctionne plus
Pourriez-vous s’il vous plaît me dire ce qu’il ne va pas je suis débutant
Merci pour cette information effectivement quand j’ai déplacé les branchements de l’encodeur au pins 2 et 3 Celui-ci ré-marche j'agrémente ou désagrément de la variable (encoderPos) fonctionne mais ne fonctionne pas quand j' appuyer sur un bouton merci de votre aide
Bonjour,
je ne suis pas un expert dans la programmation Arduino.
A ta place j'utiliserais une interruption si appuis du bouton de l'encodeur pour la mise en mémoire de la variable.
Il y a une bibliothèque pour l'encodeur, je l'ai utilisé avec un compte-tour pour ma fraiseuse (calcul de la vitesse suivant la sélection de la matière et du diamètre de la fraise, sélection par rotation ++ ou -- de l'encodeur et validation par appuis du bouton).
Cdt.
Marcus.
j’appuie bien sur le bouton de l’encodeur Pour valider la valeur de l’encodeur
les boutons câbler comme un clavier matricielle servent à sélectionner une variable que je veux agrémente ou désagrément pendant qu'un boutons du clavier est appuyer
Ok si je comprend bien:
tu appuis sur une touche du clavier matriciel tout en restant appuyé tu incrémente ou décrémente le compteur sur l'encodeur après tu appuis sur le bouton de l'encodeur pour valider la valeur de la variable.
Jamais facile d'expliqué son montage.
Bonjour,
l'appuis sur le bouton doit déclencher une interruption. Je ne suis pas fan de attachInterrupt, a chacun son truc.
Ne pas oublier la déclarations des variables en volatile pour être prisent en compte.
Delay ne bloque pas une interruption, pour l'anti-rebont utile une boucle for.
Si je me trompe pas.
Cdt.
Marcus.
PS c'est un super forum, j'y ai appris beaucoup de choses et les membres son top.
Bonsoir
Sans que cela réponde complétement à ton problème
Lorsque qu'il s'agit d'utiliser de l'encodeur en quadrature sur de la base arduino "basique"
je regarde déjà vers la lib de PJRC
Pour faire court avec les codeurs A/B , il faut déjà savoir de quoi il s'agit (utilité)
entre : un codeur en entrée d'info faible débit ( faible nb pulses par tour , vitesse rotation faible ) , comme je suppose le tiens ou un un codeur accouplé derrière un équipage mécanique ( resolution importante par tour d'encodeur/ vitesse de rotation élevée )
vu du code , pour restitution d'info la logique reste la même (traiter la quadrature)
basiquement , pour de l'encodeur "entrée manuelle" , il est tres souvent possible/ suffisant de travailler simplement en "polling"
La lib évoquée permet justement de choisir la meilleure méthode entre
Pour programmer cela « proprement » vous pouvez prendre l’approche d’une machine à état qui détecte quand un événement clavier ou encodeur arrive et décide quoi faire en fonction de cela.