Bonjour, pour le besoin d'un menu ergonomique, j'ai récupérer un encodeur rotatif sur un vieux autoradio.
Le problème c'est qu'à travers les différentes librairies utilisé, à première vue aucune n'à l'air de convenir !
Celle-ci avais l'air très simple et parfaitement adapté à ce que je cherche : Rotary Encoder Library - Libraries - Arduino Forum
Le code est le suivant :
#include "Encoder_Polling.h"
const int encoderPin_A = 2;
const int encoderPin_B = 3;
int counter = 0;
void setup()
{
Serial.begin(9600);
encoder_begin(encoderPin_A, encoderPin_B); // Start the decoder
}
void loop()
{
int dir = encoder_data(); // Check for rotation
if(dir == 1) // If its forward...
{
counter++; // Increment the counter
Serial.println(counter);
}
else if(dir == -1) // If its backward...
{
counter--; // Decrement the counter
Serial.println(counter);
}
}
Seulement elle ne me retourne absolument aucunes valeurs...
J'ai donc essayer celle ci :Encoder Library, for Measuring Quadarature Encoded Position or Rotation Signals
Mais elle me compte les clics 2 par 2, ce qui est loin de m'arranger, de plus je ne la trouve pas aussi simple que la première !
Donc pour résumer pour mon menu :
Sens horaire = incrémentation de la valeur en cours
Sens anti-horaire = décrémentation de la valeur en cours
Click = validation de la valeur en cours
Une librairie très simple qui incrémente de 1 à chaque click de l'encodeur serais parfaite !
Avez vous une solution ?
Bizounours:
Bonjour, pour le besoin d'un menu ergonomique, j'ai récupérer un encodeur rotatif sur un vieux autoradio.
Le problème c'est qu'à travers les différentes librairies utilisé, à première vue aucune n'à l'air de convenir !
...
Une librairie très simple qui incrémente de 1 à chaque click de l'encodeur serais parfaite !
Avez vous une solution ?
bonsoir
au jour d'aujourd'hui sur arduino de base et en ce qui me concerne , la lib de PJRC est la plus versatile
Ce qu tu appelle click est surement un encliquetage mecanique, la PJRC detecte 4 etats, entre crans stables.
utilise une fonction modulo 4 en sortie , et cela fera "la rue Michel" 
En faite la première est bonne, enfin dans le texte, mais le problème c'est que je n'ai aucune interaction, rien dans le moniteur serie !
Sinon j'ai aussi essayé celle que tu propose, mais il me semble que c'est utilisé un marteau pour planter une aiguille ! ]
Une idée du pourquoi cela marche avec l'une mais pas l'autre ?
Bizounours:
En faite la première est bonne, enfin dans le texte, mais le problème c'est que je n'ai aucune interaction, rien dans le moniteur serie !
Sinon j'ai aussi essayé celle que tu propose, mais il me semble que c'est utilisé un marteau pour planter une aiguille ! ]
Une idée du pourquoi cela marche avec l'une mais pas l'autre ?
bonjour
la PJRC est une lib bien documentée, et avec des possibilités de choix (que de l'Interruption, un "peu"
d'interruption , pas d'interruptions = polling)
le code genéré est compact et pas gourmand.
je ne sais pas pourquoi ta lib ne fonctionne pas dans ton appli , a premiere vue elle fonctionne en polling
-simple suggestion = un probleme de pull (up ou down) en entrée ?
J'ai brancher l'encodeur comme suit :
Sans résistance.
Le truc c'est qu'il marche impec avec certaine librairie, mais que je n'arrive pas à le ré-utilisé pour mon problème 
Bizounours:
J'ai brancher l'encodeur comme suit :
Sans résistance.
Le truc c'est qu'il marche impec avec certaine librairie, mais que je n'arrive pas à le ré-utilisé pour mon problème 
bonjour
essaien de mettre des R de pull-up ou modifie Encoder_Polling.cpp avec ça
pinMode(encoder.pin_A, INPUT_PULLUP);
pinMode(encoder.pin_B, INPUT_PULLUP);
au lieu de
pinMode(encoder.pin_A, INPUT);
pinMode(encoder.pin_B, INPUT);
Ca fonctionne !!!!
T'est le meilleur, merci mille fois Artouste
