Anti-Rebonds

Bonjour à tous,

J'ai un projet avec 4 boutons poussoirs ( j'ai acheté ceux-ci boutons poussoirs

Lors des premiers tests que j'ai effectué, les boutons étaient branchés en INPUT_PULLUP ( sans condensateur , d'ailleurs d'après vous 47pF est une valeur approprié pour ce genre de bouton ? )

Dans mon programme, je n'ai pas de problèmes de rebonds, même sans avoir mis de condensateur ou de solution soft.

J'ai 4 boutons, quand j'appuie sur l'un deux, une variable passe à 1-2-3-4 et la suite s’enchaîne.

Si j'ai bien compris les effets du rebonds du bouton, l'arduino peut parfois voir un rebond et l’interpréter comme un second appuie sur le bouton ? Mais le rebond peut-il aussi faire " croire " à l'arduino qu'il n'y a pas eu d'appui sur le bouton ou c'est impossible ?

Voici le bout de code mentionné plus haut

void choixBouton()//fonction pour choisir le bouton ( la couleur)
{
  if (!etatBoutonRouge)//si boutonRouge Appuyé
  {
    couleurChoisie=1;//couleurChoisie vaut 1 = rouge 
  }
  else if (!etatBoutonVert)//si boutonVert Appuyé
  {
    couleurChoisie=2;//couleurChoisie vaut 2 = Vert
  }

  else if (!etatBoutonJaune)//si boutonJaune appuyé
  {
    couleurChoisie=3;//couleurChoisie vaut 3 = Jaune
  }

  else if (!etatBoutonBleu)//si boutonBleu appuyé
  {
    couleurChoisie=4;//couleurChoisie vaut 4 = bleu
  }
}

Merci d'avance pour votre aide !

David

Bonjour,

Tu testes l'état des boutons, mais ce qu'il faut tester c'est le changement d'état, c'est à dire l'enfoncement du bouton. Pour cela il faut mémoriser l'état précédent du bouton et le comparer à l'état courant.

47pF pour un condensateur anti rebond c'est vraiment une valeur beaucoup trop faible. Il faut une valeur au moins mille fois supérieure. En général on utilise une valeur de l'ordre de 100 nF.

Bonjour,

Merci pour ta réponse,

Je ferai un petit programme pour tester ça cette après-midi ( avec / sans condensateur pour voir la différence ) !

Bonjour

Le "rebond" provient juste du contact des éléments conducteurs de courant entre eux, qui est rarement parfait. Avec pour conséquence, une tension qui peut brièvement être instable / parasitée.

Avec de boutons de qualité et neufs, le phénomène est certes limité, mais il faut aussi penser au vieillissement du matos.

Les rebonds parasites peuvent être éliminés soit avec un condo amortisseur qui va filtrer le bruit, soit avec un programme adapté (cf le lien dans ma signature).

Le rebond est un effet ressort sur les contacts, il est d'origine uniquement mécanique et ne peut se manifester qu'à la suite d'un appui sur le bouton qui va faire entrer les extrémités des lames en contact. L'amortissement faisant son effet les rebonds cessent assez vite. Mais c'est vrai tant qu'il y a des rebond, l'entrée du microcontrôleur les interprète comme un appui volontaire sur le bouton, comment pourrait-elle faire autrement ?

Pour un anti rebond matériel le couple qui va bien avec des composants passe partout que normalement nous avons tous au fond du tiroir : Résistance en série avec le contact : 10 kohms (à la place on peut aussi utiliser la pull-up de l'entrée du micro) Condensateur en parallèle sur le contact : 100 nF.

Bonjour à tous,

Merci pour vos conseils !

J'ai pu tester et pour l'instant mes boutons n'ont pas l'air d'avoir de rebonds, je vais quand même mettre un condensateur de 100nF

Bonne journée à tous :)

David