<第3章 入力しよう part2 とりあえず入力回路…>
ハードもちょこっと解るオッチャンの投稿…
前回は、公式サイトで調べた内容でした。
今回は、一番簡単な入力回路を考えてみます。
相変わらずの基本条件として、
基本となる「オームの法則」は、
「小・中学校 理科の教科書レベルは理解済み」としますね。
前提として、ラズパイのプルアップとプルダウン共にOFFの設定とします。
まずは、オバカな回路を書いてみましょう。(色々と異議があると思いますが…)
・HIGHのみ入力の回路
3V位あれば確実に「HIGH」と検知するんで、
単にず~っと「HIGH」をキャッチするなら、
ですね。
・LOWのみ入力の回路
0.5V以下であれば確実に「LOW」と検知するんで、
単にず~っと「LOW」をキャッチするなら、
ですよね。
コレらを合わせたら、どっちも検知できる…というバカはしないでくださいね。
「短絡」
になります。
逆に、短絡を回避できれば、OKという事になります。
・HIGH入力の回路
3V位あれば「HIGH」と検知するんで、分圧させましょう。
供給が3.3Vで検知レベルを3.0Vとするなら、抵抗比率は1:10という解りやすさ。
試しに
抵抗A=100Ω
抵抗B=1kΩ
としてみましょう。
合成抵抗から 3.3 ÷ 1100 = 0.003A = 3mA の電流が流れますね。
かかる電力を確認しましょう。
V=IxR W=VxI より
W=IxIxR になりますね。
抵抗A=0.9mW
抵抗B=9mW
シブイチで十二分にいけますね。
続いてLOW側の分圧を考えましょう。
・LOW入力の回路
0.3V位なら「LOW」と検知するんで、同様に分圧させましょう。
供給が3.3Vで検知レベルを0.3Vとするなら、これまた10:1という解りやすさ。
抵抗A=100Ω
抵抗C=10Ω
合成抵抗から 3.3 ÷ 110 = 0.033A = 33mA の電流が流れますね。
かかる電圧は、
抵抗A=0.11W
抵抗C=0.01W
これまたシブイチで十二分にいけますね。
では回路をドッキングしましょう。
「あれれ…」思った方も多いと思います。
抵抗Bと抵抗Cが並列となっているので、合成抵抗が変わってしまいますね。
いくつになったのでしょうか?
並列の合成抵抗は、逆数の加算となるので、
1÷抵抗B + 1÷抵抗C = 1÷合成抵抗
つまり
1÷1000 + 1÷10 = 1÷合成抵抗
先に出てる数値を算出しましょう。
通分して…
1÷1000 + 100÷1000 = 101÷1000
この逆数になるので
1000÷101 = 9.90Ω
ほぼ10Ωですね。
片方が100倍もの抵抗値なので、この程度だと「誤差」となってしまうんです。
さて、このままでは、常に「LOW」となってしまいます。
そこで、抵抗Cの真上にスイッチをつけましょう。
この場合、
スイッチがOFFだと、抵抗Aと抵抗Bだけの回路となるので、
HIGHとなります。
スイッチがONだと、抵抗Cも回路に参加するので、
合成抵抗が約10Ωとなる回路となります。
したがって「LOW」を検知します。
では実際にブレッドボードに組んで、
GPIOに接続させましょう。
そして入力は、ソフト(JAVA)のポーリングで見てみましょう。
まずはデフォルトでON(HIGH)が検知してますね。
ボタンを押してみましょう。
OFF(LOW)と検知されてます。
成功です!
なんとか入力が取れたので、part2 はここまでといたします。