Modifications

Sauter à la navigation Sauter à la recherche
3 218 octets ajoutés ,  25 août 2013 à 18:48
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{Tilt-Ball-NAV}}
 
{{Tilt-Ball-NAV}}
   −
{{Traduction}}
+
{{bloc-etroit
 +
  |text= {{Ambox
 +
| type      = delete
 +
| image      = [[File:StopHand.png|40px|alt=Stop]]
 +
| textstyle  = color: red; font-weight: bold; font-style: italic;
 +
| 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]]
 +
 
 +
{{ADFImage|Tilt-Ball-USE-02.jpg}}
 +
 
 +
== 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.
 +
 
 +
{{ADFImage|Tilt-Ball-USE-03.jpg}}
 +
 
 +
<nowiki>    /* 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;
 +
    }</nowiki>
    
{{Tilt-Ball-TRAILER}}
 
{{Tilt-Ball-TRAILER}}
29 917

modifications

Menu de navigation