Dans le cadre d'un condensateur, il faut le temps de décharge une fois le bouton appuyé pour que le front descendant soit visible sur mon arduino, c'est donc forcément plus lent - même si la décharge est rapide.
pourquoi c'est faux?
Fixons les conditions :
Rien d'original boutons entre la masse et une entrée du micro, résistance de tirage entre l'entrée du bouton et l'alim.
Au départ le système est au repos, la résistance impose le potentiel de l'alim sur l'entrée du micro et le condensateur est chargé.
Quand on appuis sur le bouton on décharge le condensateur quasi instantanément soit en étant court-circuité par les contacts du bouton (quelque milliohms) soit au travers d'une résistance de protection disons de 100 ohms si on est très, très, très prudent. Et 100 ohms c'est du paranoïaque.
Comme il est indiqué dans tous les bons livres d'électronique un paramètre essentiel dans la charge/décharge d'un circuit RC est la constante de temps appelée Tau.
Il existe une propriété remarquable : pour t = Tau le signal a atteint 63 % de sa valeur finale.
Pour t = 5 Tau la charge du condensateur atteint 99,3 % de la valeur finale, qui mathématiquement ne peut être atteinte qu'au bout d'un temps infini.
Cas 1 : Avec le court-circuit franc 100nF/ 10 milliohms la constante de temps Tau = 1ns
Cas 2 : Avec 100 nF et 100 ohms la constante de temps Tau = 10µs.
Appliquons à un micro avr dont le seuil de décision 0 ou 1 est situé vers Vcc/2 soit 2,5V, prenons 2,4V comme pire cas. 63% de 5 V font 3.15V.
Attention point délicat : comme on part d'un point de repos de 5V, pour atteindre 0V on superpose un échelon négatif d'amplitude **-**5V à la tension statique de +5 V.
Nous sommes dans le domaine de l'électronique impulsionnelle.
Donc pour t = TAU la tension vaut Vcc - 0,63*Vcc soit V = 1,85 V et l'avr a déjà basculé dès 2,4V.
Prendre le temps égal à la constante de temps est encore un pire cas supplémentaire.
Avec un court-circuit franc (ce qui au passage est fait dans quasiment toutes les cartes manufacturées que l'on peut trouver) on a une réponse en moins de 1 ns.
Avec la solution ceinture + bretelles + caleçon en zinc (100 ohms en série avec le condensateur) on a une réponse en 10µs soit pour une carte UNO une réponse en 160 périodes horloge.
Et bien sur avec une résistance de sécurité plus raisonnable de 10 ohms réponse en 16 périodes horloge.
Dans l'autre sens au moment du rebond quand les contacts s'ouvrent la résistance de charge est sans commune mesure plus élevée (entre 30k et 70k avec les pull-up internes du micro) donc le condensateur ne peut pas atteindre la valeur fatidique du seuil de décision des entrées du micro.
Combien faut-il de cycles horloge avec la solution logicielle ?
Combien prend rien qu'un seul tour de boucle while ou for ?
Restons cool 0, 16 ou 400 cycles ne changeront rien en comparaison du temps qu'il faut pour appuyer sur un bouton.