====== Les rebonds ====== Quand un contact mécanique est actionné des rebonds sont créés. Le passage d'un niveau haut à un niveau bas n'est jamais direct : {{:rebonds:rebonds.jpeg|:rebonds:rebonds.jpeg}} FIXME : Il y a aussi des rebonds lors de l'ouverture du bouton poussoir, donc du front montant. La durée des rebonds est d'environ 1ms.\\ Ils deviennent problématiques si le CI est déclenché sur front descendant.\\ Dans notre cas il sera déclenché 4 fois au lieu d'une seule comme on le souhaite ===== Solutions ===== ==== Circuit RC ==== Un circuit RC (Résistance/Condensateur) dont la constante de temps est grande devant la période des rebonds. ==== Bascule RS ==== ==== Traitement logiciel ==== Si on a par exemple un bouton poussoir connecté à une entrée d'interruption d'un microcontroleur et que l'on souhaite comptabiliser le nombre d'action* sur le bouton poussoir. On peut : * Configurer une interruption pour qu'elle se déclanche sur un changement d'état (front montant **et** front descendant) * Lors de l'interruption : * Désactiver les interruptions, pour ne pas déclancher l'interruption sur des rebonds. * Faire une tempo de 20ms * Incrémenter une variable : i=i+1, Si i == 1 on a juste détecté la fermeture du BP, si i == 2 on a détecté la fermeture et l'ouverture du BP, soit une action. * Si i == 2 : compteur=compteur+1 * Réactiver les interruptions *Action : Une pression + un relâchement