接続注意
仮に
スイッチを押した時に端子に5Vが接続されるように配線したとします。
スイッチを押して5Vが接続されている間は問題ありませんが、
スイッチを押してないときは
端子に
0Vも5Vも接続されていない状態になり指で触れただけで反応する不安定な状態になります。
端子に
常に0Vが接続された状態にして、スイッチが押されたときに5Vが接続されるように
配線すると配線に大電流が流れて
配線が溶けるか
電源が壊れます。
常に
3本足のスイッチを使い、スイッチを一方に倒すと0V、もう一方に倒すと5Vに接続する事もできますが通常その様な配線は行いません。
ここでまたは
プルアップや
プルダウンといった配線を行います。
プルダウン
まずは分かりやすい
プルダウンから。
スイッチを押した時に5Vがつながるように配線したとして、
スイッチを押してないときに0Vに安定するように配線します。
スイッチを押してない時はマイコンの端子が抵抗を経由して電源のマイナス側につながれます。
以降、電源のマイナス側を
GND(グランド)と呼びます。
GNDは
基準の電圧で、基本的にはGNDより高い電圧(5V、3V等)を取り扱います。
マイコンの端子には
抵抗を経由したGNDしか接続されていないので、マイコン端子の電圧は0Vになります。
この状態なら指で触ったとしても指のアンテナよりプルダウン抵抗の方が影響力が強いので、0Vのまま安定します。ただし、
抵抗の値があまりにも大きい場合(数十メガΩ)は指の景況を受けてしまいます。
静かな部屋で
時計コチコチ動く音が気になるので、
小さな音で音楽をかけておく様な感じです。
次にスイッチを押した状態
マイコンの端子には
プルダウン抵抗を経由したGNDと
スイッチを経由した5Vの両方が接続されます。
スイッチの抵抗値に比べて
プルダウン抵抗の値が
圧倒的に大きいのでマイコン端子の電圧はほぼ5Vになります。
仮にプルダウン抵抗の値が10kΩ(10000Ω)、スイッチの品質が悪くて、抵抗値が10Ωだったとして、マイコン端子の電圧は
5×( (10000-10) /10000 )=4.995
となりほぼ5Vであることが分かります。
スイッチを押している間、
プルダウン抵抗に電流が流れるため
抵抗部分で電力を消費します。
流れる電流はオームの法則より
5/10000=0.0005 (0.5mA)
となります。電圧×電流で消費電力を計算して
5×0.0005=0.0025(
2.5mW)
となります。順方向電圧1.7VのLEDに20mAを流した場合の消費電力が
34mWなので
プルダウン抵抗で消費される電力が非常に小さいことが分かります。
このようにある程度の大きさの抵抗を端子とGNDの間に接続し、端子電圧を
小さな力で引っ張って下げる方法を
プルダウンと呼びます。
抵抗値は
10kΩ~数百kΩ程度をつけておけば良いでしょう。
プルアップ
続いて
プルダウンと対になる
プルアップ。
今度は
引っ張って上げます。
スイッチを押した時に0Vがつながるようにして、スイッチを押してないときに
5Vに安定するように配線します。
スイッチを押してない時はマイコンの端子が
抵抗を経由して電源のプラス側(5V)につながれます。
マイコンの端子には
抵抗を経由した5Vしか接続されていないので、マイコン端子の電圧は5Vになります。
この状態なら指で触ったとしても指のアンテナよりプルアップ抵抗の方が影響力が強いので、0Vのまま安定します。プルダウンと同様、抵抗の値があまりにも大きい場合は指の景況を受けてしまいます。
次にスイッチを押した状態
マイコンの端子には
プルアップ抵抗を経由した5Vと
スイッチを経由したGNDの両方が接続されます。スイッチの抵抗値に比べてプルアップ抵抗の値が圧倒的に大きいのでマイコン端子の電圧はほぼ0Vになります。プルダウン抵抗の値が10kΩ(10000Ω)、スイッチの抵抗値が10Ωだったとして、マイコン端子の電圧は5mV(0.005V)となります。
プルアップ抵抗による消費電力はプルダウンの場合と同様です。
スイッチが押されていない状態で常にマイコン端子に電圧が加わり
マイコン側でも電力を消費します。ただ、マイコンに流れ込む電流は
プルアップ・プルダウンで流れる電流より遥かに小さいので余程の事がない限り気にする必要は無いでしょう。
プルアップを行った場合、
スイッチが押されていない時5Vが入力されるのでマイコンでは
1と判定されます。
スイッチが押されると0Vが入力されるため
0と判定される特徴があります。
抵抗値はプルダウンと同じく
10kΩ~数百kΩ程度をつけておけば良いでしょう。
ホビー用途でデジタル信号を扱う場合、多少プルアップ・プルダウン抵抗の値がおかしくても動作に支障はありません。
プルアップとプルダウンの使い分け
プルダウンは比較的理解しやすいと思います。これに対して
プルアップは電流の流れ方を理解しにくく、
スイッチONで0、
スイッチOFFで1とさらにややこしくなります。
では、プルダウンとプルアップどちらを使えば良いかと言うと、状況により変わりますがマイコン系回路では
圧倒的にプルアップを使うことが多いのです。これは配線の取り回し等の影響です。
マイコンから少し離れた場所に
LED2個と
スイッチ2個を取り付けたい場合を考えてみます。
マイコンから5Vが出ている時にLEDを光らせます。
可能な限り配線数を減らそうと思うと、GND線を共通化することになります。
さらにスイッチの配線を追加します。まずは
プルダウン方式の場合。
操作盤の方に5Vの配線を引っ張っています。
配線数が信号数+GND+5Vとなるほか、
ショートさせると危険な
5Vと
GNDを一緒に引っ張っていかないといけないリスクがあります。
これに対して
プルアップ方式場合
操作盤に5Vの配線はありません。
したがって配線数が信号数+GNDとなります。
また、配電盤内で
5VとGNDがショートする危険はありません。
更に操作盤の配線が全て
信号線とGNDの間に何かを挟む形で統一されます。
メリットは離れた場所にスイッチを配置する場合に留まりません。
GNDは
基準電圧なので
基板のあらゆる個所に配置する事になります。スイッチを増設したい場合、マイコン周辺でプルアップしてしまえば
そこらじゅうにあるGNDとスイッチをつなぎ、スイッチのもう一方をプルアップ済みのマイコンの線に接続すればよいのです。
5V線を縫うように這わせていく必要がなくなります。
この様に周辺回路の設計を行う場合、
プルアップで設計する方がメリット多いのでプルアップが多用されます。
秋月のSH7125ベースボードのスイッチ部も
10kΩのプルアップを行っています。
電圧の異なる機器同士を接続する場合にもプルアップの有効性が出てきますが、これはトランジスタの回にて説明予定です。