Tilt Ball-Utiliser

De MCHobby - Wiki
Révision datée du 25 août 2013 à 18:48 par Admin (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Tilt-Ball-USE-01.jpg

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Lire le senseur avec un microcontroleur

Notez que le schéma ci-dessous utilise une résistance PullUp de 10K mais que dans le code, nous avons utilisé la résistance PullUp intégrée au microcontrolleur (que l'on active en placant la broche en sortie et en HIGH, franchement confortable!).

Si vous disposez d'une résistance pull-up interne, vous pouvez laisser la résistance externe.

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

    /* Une meilleure détection anti-rebond (Better Debouncer)
    *
    * Ce circuit de déparasitage est plus robuste, et fonctionnera avec les senseur "Tilt"!
    *
    * Original: http://www.ladyada.net/learn/sensor/tilt.html
    * Traduction: par "MCHobby" vente de kit et composant.
    *    http://mchobby.be/wiki/index.php?title=Tilt_Ball         
    */
    int inPin = 2;       // Le numéro de la broche/pin d'entrée
    int outPin = 13;     // Le numéro de la broche/pin de sortie
    int LEDstate = HIGH; // Etat actuel de la broche de sortie (la LED)
    int reading;         // Contient la valeur lue sur la broche d'entrée
    int previous = LOW;  // Contient la précédente valeur lue sur la broche d'entrée
    // Les variables suivantes sont de type "long" parce que nous allons mesure le temps (en milisecondes).
    // Ce temps deviendra vite de grands nombres qui ne pourrons pas être stockés dans un simple entier (type "int").
    long time = 0;      // La dernière fois que la broche de sortie à changé d'état
    long debounce = 50; // Temps de déparasitage (debounce time), a augmenter si la sortie clignote.
    void setup()
    {
       pinMode(inPin, INPUT);
       digitalWrite(inPin, HIGH); // activer la résistance PullUp interne du microcontroleur
       pinMode(outPin, OUTPUT);
    }
    void loop()
    {
       int switchstate;
       reading = digitalRead(inPin);
       // Si le contact à changé, est-ce causé par un changement de 
       // position OU un parasite (bille qui trésaute)... 
       if (reading != previous) {
         // Remettre la minuterie/timer de déparasitage à 0
         time = millis();
       }
       // attendre que l'on ai dépassé le temps de déparasitage 
       if ((millis() - time) > debounce) {

         // peu importe la valeur de l'entrée (du tilt ball), elle y est depuis
         // assez longtemps. On peut donc compter sur sa fiabilité.
         switchstate = reading;
        
         // Maintenant, inverser l'état de la LED sur la pin 13
         if (switchstate == HIGH)
            LEDstate = LOW;
         else
            LEDstate = HIGH;
         }
         digitalWrite(outPin, LEDstate);

         // Mémoriser la dernière lecture 
         previous = reading;
    }

Source: Tilt Sensor. Created by LadyAda pour AdaFruit Industries

Traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.