SCHEMA
CROQUIS
// ----------------------------------- // Codeur rotatif et Arduino. // géré par une routine d'interruption // ----------------------------------- #define PinA 2 // 1ere sortie du codeur #define PinB 3 // 2e sortie du codeur volatile boolean up; int valeur = 0; // routine déclanchée quand le signal A passe de haut a bas void routineInterruption () { if (digitalRead(PinA)) up = digitalRead(PinB); else up = !digitalRead(PinB); if (up) valeur++; else valeur--; Serial.println (valeur); // Monitoring } // --------------- // Initialisation // --------------- void setup () { // A et B en entrée pinMode(PinA,INPUT); pinMode(PinB,INPUT); // activation des pullups internes de l'Arduino, si on utilise pas de pullups externes. digitalWrite (PinA, HIGH); digitalWrite (PinB, HIGH); // mise en place de l'interruption sur front descendant attachInterrupt (0,routineInterruption,FALLING); // Monitoring sur port série Serial.begin (9600); // initialisation du moniteur série Serial.println("Veuillez tourner le bouton"); } // ----------------- // Boucle principale // ----------------- // La boucle principale est disponible ... (vive les interruptions) void loop () { }
Aucun commentaire:
Enregistrer un commentaire