Ceci est une ancienne révision du document !
Installer la bibliothèque disponible sur le github. L'installation d'une nouvelle bibliothèque dans l'IDE Arduino est détaillée ici
Le fonctionnement correct du shield repose sur l'activation et la gestion des interruptions. Le fichier HowToSetup.h détaille dans les commentaires la configuration des interruptions.
Selon les broches utilisées il faudra:
non fonctionnel, les interruptions sont particulièrement sensibles au phénomène de rebond.
#include <SwitchEncoder.h> //stocke le sens de rotation volatile char dir = 'R'; volatile bool input_changed = false; //constructeur SwitchEncoder(CHA, CHB, SWI) SwitchEncoder s = SwitchEncoder(8, 12, 2); void setup() { // Autorisation des interruptions sur le port B car les broches D12 D13 sont liées au port B PCICR |= (1 << PCIE0); // Activation des interruptions sur les broches D12 et D13 PCMSK0 |= (1 << PCINT0) | (1 << PCINT4); // Activation générale des interruptions sei(); //Initialisation du port Série Serial.begin(9600); Serial.println("boot"); } void loop() { if(input_changed) { Serial.println(dir); Serial.println(s.count()); input_changed = !input_changed; } } /* Définition du gestionnaire d'interruption * PCINT0_vect pour le port B * PCINT2_vect pour le port D * * Relevé des données en provenance de l'encodeur via s.process() * dès que l'on détecte un changement sur l'une des broches concernées */ ISR(PCINT0_vect) { dir = s.process(); input_changed = !input_changed; }