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

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
(Page créée avec « {{Tilt-Ball-NAV}} {{Traduction}} {{Tilt-Ball-TRAILER}} »)
 
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      =  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'
 +
}} }}
 +
 
 +
[[Fichier:Tilt-Ball-USE-01.jpg]]
 +
 
 +
[[Fichier:Tilt-Ball-USE-02.jpg]]
 +
 
 +
== Lire le swith 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.
 +
 
 +
[[Fichier:Tilt-Ball-USE-03.jpg]]
 +
 
 +
<nowiki>    /* Better Debouncer
 +
    *
 +
    * This debouncing circuit is more rugged, and will work with tilt switches!
 +
    *
 +
    * http://www.ladyada.net/learn/sensor/tilt.html
 +
    */
 +
    int inPin = 2; // the number of the input pin
 +
    int outPin = 13; // the number of the output pin
 +
    int LEDstate = HIGH; // the current state of the output pin
 +
    int reading; // the current reading from the input pin
 +
    int previous = LOW; // the previous reading from the input pin
 +
    // the follow variables are long's because the time, measured in miliseconds,
 +
    // will quickly become a bigger number than can be stored in an int.
 +
    long time = 0; // the last time the output pin was toggled
 +
    long debounce = 50; // the debounce time, increase if the output flickers
 +
    void setup()
 +
    {
 +
    pinMode(inPin, INPUT);
 +
    digitalWrite(inPin, HIGH); // turn on the built in pull-up resistor
 +
    pinMode(outPin, OUTPUT);
 +
    }
 +
    void loop()
 +
    {
 +
    int switchstate;
 +
    reading = digitalRead(inPin);
 +
    // If the switch changed, due to bounce or pressing...
 +
    if (reading != previous) {
 +
    // reset the debouncing timer
 +
    time = millis();
 +
    }
 +
    if ((millis() - time) > debounce) {
 +
    // whatever the switch is at, its been there for a long time
 +
    // so lets settle on it!
 +
    switchstate = reading;
 +
    // Now invert the output on the pin13 LED
 +
    if (switchstate == HIGH)
 +
    LEDstate = LOW;
 +
    else
 +
    LEDstate = HIGH;
 +
    }
 +
    digitalWrite(outPin, LEDstate);
 +
    // Save the last reading so we keep a running tally
 +
    previous = reading;
 +
    }</nowiki>
  
 
{{Tilt-Ball-TRAILER}}
 
{{Tilt-Ball-TRAILER}}

Version du 25 janvier 2013 à 11:42

Tilt-Ball-USE-01.jpg

Tilt-Ball-USE-02.jpg

Lire le swith 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.

Tilt-Ball-USE-03.jpg

    /* Better Debouncer
    *
    * This debouncing circuit is more rugged, and will work with tilt switches!
    *
    * http://www.ladyada.net/learn/sensor/tilt.html
    */
    int inPin = 2; // the number of the input pin
    int outPin = 13; // the number of the output pin
    int LEDstate = HIGH; // the current state of the output pin
    int reading; // the current reading from the input pin
    int previous = LOW; // the previous reading from the input pin
    // the follow variables are long's because the time, measured in miliseconds,
    // will quickly become a bigger number than can be stored in an int.
    long time = 0; // the last time the output pin was toggled
    long debounce = 50; // the debounce time, increase if the output flickers
    void setup()
    {
    pinMode(inPin, INPUT);
    digitalWrite(inPin, HIGH); // turn on the built in pull-up resistor
    pinMode(outPin, OUTPUT);
    }
    void loop()
    {
    int switchstate;
    reading = digitalRead(inPin);
    // If the switch changed, due to bounce or pressing...
    if (reading != previous) {
    // reset the debouncing timer
    time = millis();
    }
    if ((millis() - time) > debounce) {
    // whatever the switch is at, its been there for a long time
    // so lets settle on it!
    switchstate = reading;
    // Now invert the output on the pin13 LED
    if (switchstate == HIGH)
    LEDstate = LOW;
    else
    LEDstate = HIGH;
    }
    digitalWrite(outPin, LEDstate);
    // Save the last reading so we keep a running tally
    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.