明るさセンサー【街路灯】
micro:bit(マイクロビット)を使って、周りが暗くなるとLEDを点灯させる「街路灯」を作ります。明るさセンサーには、CdSセルを使用します。
3-6-1.CdSセルとは
CdSセルは、フォトレジスターと呼ばれる光導電素子の一種で、光の当たる量によって抵抗値が変化します。詳しくは、電子工作[超]入門Lab.の「2-5.フォトレジスター【CdSセル】」で紹介しています。
3-6-2.用意するもの
表3-6-2-1は、この電子工作に必要な部品などの仕様・定格です。このほかに、プログラミングするためのパソコン・USBケーブルなどが必要です。
品名 | 数量 | 仕様・定格など |
---|---|---|
micro:bit本体 | 1 | |
プロトタイピングセット | 1 | KITRONIK-5609 |
CdSセル | 1 | 共立エレショップ(商品コード:4CS132)にて購入可能 |
LED(黄色) | 1 | 砲弾型、直径3ミリ(または5ミリ)、順方向電圧2.0V程度、制限電流20mA |
抵抗器 | 1 | カーボン抵抗、10kΩ(茶黒橙金)、1/2W(または1/4W) |
抵抗器 | 1 | カーボン抵抗、330Ω(橙橙茶金)、1/2W(または1/4W) |
ジャンプワイヤー(オス-メス) | 4 | KITRONIK-5609に付属のもの |
ジャンプワイヤー(オス-オス) | 適量 | 秋月電子通商(通販コード:P-00288)にて購入可能 |
プロトタイピングセットとは、ブレッドボードとmicro:bitのエッジコネクターをピンヘッダーに変換する基板が一つになった製品で、micro:bitを使った電子工作がハンダ付けなしで簡単に始められます。
プロトタイピングセットには、必要なジャンプワイヤーが付いてきます。
3-6-3.作る前に
micro:bitに何かプログラムが入っていると、想定外の動きをするかもしれません。「何もしない」プログラムをダウンロードして、micro:bitに送っておきましょう。
3-6-4.作り方
では、早速作ってみましょう。まず、部品がすべて揃っていることを確認したら、プロトタイピングセットのブレッドボードが手前になるように置きます。このブレッドボード上に部品を並べて、街路灯の回路を作っていきます。
CdSセル・抵抗器・LEDを配置して、ジャンプワイヤーで配線します。ジャンプワイヤーはどんな色でもかまいません。図3-6-4-1では、同じ色のジャンプワイヤーが同じ長さを示しています。CdSセル・抵抗器に向き(極性)はありませんが、LEDには向きがあるので注意します。ブレッドボードの「16C」にLEDの長い足(アノード側)を挿します。
次に、micro:bitのP0端子・P1端子・3V・GNDと結線します。
もう一度、回路に間違いがないか確認しましょう。
3-6-5.プログラミング(ブロック)
暗くなるとLEDが点灯するサンプルプログラムです。暗くなるとmicro:bitが眠るおまけ付きです。
ずっと実行されるプログラム
3-6-6.プログラミング(Javascript)
Javascript(テキスト)のサンプルプログラムです。
3-6-7.動かしてみよう
プログラムが完成したら動かしてみましょう。部屋を暗くした時に、LEDが点灯すれば成功です。
3-6-8.解説
図3-6-8-1は、街路灯の電子回路を図記号で表した回路図です。この電子回路には、二つの役割があります。一つは、P1端子で構成されるLEDを点灯させる回路。もう一つは、3V端子・P0端子で構成され明るさを測定する回路です。LEDを点灯させる仕組みは「3-1.LEDを点灯させる【Lピカ】」で解説しています。
明るさの測定の仕組み
図3-6-8-2は、街路灯の電子回路全体から明るさの測定回路を抜き出したものです。10k[Ω]の抵抗器とCdSセルが直列に接続され、V3端子によって両端に電圧3.3[V]が印加されます。この電圧3.3[V]は、抵抗器とCdSセルによって分圧されるので、抵抗器にかかる電圧V1とCdSセルにかかる電圧V2の関係は常にV1+V2=3.3[V]であり、V1とV2の値は各抵抗値の比となります。なお、分圧については、電子工作[超]入門Lab.の「1-4.分圧」で解説しています。
では、明るさをどのように測定するのでしょうか。図3-6-8-2をもう一度見ると、micro:bitのP0端子が抵抗器とCdSセルの間に接続されていることがわかります。このように接続することで、GND側にあるCdSセルにかかる電圧V2を測定することができます。
プログラムでは「アナログ値を読み取る」ブロックを使います。このブロックは、端子にかかる電圧0[V]~3.3[V]を1024段階に分解して、0~1023の値として取得することができます。
具体的にみてみましょう。CdSセルの抵抗値をR[Ω]とします。CdSセルの抵抗値をテスターで実測したところ、明るいところではR=2k[Ω]、手で覆って少し暗くするとR=20k[Ω]でした。CdSセルにかかる電圧V2は、分圧で求められ、その値は抵抗器の抵抗値(10k[Ω])とCdSセルの抵抗値(R[Ω])の比となります。つまり、電圧V2は、図3-6-8-3の式となります。
この式により、明るい時と少し暗い時の電圧V2を求めます。明るい時の抵抗値Rは2k[Ω]でした。式に当てはめるとV2=0.55[V]となります。同様に、少し暗い時の抵抗値Rは20k[Ω]なので、V2=2.2[V]となります。
この電圧を「アナログ値を読み取る」ブロックを使って読み取ると、V2=0.55[V]は170、V2=2.2[V]は682となります。プログラムでは、この値が500を超えると暗くなったと判断しているため、手で覆って少し暗くするとLEDが点灯して、micro:bitのLEDスクリーンに寝顔が表示されます。
micro:bit関連のおすすめ品
micro:bitのエッジコネクターをピンヘッダーに変換するエッジコネクターピッチ変換基板と、ブレッドボードが一つになった製品です。付属のジャンパーワイヤーを使用することで、手軽に回路の実験ができます。