Différences entre versions de « Tilt Ball-Utiliser »
(Page créée avec « {{Tilt-Ball-NAV}} {{Traduction}} {{Tilt-Ball-TRAILER}} ») |
|||
Ligne 1 : | Ligne 1 : | ||
{{Tilt-Ball-NAV}} | {{Tilt-Ball-NAV}} | ||
− | {{ | + | {{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 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' |
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.
/* 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.