From t-o-f

Arduino: Exemple d'un potentiomètre qui contrôle l'intervalle de clignotement d'une DEL

Le site Arduino propose l'exemple suivant: http://arduino.cc/en/Tutorial/AnalogInput

Par contre, si on désire augmenter l'intervalle de clignotement pour qu'elle soit entre 0 et 3 secondes, on multiplie la valeur analogique mesurée par 3 (sensorValue = analogRead(sensorPin)*3;). Mais que remarquez-vous? Les appels à la fonction delay() bloquent l'Arduino. Pour résoudre ce problème, il faut utiliser des processus parallèles? tel que démontré ici:

/*
Description
=============
Un potentiometre controle l'intervalle de clignotement de la DEL de debogage


Circuit
=============
Broche analogique 0: potentiometre.
Broche numerique 13: DEL de debogage (rien à brancher).


Thomas Ouellet Frederics, 4 novembre 2012
*/

unsigned long timeStamp;
int ledState = LOW;


void setup() {
        // Il n'y a aucune configuration necessaire de la broche
        // pour une entree analogique.

        // Configuration de la broche 13 en tant que sortie numerique.
        pinMode(13,OUTPUT);
}

void loop() {
        // Lire la valeur du potentiometre et la multiplier par
        // 10 pour un intervalle entre 0 et 3 s.
        int interval = analogRead(0) * 3;

        if ( millis() - timeStamp >= interval ) {
                timeStamp = millis();
                if ( ledState == LOW ) {
                        ledState = HIGH;
                }
                else {
                        ledState = LOW;
                }
                digitalWrite(13,ledState);
        }

}

Récupéré sur http://wiki.t-o-f.info/Arduino/ExemplePotentiom%c3%a8treIntervalleDEL
Page mise à jour le 18 September 2013 à 10h23