目標
本課題の目標は、「命令の分岐(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です。
分圧抵抗の計算は非常に大事なので覚えましょう。
次回の課題
次回課題は、「押しボタン信号を作ろう」です。
コメント