まず、今のところ100Ωの抵抗器を忘れてください。ボタンの操作には必要ありませんが、プログラミングエラーが発生した場合の保護としてのみ使用できます。
- ボタンが押されると、P2は+5 Vに直接接続されるため、「1」である高レベルとして表示されます。
- ボタンを離すと、+ 5 Vはカウントされなくなり、ポートとグランドの間に10kΩだけが入ります。
×
次に、100Ω抵抗器。誤ってピンを出力してローに設定した場合、ボタンを押すと短絡が発生します。マイクロコントローラーはピンに0 Vを設定し、同じピンに+5 Vのスイッチを設定します。マイクロコントローラはそれを好まないため、ICが破損する可能性があります。これらの場合、100Ωの抵抗で電流を50 mAに制限する必要があります。(それでも少し多すぎるので、1kΩの抵抗が良いでしょう。)
(低リークは別として)入力ピンに電流が流れないため、抵抗器での電圧降下はほとんどありません。
10kΩは、プルアップまたはプルダウンの一般的な値です。値を小さくすると、さらに電圧降下が小さくなりますが、10 mVまたは1 mVでもそれほど違いはありません。しかし、他にも何かがあります。ボタンを押すと、抵抗器に5 Vが流れるため、5 V / 10kΩ= 500 µAの電流が流れます。これは問題を引き起こさないほど低く、とにかく長い間ボタンを押したままにしないでしょう。ただし、ボタンをスイッチに置き換えることもできます。スイッチは長い間閉じている場合があります。次に、1kΩプルダウンを選択した場合、スイッチが閉じている限り、抵抗に5 mAが流れますが、これは少し無駄です。10kΩが適切な値です。
これを上下逆にしてプルアップ抵抗を取得し、ボタンが押されたときにグランドに切り替えることができることに注意してください。
これによりロジックが反転します。ボタンを押すと「1」ではなく「0」になりますが、動作は同じです。ボタンを押すと入力が0 Vになり、ボタンを離すと抵抗が接続されます+5 Vレベルへの入力(ごくわずかな電圧降下)。
これは通常行われている方法であり、マイクロコントローラーの製造元はこれを考慮に入れています。ほとんどのマイクロコントローラーには、ソフトウェアでアクティブまたは非アクティブにできる内部プルアップ抵抗があります。内部プルアップを使用する場合、ボタンをグランドに接続するだけで十分です。(一部のマイクロコントローラーには構成可能なプルダウンもありますが、これらはあまり一般的ではありません。)