ラズベリーパイでやってみた?! ~第3章 入力しよう~ part2 とりあえず入力回路…

<第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 はここまでといたします。