文書の過去の版を表示しています。
目次
006.プルダウン抵抗を配置する
2026-08-17 清書とかを頼むとAIさんが「プルアップ!プルダウン!」と大変しつこ……推奨してくるので。
概要
- タクトスイッチの回路にプルダウン抵抗を配置する。プルダウンにしたのはイメージと論理に合致して自分が理解しやすいから。
- プルダウン抵抗が無い時の回路振る舞いが改善するのか確かめる。
GND
すっかり書き忘れて…
GND : 電圧の基準(0V)であり回路的に電流の出口でもある
やめてだいぶ簡単に書いたんだからいっぱい指摘しないで…
抵抗を配置する理由
プルダウン/プルアップ抵抗
GPIOは入力PINの電圧を基準にHigh/Lowを決める。
プルダウン/プルアップ抵抗を配置する理由は 入力が未接続状態の時に入力をLow/High(プルダウン/プルアップ)に固定してノイズを防ぐ 為。
簡単な回路で
- ノイズが気にならない
- 気にしなくていい
なら配置しなくても実用上問題は無いかもしれない。
プルダウン抵抗
入力PINとGND間に配置する抵抗。図だとスイッチがONの時入力PINは3.3VとつながりHigh状態になる。
プルアップ抵抗
入力PINと3.3V間に配置する抵抗。図だとスイッチがOFFの時入力PINは3.3VとつながりHigh状態になる。
保護抵抗
以前の回路と同様で、GPIOが意図せぬ理由で入力から出力に変わった時、過大電流が流れるのを防ぐために配置する。
抵抗 Rg が保護抵抗。
プルダウン、プルアップのどちらも、GPIOが誤って出力設定になった場合や、外部回路と反対の電位でぶつかった場合に、保護抵抗 Rg が過大な電流が流れるのを防ぐ。
プルダウン時
スイッチON + GPIO出力がLow時、3.3VからGPIOの出力回路側へ過大電流が流れ得る。
配置したRgが電流を制限する。
| スイッチ | GPIO出力 | 状況 |
|---|---|---|
| OFF | Low | 問題なし。GPIOもプルダウンもLow |
| OFF | High | GNDへ電流が流れるが、Rg、Rが電流を制限する |
| ON | High | 問題なし。3.3VとGPIO Highが同方向 |
| ON | Low | Rgが電流を制限する |
プルアップ時
スイッチON + GPIO出力がHigh時、GPIOからGNDへ過大電流が流れ得る。
配置したRgが電流を制限する。
| スイッチ | GPIO出力 | 状況 |
|---|---|---|
| OFF | High | 問題なし。GPIOもプルアップもHigh |
| OFF | Low | 3.3VからGPIOへ電流が流れるが、R、Rgが制限する |
| ON | Low | 問題なし。GPIOもGNDもLow |
| ON | High | Rgが電流を制限する |
プルダウン抵抗なしで実験
回路を長くしてノイズなんかを拾うように…というAIさん推奨構成。
残念ながら外付けのカードリーダーのUSBケーブルをワザと線の上(写真で言うところの緑の結線)に被せてファイルコピーなんかを実行してみたが、ノイズは見られず。
005.LEDとタクトスイッチを連動するでやった回路のまま。ただしTSW 1 と P8_45 間を意図的に長くした。
タクトスイッチの押す放すの間隔を狭めるとそれらしい不安定さが出てきた。
- Pushdemo3.sh
#!/bin/bash # TACT SW 1 sudo config-pin P8_45 gpio >/dev/null sudo stdbuf -oL gpiomon gpiochip2 7
結果、RISING→FALLINGの繰り返しのはずがRISING連続、な検出。
不安定な入力は確認できた。ただし今回の結果だけでは、AIさんの言うノイズなのか、タクトスイッチのチャタリングなのかは判別できない。
そしてこれ以上詳しく調べるつもりもない。ヤだよ面倒だもん…
debian@BeagleBone:~$ ./Pushdemo3.sh event: RISING EDGE offset: 6 timestamp: [ 119480.872924936] event: FALLING EDGE offset: 6 timestamp: [ 119481.023533483] event: RISING EDGE offset: 6 timestamp: [ 119482.129727678] event: FALLING EDGE offset: 6 timestamp: [ 119485.022289240] event: RISING EDGE offset: 6 timestamp: [ 119487.168530954] event: FALLING EDGE offset: 6 timestamp: [ 119487.241813167] event: RISING EDGE offset: 6 timestamp: [ 119487.343832366] event: FALLING EDGE offset: 6 timestamp: [ 119487.388211435] event: RISING EDGE offset: 6 timestamp: [ 119488.588575460] event: FALLING EDGE offset: 6 timestamp: [ 119488.725893697] event: RISING EDGE offset: 6 timestamp: [ 119488.834687524] event: FALLING EDGE offset: 6 timestamp: [ 119488.967555410] event: RISING EDGE offset: 6 timestamp: [ 119489.587770591] event: FALLING EDGE offset: 6 timestamp: [ 119489.734967908] event: RISING EDGE offset: 6 timestamp: [ 119489.833294181] event: FALLING EDGE offset: 6 timestamp: [ 119489.978722865] event: RISING EDGE offset: 6 timestamp: [ 119490.074842523] event: FALLING EDGE offset: 6 timestamp: [ 119490.209937355] event: RISING EDGE offset: 6 timestamp: [ 119490.501814430] event: FALLING EDGE offset: 6 timestamp: [ 119492.696805702] event: RISING EDGE offset: 6 timestamp: [ 119493.268147798] event: FALLING EDGE offset: 6 timestamp: [ 119493.422785965] event: RISING EDGE offset: 6 timestamp: [ 119494.266001031] event: RISING EDGE offset: 6 timestamp: [ 119494.400179944] event: RISING EDGE offset: 6 timestamp: [ 119494.400428767] event: FALLING EDGE offset: 6 timestamp: [ 119494.400562095] event: RISING EDGE offset: 6 timestamp: [ 119494.844143796] event: FALLING EDGE offset: 6 timestamp: [ 119495.003756169] event: RISING EDGE offset: 6 timestamp: [ 119496.873623910] event: FALLING EDGE offset: 6 timestamp: [ 119497.099399800] event: RISING EDGE offset: 6 timestamp: [ 119497.099472172] event: RISING EDGE offset: 6 timestamp: [ 119497.099618958] event: RISING EDGE offset: 6 timestamp: [ 119497.099891988] event: FALLING EDGE offset: 6 timestamp: [ 119497.099994442] event: RISING EDGE offset: 6 timestamp: [ 119525.229745690] event: FALLING EDGE offset: 6 timestamp: [ 119525.368526286] event: RISING EDGE offset: 6 timestamp: [ 119525.991826058] event: FALLING EDGE offset: 6 timestamp: [ 119527.286269567] event: RISING EDGE offset: 6 timestamp: [ 119527.286490975] event: RISING EDGE offset: 6 timestamp: [ 119527.286555305] event: RISING EDGE offset: 6 timestamp: [ 119527.286646051] event: RISING EDGE offset: 6 timestamp: [ 119527.286789504] event: RISING EDGE offset: 6 timestamp: [ 119527.286875750] event: FALLING EDGE offset: 6 timestamp: [ 119527.286925498] event: RISING EDGE offset: 6 timestamp: [ 119710.378896851] event: FALLING EDGE offset: 6 timestamp: [ 119711.339763310]
プルダウン抵抗ありで実験
書きかけ
