Salut,
J'ai besoin d'un coup de main car je bloque !
Les encodeurs rtatifs se revelent etre une vraie plaie mais j'aimerais quand meme les utiliser dans mon projets.
J'utilise des encodeurs ALPS EC12E...
Les seuls exemples qui fonctionennt utilises forcement un bout de code hexadecimal ou binaire, chose que je ne maitrise absolument pas et les traducteurs en ligne ne m'aident pas suffisament.
Voici donc un sketch qui fonctionne sous un arduino UNO:
Ce sketch est tiré d'ici:
http://www.instructables.com/id/Improved-Arduino-Rotary-Encoder-Reading/
J'ai testé ce code, cela fonctionne.
On voit qu'il fait appel aux GPIO PIND puis un mysterieux bout de code.
La ligne suivante est également un mysterieux code que je ne comprends malheureusement pas.
Maintenant je dois utiliser 3 encodeurs.
J'ai donc un arduino mega affin de pouvoir faire tourner tous mes attachinterrupt.
Donc la premiere difficulté, cest que la manipulation des ports est différente, CF ce tableau:
http://spreadsheets.google.com/pub?key=rtHw_R6eVL140KS9_G8GPkA&gid=0
J'ai donc modifié le code en ajoutant pas mal de variables mais toujours basé sur l'exemple ci dessus
A noter que les 6 pins compatibles avec l'interrupt sont le 2,3,18,19,20 & 21
Naivement, en me basant sur la spreadsheet google, j'ai remplacé D par E etc avant que ca colle a mes numeros de pin maisbien sur cela ne fonctionne pas car le bout de code hexadecimal et binaire ne doivent pas être adaptés.
J'aimerais donc si possible que l'on m'explique ces bouts de code que je ne comprends pas et éventuellement des pistes pour corrger l'erreur.
Ou alors avez vous une alternative ?
Je pense qu'on doit pouvoir s'en sortir avec un digitalread mais comme je ne comrends pas la condition dans le if avec le masque, je suis completement bloqué.
En esperant que la nuit me porte conseil...
merci à vous!