Différences entre versions de « Tilt Ball-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
 
| image      = [[File:StopHand.png|40px|alt=Stop]]
 
| image      = [[File:StopHand.png|40px|alt=Stop]]
 
| textstyle  = color: red; font-weight: bold; font-style: italic;
 
| textstyle  = color: red; font-weight: bold; font-style: italic;
| text      =  Tilt switches have a little ball inside, and it will bounce around a little inside the can. Don't be surprised if the connection is a little intermittant instead of 'constant'  
+
| text      =  Les senseur "Tilt" contiennent des petites billes à l'intérieur. Il est normal que ces billes "rebondissent/tressautent" dans le cylindre. ne soyez donc pas surpris si le contact est quelques-fois intermittent plutôt que 'constant'.
 
}} }}
 
}} }}
  
 
[[Fichier:Tilt-Ball-USE-01.jpg]]
 
[[Fichier:Tilt-Ball-USE-01.jpg]]
  
[[Fichier:Tilt-Ball-USE-02.jpg]]
+
{{ADFImage|Tilt-Ball-USE-02.jpg}}
  
== Lire le swith avec un microcontroleur ==
+
== Lire le senseur avec un microcontroleur ==
Note that the layout above shows a 10K pullup resistor but for the code I use the 'built-in' pullup resistor that you can turn on by setting an input pin to HIGH output (its quite neat!) If you use the internal pull-up you can skip the external one.
+
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!).
  
[[Fichier:Tilt-Ball-USE-03.jpg]]
+
Si vous disposez d'une résistance pull-up interne, vous pouvez laisser la résistance externe.
  
  <nowiki>    /* Better Debouncer
+
{{ADFImage|Tilt-Ball-USE-03.jpg}}
 +
 
 +
  <nowiki>    /* Une meilleure détection anti-rebond (Better Debouncer)
 
     *
 
     *
     * This debouncing circuit is more rugged, and will work with tilt switches!
+
     * Ce circuit de déparasitage est plus robuste, et fonctionnera avec les senseur "Tilt"!
 
     *
 
     *
     * http://www.ladyada.net/learn/sensor/tilt.html
+
     * 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; // the number of the input pin
+
     int inPin = 2;       // Le numéro de la broche/pin d'entrée
     int outPin = 13; // the number of the output pin
+
     int outPin = 13;     // Le numéro de la broche/pin de sortie
     int LEDstate = HIGH; // the current state of the output pin
+
     int LEDstate = HIGH; // Etat actuel de la broche de sortie (la LED)
     int reading; // the current reading from the input pin
+
     int reading;         // Contient la valeur lue sur la broche d'entrée
     int previous = LOW; // the previous reading from the input pin
+
     int previous = LOW; // Contient la précédente valeur lue sur la broche d'entrée
     // the follow variables are long's because the time, measured in miliseconds,
+
     // Les variables suivantes sont de type "long" parce que nous allons mesure le temps (en milisecondes).
     // will quickly become a bigger number than can be stored in an int.
+
     // Ce temps deviendra vite de grands nombres qui ne pourrons pas être stockés dans un simple entier (type "int").
     long time = 0; // the last time the output pin was toggled
+
     long time = 0;     // La dernière fois que la broche de sortie à changé d'état
     long debounce = 50; // the debounce time, increase if the output flickers
+
     long debounce = 50; // Temps de déparasitage (debounce time), a augmenter si la sortie clignote.
 
     void setup()
 
     void setup()
 
     {
 
     {
    pinMode(inPin, INPUT);
+
      pinMode(inPin, INPUT);
    digitalWrite(inPin, HIGH); // turn on the built in pull-up resistor
+
      digitalWrite(inPin, HIGH); // activer la résistance PullUp interne du microcontroleur
    pinMode(outPin, OUTPUT);
+
      pinMode(outPin, OUTPUT);
 
     }
 
     }
 
     void loop()
 
     void loop()
 
     {
 
     {
    int switchstate;
+
      int switchstate;
    reading = digitalRead(inPin);
+
      reading = digitalRead(inPin);
    // If the switch changed, due to bounce or pressing...
+
      // Si le contact à changé, est-ce causé par un changement de
    if (reading != previous) {
+
      // position OU un parasite (bille qui trésaute)...  
    // reset the debouncing timer
+
      if (reading != previous) {
    time = millis();
+
        // Remettre la minuterie/timer de déparasitage à 0
    }
+
        time = millis();
    if ((millis() - time) > debounce) {
+
      }
    // whatever the switch is at, its been there for a long time
+
      // attendre que l'on ai dépassé le temps de déparasitage
    // so lets settle on it!
+
      if ((millis() - time) > debounce) {
    switchstate = reading;
+
 
    // Now invert the output on the pin13 LED
+
        // peu importe la valeur de l'entrée (du tilt ball), elle y est depuis
    if (switchstate == HIGH)
+
        // assez longtemps. On peut donc compter sur sa fiabilité.
    LEDstate = LOW;
+
        switchstate = reading;
    else
+
       
    LEDstate = HIGH;
+
        // Maintenant, inverser l'état de la LED sur la pin 13
    }
+
        if (switchstate == HIGH)
    digitalWrite(outPin, LEDstate);
+
            LEDstate = LOW;
    // Save the last reading so we keep a running tally
+
        else
    previous = reading;
+
            LEDstate = HIGH;
 +
        }
 +
        digitalWrite(outPin, LEDstate);
 +
 
 +
        // Mémoriser la dernière lecture
 +
        previous = reading;
 
     }</nowiki>
 
     }</nowiki>
  
 
{{Tilt-Ball-TRAILER}}
 
{{Tilt-Ball-TRAILER}}

Version actuelle datée du 25 août 2013 à 18:48

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.