Modifications

Sauter à la navigation Sauter à la recherche
aucun résumé de modification
Ligne 3 : Ligne 3 :  
{{traduction}}
 
{{traduction}}
   −
{{bloc-etroit|text=A pin used as input from a switch or other mechanical device can have a lot of noise on it, rapidly changing from low to high when the switch is first pressed or released. This noise can be eliminated using a capacitor (a debouncing circuit). It can also be eliminated using a simple function that makes sure the value on the pin is stable.
+
{{bloc-etroit|text=Une broche utilisée comme entrée pour lire un bouton poussoir ou un interrupteur mécanique peut recevoir beaucoup de parasites. En effet, durant un très court laps de temps, juste avant le contact franc, le signal peut rapidement passer de niveau haut à bas et inversement.
   −
The following function does just this. It gets the current value of the given pin, and then waits for the value to change. The new pin value must be stable for a continuous 20ms for it to register the change. You can adjust this time (to say 50ms) if you still have noise.
+
[[Fichier:switchbounce.jpg|400px]]
 +
 
 +
Ce "bruit" peut être éliminé en utilisant une capacité (un circuit de déparasitage... ''debouncing circuit'' en anglais).
 +
 
 +
Ce "bruit" peut également être éliminé en utilisant une simple fonction qui s'assure que la valeur de la broche est bien stable.
 +
 
 +
== Attendre que la valeur change ==
 +
C'est justement ce que fait la fonction suivante. Elle prend la valeur actuelle de la broche puis attend que la valeur change.  
 +
 
 +
La nouvelle valeur doit être stable pendant un temps continu de 20ms puis enregistre le modification d'état. Vous pouvez ajuster le temps (par exemple, à 50ms) si le bruit est important.
    
  <nowiki>import pyb
 
  <nowiki>import pyb
    
def wait_pin_change(pin):
 
def wait_pin_change(pin):
     # wait for pin to change value
+
     # attendre que la broche change de valeur
    # it needs to be stable for a continuous 20ms
   
     cur_value = pin.value()
 
     cur_value = pin.value()
 +
    # Elle doit être stable pendant un temps continu de 20ms
 
     active = 0
 
     active = 0
 
     while active < 20:
 
     while active < 20:
Ligne 21 : Ligne 30 :  
         pyb.delay(1)</nowiki>
 
         pyb.delay(1)</nowiki>
   −
Use it something like this:
+
Vous pouvez l'utiliser comme ceci:
 
}}
 
}}
  
30 894

modifications

Menu de navigation