プルアップ抵抗・プルダウン抵抗とは?仕組みと違いをわかりやすく解説

今回は、スイッチオンラボの「ラズピコ初級コース」で扱っているトピックの中から、電子工作全般で頻出する「プルアップ抵抗・プルダウン抵抗」について紹介します。

結論:プルアップ抵抗・プルダウン抵抗は、スイッチが押されていないときの電圧を「HIGH」か「LOW」のどちらかに固定するための抵抗です。 マイコン(ラズピコ・Arduino・micro:bitなど)でタクトスイッチやボタンを使う電子工作では、ほぼ必ず登場する基本知識です。


なぜプルアップ・プルダウン抵抗が必要なの?

スイッチが押されていない状態のとき、マイコンのピンがどこにも接続されていない「宙ぶらりん」の状態になってしまうためです。

マイコンのGPIOピン(電気を入出力するための端子)は、自分にかかっている電圧を常にチェックしており、その電圧の高さでHIGH(1)かLOW(0)かを判断しています。スイッチがONのときは電源とつながっているため電圧がはっきりしますが、OFFのときにピンがどこにもつながっていないと、電圧が不安定になってしまいます。

「フローティング」とは?

ピンがどこにも接続されておらず、電圧が不安定な状態のことを「フローティング」と呼びます。

フローティング状態になると、マイコンのピンは周囲のノイズや静電気の影響を受け、HIGHかLOWか判定できない不安定な状態になります。この結果、ボタンを押していないのに誤ってHIGHと判定され、プログラムが意図せず反応してしまうといった誤作動が起こり得ます。プルアップ抵抗・プルダウン抵抗は、このフローティング状態を防ぐために使われます。

プルダウン抵抗とは?

プルダウン抵抗とは、スイッチを押していないときの電圧をLOW(0)に固定するための抵抗の配置方法です。

電源とマイコンのピンの間にスイッチを置き、ピンとGND(マイナス側の配線)の間に抵抗を挟んで接続します。これにより、スイッチを押していないときはピンが抵抗を通じてGNDにつながり、電圧が0(LOW)で安定します。GND側に電圧が引っ張られて安定することから「プルダウン」と呼ばれます。スイッチを押すと電源とピンがつながり、電圧はHIGH(1)に切り替わります。

ラズピコ初級コース「レッスン3」ミッションより

プルアップ抵抗とは?

プルアップ抵抗とは、スイッチを押していないときの電圧をHIGH(1)に固定するための抵抗の配置方法です。

プルダウンとは逆に、スイッチと抵抗の位置を入れ替えて配置します。スイッチを押していないときはピンが抵抗を通じて電源側とつながっているため、電圧はHIGH(1)で安定します。スイッチを押すと電気がGND側に流れるようになり、ピンの電圧はLOW(0)に切り替わります。

プルアップ抵抗とプルダウン抵抗、何が違う?

最大の違いは、スイッチを押していないときの基準電圧がHIGHかLOWかという点です。

押していないとき押したとき
プルダウン抵抗LOW(0)HIGH(1)
プルアップ抵抗HIGH(1)LOW(0)

つまり、プルアップ抵抗を使った回路では、スイッチを「押した」ときにLOW(0)になるという、直感とは逆の読み方になる点に注意が必要です。

抵抗を使わずにプルアップ・プルダウンできる方法はある?

はい、多くのマイコンには「内部プルアップ抵抗」という機能が搭載されており、外付けの抵抗を使わずにプログラム側の設定だけでプルアップと同じ状態を作ることができます。

Raspberry Pi Picoの場合、MicroPythonでピンを設定する際に、入力モードとあわせて内部プルアップ抵抗を有効にするオプションを指定するだけで機能します。回路上に抵抗を追加する必要がないため、部品点数を減らしてシンプルに配線できるのがメリットです。

プルアップ抵抗はどんな電子工作で使われる?

タクトスイッチ・プッシュボタン・各種デジタルセンサーなど、ON/OFFの2値をマイコンに伝える部品全般で使われます。

micro:bit、Raspberry Pi Pico、Arduino、ESP32など、多くのマイコンボードでボタン入力を扱う際の基本知識として共通しています。特にプログラムでボタンの状態を読み取る処理を書く場合、内部プルアップの利用有無によって「押した状態が1になるか0になるか」が変わるため、この違いを理解しておくことがコード上のバグを防ぐポイントになります。


タクトスイッチの回路の組み方や、実際にMicroPythonでボタン入力を読み取るプログラムの書き方は、スイッチオンラボの「ラズピコ初級コース」で実際にコードを書きながら学べます。ラズピコ初級コース「レッスン3:タクトスイッチ」をご覧ください。

コメントする

スイッチオンラボ
プライバシー概要

スイッチオンラボのウェブサイトでは、より快適にご利用いただくためにCookie(クッキー)を使用しています。お客様のブラウザに保存されたCookie情報は、お客様がサイトを再訪した際の認識や、当サイトのどのコンテンツがより役立っているかを運営チームが把握するために役立てられます。