SH7125ボードで始めるマイコン開発Homeプルアップ・プルダウン前回はLEDをいい感じにつなぐ話でした。今回はスイッチをいい感じにつなぐ話です。サンプルプログラムを変更する回ではスイッチを接続しただけでは入力が不安定になることを確認しました。サンプルプログラムを変更する回のおさらい端子をON-OFF入力で使用する場合は端子に常に0Vか5Vが接続される状況にする必要があります。指がアンテナ何も接続されていない端子に指を触れると人の体が巨大なアンテナ代わりになります。人の体をアンテナにした程度ではLEDを光らせることすらできません。マイコンは省電力化のために非常に小さな電力でも反応するように設計されています。0Vや5Vが正しく接続されたポートに指を触れてもアンテナからの信号はかき消されてしまいます。0Vも5Vも接続されていない端子ではアンテナからの信号がかき消されません。何も接続されていない入力端子を指で触れると指で受信した信号にマイコンが反応します。沢山人のいる部屋だと時計の動く音は聞こえないけど、静かな部屋だと時計のコチコチ動く音が気になるのと同じ感じです。仮にスイッチを押した時に端子に5Vが接続されるように配線したとします。スイッチを押して5Vが接続されている間は問題ありませんが、スイッチを押してないときは端子に0Vも5Vも接続されていない状態になり指で触れただけで反応する不安定な状態になります。端子に常に0Vが接続された状態にして、スイッチが押されたときに5Vが接続されるように配線すると配線に大電流が流れて配線が溶けるか電源が壊れます。常に3本足のスイッチを使い、スイッチを一方に倒すと0V、もう一方に倒すと5Vに接続する事もできますが通常その様な配線は行いません。ここでまたはプルアップやプルダウンといった配線を行います。プルダウンまずは分かりやすいプルダウンから。スイッチを押した時に5Vがつながるように配線したとして、スイッチを押してないときに0Vに安定するように配線します。スイッチを押してない時はマイコンの端子が抵抗を経由して電源のマイナス側につながれます。以降、電源のマイナス側をGND(グランド)と呼びます。GNDは基準の電圧で、基本的にはGNDより高い電圧(5V、3V等)を取り扱います。マイコンの端子には抵抗を経由したGNDしか接続されていないので、マイコン端子の電圧は0Vになります。この状態なら指で触ったとしても指のアンテナよりプルダウン抵抗の方が影響力が強いので、0Vのまま安定します。抵抗の値があまりにも大きい場合(数十メガΩ)は指の景況を受けてしまいます。静かな部屋で時計コチコチ動く音が気になるので、小さな音で音楽をかけておく様な感じです。次にスイッチを押した状態マイコンの端子にはプルダウン抵抗を経由したGNDとスイッチを経由した5Vの両方が接続されます。スイッチの抵抗値に比べてプルダウン抵抗の値が圧倒的に大きいのでマイコン端子の電圧はほぼ5Vになります。)=4.995となりほぼ5Vであることが分かります。スイッチを押している間、プルダウン抵抗に電流が流れるため抵抗部分で電力を消費します。(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Ωのプルアップを行っています。電圧の異なる機器同士を接続する場合にもプルアップの有効性が出てきますが、これはトランジスタの回にて説明予定です。性別:男性カテゴリーマイコンを始めるにあたって(9)機能一覧(6)ソフトウェアの基礎知識(12)SHソフトウェア開発(35)RXソフトウェア開発(12)RL78ソフトウェア開発(2)回路設計の基礎知識(5)周辺回路設計(19)動力部品など(8)RaspberryPi開発(6)数学の基礎(3)愚痴(説教)(2)最新記事RL78へ書込む(E1編)(02/23)RL78の開発環境(02/23)ミニ四駆モーターの始動特性(02/16)ブログの仕様が変更されたようです。F博士]いつもお世話になっております。