VOLTECHNO

ガジェットとモノづくりのニッチな部分を伝えるメディアサイト

プルアップ・プルダウンとは?スイッチ入力に必須の抵抗

プルアップ・プルダウンとは?スイッチ入力に必須の抵抗

スイッチやセンサーなど、外部信号をマイコンに入力する時に必要となるのが『プルアップ』『プルダウン』抵抗です。この抵抗は必須でありながら効果が良く分かっていなかったり、逆に省いてしまっている方もいると思います

本記事では、スイッチ入力に使うプルアップ・プルダウン抵抗について解説します。

スイッチ入力を安定な状態に保つプルアップ(プルダウン)抵抗

プルアップ(プルダウン)抵抗とは、電子回路における「浮いている」状態を避けるための抵抗です。マイコンの入力端子は、必ず電圧源、グランド、グランド基準信号源に接続しなければならず「浮いている」状態を極力避ける鉄則があります。

スイッチとマイコンをどのように接続すると浮いている状態になるのかを考えてみます。

例えば、電子回路を始めたばかりの方が考えるのが下のような回路です。これはスイッチを押したときにONの信号が入力される回路で、5Vとスイッチを繋いでマイコンの入力端子にそのまま接続しています。

単純に考えた場合のスイッチ入力回路。
スイッチをON状態にすると5Vが印加されマイコンに電圧信号として伝わる。

この回路は、スイッチをONにしている時であれば問題ありません。しかし、スイッチOFFにするとマイコンの入力端子が何も繋がっていない「浮いている」状態になります。このような状態を避けるために「プルアップ抵抗」を使用します

スイッチOFF時にはマイコン入力端子に何も接続されていない「浮いている」状態となる。このような接続は避ける必要がある。

このような「浮いている」状態を「ハイインピーダンス(Hi-Z)」や「フローティング」と呼ぶ場合もあります。

開放状態が悪いのではなく、ノイズやサージに弱くなる事が問題

実際には、入力端子が浮いていたとしても、想定している通りの動作はしますし、回路制作の途中で直接的なトラブルに繋がる場合も恐らくはありません。

1台や2台の試作であれば問題にはなりませんが、100台を超えるような数を作り、長期間動作させれば「浮いている」事が原因で不良を発生します。

「浮いている」状態が最も問題となるのは、ノイズによるマイコン誤作動や、サージによるラッチアップの誘発などに対して極端に弱くなる点です。そのため、入力端子の「浮いている」状態を残すのは、回路全体の信頼性を低下させたり、最悪場合マイコンの破壊に繋がる場合があります。

「何も入力がないとき、アップ(ON)状態にする」抵抗を考える

先ほどの回路は「スイッチがOFFの時に浮いた状態になる」のが問題点となります。それをプルアップ抵抗を使って対策したのが以下の回路となります。

この回路では、先ほどの回路とスイッチ出力状態が反転しており、スイッチを押すとマイコンにはOFF、スイッチを話すとON状態が出力されます。プルアップ抵抗を追加すると、スイッチを押していない状態でもマイコンには抵抗を介して5Vが入力されるようになります。

それぞれ、スイッチを押したときと。押していないときの動作を解説します。理想的な条件としてマイコンの入力端子の入力抵抗は非常に大きい値と考えます。

スイッチを押した時の考え方は、5V電圧がスイッチとマイコンで分圧されるのがポイントです。

スイッチと並列に繋がるマイコンの電圧入力は0Vになり、マイコン入力はOFFとなります。5Vの電圧は全てプルアップ抵抗側に印加されます。

スイッチを押すと、スイッチの抵抗値が0Ωとなり電圧0Vとなる。並列に接続しているマイコン内部の抵抗も同じ0Vとなる。

スイッチを押していない時には、5V電圧がプルアップ抵抗とマイコンの入力抵抗で分圧されます。

プルアップ抵抗とマイコンの入力抵抗ではマイコン入力抵抗の方が大きいため、5V電圧は全てマイコン側に加わり、マイコンはON入力となります

スイッチを押していない時はプルアップ抵抗とマイコン入力抵抗で分圧される。マイコン内部の抵抗値は非常に大きいため5V入力となりONとなる。

プルダウンは何もないときにダウン(OFF)

プルアップでは、ボタンが押されていない時にONとなりましたが、抵抗を下側に配置するとボタンを押した時にONになるプルダウンになります。

それぞれ、スイッチを押したときと。押していないときの動作を解説します。理想的な条件としてマイコンの入力端子の入力抵抗は非常に大きい値と考えます。

スイッチを押した時は、スイッチを通して5Vが供給されます、プルダウン抵抗とマイコン入力端子は並列接続のため、電圧降下も発生せず同じ5Vが加わりON状態となります。

スイッチを押すとプルダウン抵抗とともにマイコンに電圧が印加されてONとなる。

スイッチを押していない時は、5Vが供給されません。マイコンの入力端子は、プルダウン抵抗を通じてGNDと繋がり、OFF状態に固定されます。

スイッチを押さない状態では5Vが遮断される。マイコンはプルダウン抵抗を通じてGNDに繋がりOFFとなる。

スイッチを押していない時だけに注目すると「プルダウン抵抗は無くても」と思うかもしれませんが、スイッチを押した時には5Vラインが抵抗なしでGNDに直接印加され、ショートして電源自体を破壊してしまうのでプルダウン抵抗は必須になります。

慣例的によく使われるのはプルアップ抵抗

プルアップ・プルダウンは出力が反転するだけで、用途に大きな違いはありませんが、慣例的に多く使われるのはプルアップです。

歴史的には当時の半導体の特性によってプルアップが多用された経緯があり、現在でも、慣れや技術書の引用からプルアップが多用されています。近年マイコンなどではどちらを使用しても大きな違いはありませんが、マイコンなどには内部プルアップ搭載が多いため、この先もプルアップが多用されるでしょう。

用途によってはプルダウンが必須となる場合もあるので、前例に捕らわない柔軟な回路設計を行いましょう。

マイコンの内蔵プルアップを使って部品点数低減

マイコン内部プルアップ(プルダウン)を利用すると、抵抗を省いてスイッチをそのまま接続しても、マイコン内部でプルアップ(プルダウン)しているのと同じ状態を保つことができます。

部品が減るのはトラブルの低減やコストの削減など様々な面でメリットがあります、内部プルアップ(プルダウン)があるマイコンを使用する場合はぜひ活用してみましょう。

ちなみに、Arduinoにも内部プルアップがあり。pinMode関数の第2引数にINPUT_PULLUPを指定と内部プルアップが有効になり、外付けのプルアップ抵抗の省略できます。

Return Top