Tilt Ball-Utiliser
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'. |
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.
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.