Bonjour,
Je tente d'utiliser la bibliothèque Rotary.h qui gère les encodeurs rotatifs, en utilisant un code trouvé sur un site Internet. J'ai donc installé cette biblio qui est bien reconnue. mais le compilateur trouve des erreurs du genre " 'Class Rotary' has no member named 'process' " suite à une instruction "unsigned char result = r.process();" (r définissant la classe Rotary). Mais ce programme a 4 ans et j'ai peur que les paramètres aient changé depuis. Comment retrouver les différents paramètres et fonctions d'une bibliothèque donnée afin de réadapter le code ?
Merci d'avance.
Salut @botanicus
Tu peux aller sur GitHub, pour trouver la librairie qui t'intéresse (ici rotary.h) :
Ici, je l'ai traduite en français.
Sinon, apparemment ce n'est pas la bonne, il y a celle ci :
La quelle est-ce exactement ? Toi seul peut nous le dire.
Ensuite, tu regardes la page principale pour trouver les nouvelles fonctions (les librairies GitHub étant souvent mises à jour) :
Caractéristiques
- Gestion anti-rebond avec prise en charge des vitesses de rotation élevées
- Gère correctement les changements de direction à mi-parcours
- Vérifie les changements d'état valides pour un comptage plus robuste / une immunité au bruit
- Interruption basée ou interrogation en boucle ()
- Compte les pas complets (par défaut) ou les demi-pas
- Prend en charge l'utilisation avec des résistances pull-up (par défaut) et pull-down
Mise en place / Utilisation
- Téléchargez et décompressez dans Arduino\libraries\Rotary. Ainsi, par exemple, Rotary.h sera dans Arduino\libraries\Rotary\Rotary.h.
- Redémarrez l'IDE Arduino
- Fichier -> Exemples -> Rotary
Remarque : L'utilisation de la résistance est spécifiée via void begin(bool internalPullup=true, bool flipLogicForPulldown=false)
.
-
r.begin()
permet les pull-ups faibles internes de l'Arduino pour les broches du rotatif -
r.begin(false)
désactive les pull-ups faibles internes de l'Arduino pour les broches données et configure le rotatif pour une utilisation avec des pull-ups externes -
r.begin(false, true)
désactive les pull-ups internes et inverse la logique des broches pour une utilisation avec des pull-downs externes
Sinon, il existe de très bons tutos pour son utilisation :
https://arduino-france.site/encodeur-rotatif/
Amitiés
Pandaroux007
Merci beaucoup pour la réponse !
J'ai comparé mon code avec ceux des exemples cités, mais tout semble bon. Mon doute porte sur le nom de la bibliothèque Rotary.h choisie. En tapant "rotary" dans le gestionnaire de bibliothèques, il y en a environ 25 sur le sujet. Avec Rotary.h utilisé, je ne comprends pas pourquoi le compilateur ne reconnait pas le paramètre process qui est sensé lui appartenir. Je vais approfondir mes recherches pour essayer de comprendre....
Pour info, j'essaye de faire fonctionner le code suivant : [Arduino-Based Universal AC Motor Speed Controller - Hackster.io]
(Je n'ai pas encore assemblé le matériel, je veux juste vérifier le logiciel avant de commencer.)
@+
Bonsoir botanicus
Une très bonne bibliothèque, encoder.h.
Cordialement
jpbbricole
oui +1 sur l' encoder library de Paul Stoffregen
Salut @botanicus
Si tu es sur l'IDE 2.0, ou sur VScode platformIO, tu peux accéder aux bibliothèques depuis leurs noms, en faisant clique droit, puis attendre la définition. Le fichier .h peut en apprendre beaucoup sur les fonctions disponibles
Amitiés
Pandaroux007
Merci à tous pour vos suggestions et conseils !
Je vais commencer par installer l'IDE 2.0 et le tester.
Je vais expérimenter tout ça et vous tiendrai au courant.
@+
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.