Tout d'abord, oubliez pour l'instant la résistance de 100 Ω. Ce n'est pas nécessaire pour le fonctionnement du bouton, il est juste là comme protection au cas où vous commettriez une erreur de programmation.
- Si le bouton est enfoncé, P2 sera directement connecté à +5 V, ce qui sera considéré comme un niveau élevé, étant "1".
- Si le bouton est relâché, le +5 V ne compte plus, il n'y a que les 10 kΩ entre le port et la masse.
×
Maintenant, la résistance de 100 Ω. Si vous produisiez accidentellement la sortie de la broche et la réglez à un niveau bas, appuyez sur le bouton provoquera un court-circuit: le microcontrôleur définit 0 V sur la broche et l'interrupteur +5 V sur la même broche. Le microcontrôleur n'aime pas cela, et le CI peut être endommagé. Dans ces cas, la résistance de 100 Ω devrait limiter le courant à 50 mA. (Ce qui est encore un peu trop, une résistance de 1 kΩ serait mieux.)
Puisqu'il n'y aura pas de courant dans une broche d'entrée (à part la faible fuite), il n'y aura pratiquement pas de chute de tension à travers la résistance.
Le 10 kΩ est une valeur typique pour un pull-up ou pull-down. Une valeur inférieure vous donnera une chute de tension encore plus faible, mais 10 mV ou 1 mV ne fait pas beaucoup de différence. Mais il y a autre chose: si le bouton est enfoncé, il y a 5 V à travers la résistance, donc il y aura un courant de 5 V / 10 kΩ = 500 µA. C'est assez bas pour ne pas causer de problèmes, et vous ne maintiendrez pas le bouton enfoncé pendant longtemps de toute façon. Mais vous pouvez remplacer le bouton par un interrupteur, qui peut être fermé pendant longtemps. Ensuite, si vous aviez choisi un pull-down de 1 kΩ, vous auriez 5 mA à travers la résistance tant que l'interrupteur est fermé, et c'est un peu un gaspillage. 10 kΩ est une bonne valeur.
Notez que vous pouvez la retourner pour obtenir une résistance de rappel et passer à la masse lorsque vous appuyez sur le bouton.
Cela inversera votre logique: appuyer sur le bouton vous donnera un "0" au lieu d'un "1", mais le fonctionnement est le même: appuyer sur le bouton fera l'entrée 0 V, si vous relâchez le bouton, la résistance connectera le entrée au niveau +5 V (avec une chute de tension négligeable).
C'est ainsi que cela se fait habituellement, et les fabricants de microcontrôleurs en tiennent compte: la plupart des microcontrôleurs ont des résistances de rappel internes, que vous pouvez activer ou désactiver dans le logiciel. Si vous utilisez le pull-up interne, il vous suffit de connecter le bouton à la terre, c'est tout. (Certains microcontrôleurs ont également des menus déroulants configurables, mais ceux-ci sont beaucoup moins courants.)