======プルアップ/プルダウン====== =====PullUp/PullDownとは===== プルアップや、プルダウンとは、**電圧を確定させる**ための方法です。 その名の通り、ある場所の電圧を、 *電源電圧まで**引き上げる(プルアップ)** *GND電圧まで**引き下ろす(プルダウン)** ものです。 =====プルアップ/プルダウンが必要な場面===== **マイコン**で、**スイッチの状態**を知りたいとします。 \\ どんな回路が思い浮かぶでしょうか? \\ 普通は、**下のような回路**を考えると思います。 \\ {{:pullup_ng.png|}} \\ しかし、この回路は**動きません**。何故でしょうか。 確かにスイッチが**押された時、マイコンの端子には電源電圧**がかかります。 \\ でも、**押されていない時**を考えてみてください。 \\ マイコンの端子につながっている線の**電圧は何Vになるでしょうか?** \\ 何も繋がっていないから、0Vというのは**間違い**です。 \\ **マイコンの端子に繋がっている**じゃないか、と思うかもしれませんが、 \\ マイコンの端子は入力に設定すると、**何も繋がっていない**のと**同じような状態**になります。 \\ つまり、この線は、**スイッチが押されていない時**は、 \\ **そこらへんに転がっている配線と同じ**状態になります。\\ こういう状態の配線や端子を、**浮いている(floating)**という呼び方をします。 \\ 英語のデータシートとかで、Floating input とか書いてあったら、\\ 「プルアップやプルダウンしていません。」という意味です。 **そこらへんに転がっている配線の電圧は、確定していません。** \\ そんな事を言われても、納得行かないかもしれませんが \\ 高校物理のコンデンサの問題や静電気の事を考えると、なんとなくわかる気がすると思います。 \\ さて、電圧が確定していないので、**スイッチが使えません**。 \\ ここで、スイッチを**ちゃんと読めるようにする**のが、**プルアップ/プルダウン**です。 =====プルアップ/プルダウン===== いきなりですが、**プルアップとプルダウンの回路**です。 {{:pullup.png|}} このように、抵抗(**プルアップ抵抗/プルダウン抵抗**)を入れる事によって、 \\ スイッチが**押されていない時**の、IOポートの**電圧を確定**させる事ができます。\\ ちなみに、スイッチの場合は**プルアップを推奨**します。 \\ 理由は、間違えてIOポートを**出力**にしてしまい、 \\ その状態でスイッチを押すとどうなるかを考えるとわかると思います。 \\ 十中八九、マイコンを買いに秋葉原に行く事になると思います。