スイッチの入力を見つけよう

目標

本課題の目標は、「命令の分岐(if文)」の概念を習得することです。
全課題は以下を参照ください。

前回「信号機を作ろう」の続き

前回課題の「信号機を作ろう」の回路を改造し、今回の課題を進めます。前回課題は以下のリンクを参照ください。

接続図

前回の回路が以下になります。

前回の回路から緑のLEDを取り外し、ボタンと1kΩの抵抗を接続します。

拡大した図が以下です。スイッチは横に導通し、縦はボタンを押した時に導通します。抵抗はなくても問題ありませんが、プログラムを間違えた時に壊れないように付けました。

これで回路は完成です。

プログラムの実装

回路を見ると、スイッチを押すとGNDと繋がります。
ボタンを押したときだけ、赤色のLEDを光らせるようにしましょう。

よって、「もし〜なら」のブロックを使います。

スイッチが押されて時(gpio5がlow(GND))の時、赤色のLEDが光る(gpio4がhigh)、
スイッチが押されていない時(gpio5がhigh)の時、赤色のLEDが消える(gpio4がlow)
になるようにプログラムを作ってみてください。

一例を以下に示します。簡単でしょう?

スイッチを押していない時、LEDがピカピカ光ると思います。
何故でしょうか?どこにも接続されていないからです。
対策する方法は2つあります。
Raspberry Piの中の回路を変更するか、回路を変更するかです。

一つ目の方法は、初期化時にpulled highを実行することです。
以下のようなプログラムを組みます。
初期化時に行ってください。

二つ目の方法は、回路を変更することです。
下の図のように回路を変更してください。回路は上と同じです。
1kΩよりずっと大きい10kΩを接続しました。

スイッチがON・OFFした時の電圧は次の章を参照ください。

分圧回路の設計方法

スイッチがOFFの時の電圧を考えます。

回路は繋がっていません。
つまり、電流が流れません。
電流が流れない=電位差(電圧)が発生しない ということです。

よって、は電源電圧(5V)、はGND(0V)になります。
この考え方は非常に重要なので覚えておいてください。

次にスイッチが繋がっている時を考えます。

抵抗R1と抵抗R2の間の電圧V12を求めます。
電源電圧をVとします。
R1に掛かる電圧をV1、R2に掛かる電圧をV2とします。
回路一周の電圧はV=V1+V2
GNDからV2の電位差が生じ、そこからV1の電位差で電源電圧Vになります。
単位抵抗辺りの電圧は、1/(R1 + R2) ×Vです。
分圧抵抗はGNDからの電位差になるので、R2/(R1 + R2) ×Vです。

分圧抵抗の計算は非常に大事なので覚えましょう。

次回の課題

次回課題は、「押しボタン信号を作ろう」です。

コメント

タイトルとURLをコピーしました