作成:栁澤研究室 Robo-BE用

LEDの点灯制御

この章では,LEDの点灯制御を例に,ブレッドボードの使い方,オームの法則,直列・並列接続,アナログ信号,デジタル信号,テスターの使い方などを学びます.

Robo-BEでは,LEDやモータの制御,センサによる計測を「GPIOZERO」というライブラリを使用していきます.
他にもいろいろなGPIOを制御するライブラリがありますが、おそらくGPIOZEROが最も簡単で,少ない行数で書けると思います.
GPIOZERO https://gpiozero.readthedocs.io/en/stable/

1.ブレッドボードの使い方

2.LEDを1個点灯させる場合

2.1抵抗の計算

LEDをはじめ様々な電子部品を正しく使うには,適切な電圧(定格電圧)と電流(定格電流)になるように抵抗器を使うことがあります.
オームの法則を使えば,必要な抵抗がわかります.

電源電圧の部分はラズベリーパイの場合は3.3Vです.例えば,順方向電圧降下が2V,順方向電流が20mAであれば,必要な抵抗は65Ωとなります.
ただ,実際には65Ωの抵抗はないので,75Ωか,100Ωの抵抗を使うことになります.

2.2配線

この授業の前半ではブレッドボードを使用していきます.ブレッドボードの使い方については,自分で調べてみましょう.YouTubeなどにもわかりやすい動画がありますので,見てみてください.

まずは,LEDを1つ点灯させてみましょう.LEDは足が長いほうを抵抗を挟んでGPIOの26番のピン,短いほうをGNDに繋ぎましょう.
回路は以下の通りです.

2.3 プログラム

GPIO 16番につないだLEDを1秒点灯、その後消灯する場合のプログラムは以下の通りです.

In [ ]:
from gpiozero import LED
from time import sleep 
 
led =LED(26)##26番のピンをLEDの点灯制御に使用する
 
led.on() ##LEDを点灯させる
sleep(1) ##1秒待つ
led.off() ##LEDを消す

3.2個のLEDを点灯させる場合

課題8:2個のGPIOピン(例えば26番と19番)を使って,LEDを2個点灯させる回路・プログラムを作ってみましょう.

4.アナログ出力(PWM)

ここまではLEDのON/OFFしか制御できませんでしたが,今度はPWM信号を使って明るさを調整してみましょう.
回路は『2.LEDを1個点灯させる場合』と同じです.
デューティ比というのは,PWM信号の1周期のうちON信号が占める割合を示す数値で,デューティ0%のときはOFF(led.off()と同じ),100%(led.on()と同じ)のときは100%の明るさで光る,50%のときは半分の明るさで光る,というように明るさを制御できます.

In [ ]:
from gpiozero import PWMLED 
from time import sleep
 
led = PWMLED(26)#26番にLEDを接続

led.value = 0.25#デューティ比25%で信号を出力
print("25%")
sleep(3)
 
led.value = 1 #デューティ比100%で信号を出力
print("100%")
sleep(3)
 
led.value = 0 #デューティ比0%で信号を出力
print("0%")
print("end")

5.繰り返し処理

2章で習った繰り返し文を使えば,指定した回数だけLEDを点滅させたり,PWM信号を使ってだんだん明るくなるようにプログラミングできます.
ロボットの制御でも同じ動作を複数回繰り返すときなどは繰り返し文を使用します.
理解を深めるために,次の2つの課題に取り組んでみてください.わからない人はもう一度2章も復習してみましょう.

課題9:2章で学んだ繰り返し文を使って指定した回数だけ点滅するプログラムを作ってみましょう.

課題10:繰り返し文を使ってデューティ比0~100%にだんだん変化していくプログラムを作ってみましょう.

6.テスターの使い方

ロボットを作成していて一番困るのは,何が原因かわからないがうまく動作しないときです.そんなときは,機構,回路,プログラムをそれぞれ確認していくしかありません.
テスターの使い方をマスターすれば,電子回路の不具合・問題を見つけることができます.

まずは,テスターの使い方を調べてみましょう.YouTubeなどにもわかりやすい動画がありますので,見てみてください.
使い方がわかったら,LED1個の点灯回路を作成し,ONのときの電圧を調べてください.また,使用している抵抗の抵抗値も調べてみましょう.

課題11:1個のGPIOピン(例えば26番)にLED2個を直列接続した場合と並列接続した場合の電圧をそれぞれ測定してください.プログラムは2.3のものを使ってください.

7.LED点灯回路を作ってみよう

ここまでの知識を使って,複数個のLEDを使って点灯制御するプログラムを作ってみましょう.使うLEDの色,接続方法(直列接続,並列接続)に制限はありません.使用する抵抗は各自計算してください.

レポート課題2:LEDを5個以上使った点灯回路(イルミネーション?)を作ってみましょう.

レポートには自分の作った回路,プログラムのほかにどのように点灯するか言葉による説明もしてください.
完成したら,教員かTAにチェックしてもらってください.