Le didacticiel Arduino Digital Read Serial vous guide à travers le câblage d'un simple bouton. Mes questions sont centrées sur la résistance.
Pourquoi la résistance est-elle nécessaire?
Je pense que je comprends cela, mais corrigez-moi si je me trompe. Pour garantir que la broche d'entrée lit un signal bas et ne flotte pas, nous devons connecter la broche à la masse lorsque le bouton n'est pas enfoncé. Lorsque le bouton est enfoncé, nous aurons un signal 5V circulant à la fois sur la broche et sur la terre. La loi de tension de Kirchhoff stipule que la tension totale en boucle fermée doit être égale à zéro, nous devons donc faire face à ce 5V qui coule directement vers la terre. C'est pourquoi nous avons mis une résistance entre le bouton et la masse.
Comment la valeur de la résistance a-t-elle été choisie?
C'est ce sur quoi je ne suis pas clair. La loi d'Ohm stipule que ...
resistance = voltage / current
Il s'agit d'une alimentation 5V et la spécification Arduino Uno indique que la broche fournit 40 mA de courant continu. Donc..
resistance = 5V / 0.04A = 125 Ohms
Dans le didacticiel Digital Read Serial , pourquoi avons-nous une résistance de 10K Ohms? C'est trop exagéré, non? Ce qui mène à une autre question: pouvez-vous jamais mettre trop de résistance en place, si votre seul objectif est d'effacer la tension?
Merci d'avance pour tout commentaire!
la source
Les entrées Arduino ont une résistance très élevée. La fiche de données de l'Atmega328 indique 100 MOhm pour ADC, de telles valeurs élevées sont bonnes, mais ont aussi l'inconvénient de faire face aux effets parasites (résistance, inductance, capacité). Ces effets peuvent également être utilisés comme capteurs de capacité .
La résistance doit avoir une valeur arbitraire, qui est inférieure à la résistance d'entrée. 10k et plus sont bons pour désactiver la fuite d'entrée.
Cependant, vous pouvez également laisser de côté la résistance lorsque vous utilisez les résistances de rappel internes. Dans ce cas, vous traitez avec une logique négative:
Sur la broche 3, vous mesurerez
HIGH
et le bouton doit être connecté à la broche et à la terre. La résistance de rappel interne I / 0 a une valeur de 50k.la source
Vous avez déjà obtenu quelques bonnes réponses sur les raisons pour lesquelles une résistance de rappel est nécessaire.
Pour résumer, vous devez connecter l'entrée à la masse pour empêcher l'entrée de flotter de manière semi-aléatoire entre haut et bas. Vous utilisez une résistance de sorte que lorsque vous fermez le commutateur, vous ne créez pas de court-circuit entre l'alimentation + 5V et la masse.
Un autre point, cependant. Les entrées de l'Arduino incluent une résistance de pull-up interne contrôlée par logiciel en option . Si vous configurez d'abord la broche comme entrée, puis écrivez une valeur ÉLEVÉE sur ce port, cela active la résistance de rappel. Cela fait que la broche se lit comme ÉLEVÉE lorsque rien n'y est connecté.
Vous pouvez ensuite connecter votre interrupteur à la masse au lieu de + 5V. Vous devez ensuite modifier la logique de votre code pour traiter une valeur HIGH comme non enfoncée et une valeur LOW comme enfoncée. Cela vous permet de simplifier un peu votre câblage, car vous n'avez pas besoin d'une résistance externe.
la source