Bonjour,
tu as une solution très simple pour doubler la résolution : pour l'instant, tu ne regardes que les fronts montant de ton signal : tu peux aussi lire les fronts descendants :
il suffit de remplacer
attachInterrupt(digitalPinToInterrupt(ECLFT), interrupt1, RISING);
par
attachInterrupt(digitalPinToInterrupt(ECLFT), interrupt1, CHANGE);
A noter qu'avec le type de signal que tu as (ie un seul signal de sortie d'encodeur), tu n'as pas d'information de direction : tant que tu vas uniquement vers l'avant (ou virages assez peu serrés pour que deux roues continuent à tourner vers l'avant) tout vas bien. Mais si tu vas en arrière (ou que tu tournes quasi sur place avec une roue qui vas en arrière), tu ne le sauras pas (tu peux te baser sur la commande à priori pour déterminer le sens, mais ça t'oblige à un arrêt total avant changement de sens si tu ne veux pas d'erreurs dues à l'inertie).
@Oracid : Pour la résolution, si le but est uniquement de connaître ta vitesse ou de tourner de X degrés, 90 signaux/tour peut suffire. En revanche, si tu veux utiliser les encodeurs pour connaître ta position pendant une durée d'une/quelques minutes (sur un sol plat), alors il te faut un encodeur beaucoup plus précis, et une mécanique garantissant que l'encodeur ait un signal représentatif du vrai déplacement (ie la roue ne glisse pas, ne dérape pas, et ne quitte jamais le sol)
Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...
Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.