LEDがひとつ付いている市販の商品をラズパイに接続する
LEDを使った市販の商品をラズパイに接続して遊んでみるのも面白いかもしれません。LEDがひとつだけついている商品と、複数個ついている商品があります。ここでは、以下のようなLEDキャンドルをラズパイに接続してみます。LEDがひとつだけついている商品です。
こういう商品は(もちろん)ラズパイに接続して使う想定にはなっておらず、電池をはめて、スイッチを入れて使うようになっています。ここでは、電池をはめるケースとスイッチを外して(もぎ取って)、内部のLEDとラズパイを接続し、ラズパイからLEDを点灯、消灯、点滅などができるようにします。
まずは、使用する(犠牲となる)商品にどんな電池を入れて使う想定になっているのかを調べます。上記写真の商品は、ひっくり返すと底の部分にAAA乾電池を2本入れる場所があります。
乾電池は1本で1.5 Vなので、2本直列にして3 Vで給電しているはずです。仮に並列なら1.5 Vで給電していることになり、1.5 Vで発光できるLEDはかなり珍しいので(特別な機種)、並列接続はないはずです。珍しい機種を使えば材料コストがかさむでしょうし。
次に、電池を入れるケースとスイッチをはがします。LEDと電池のケースがワイヤでつながっているので、ワイヤを切って、電池のケースを分離します。LEDにつながっているワイヤは再利用したいので、できるだけ長く残しておくといいでしょう。電池のケースに近いところでワイヤを切ります。また、どちらのワイヤが電池のプラスにつながっていたか印をつけておきます(ペンで印をつけたり、テープをつけるなど)。
ワイヤの先端部分からエナメルの皮をはがして銅線をむき出しにし、この銅線部分をラズパイと接続します。
LEDのプラス端子にGPIOピンからの電流が流れ込むようにして、LEDのマイナス端子からグラウンドへ電流が流れ出すように配線します。ワークショップ中に作った回路と実質同じものを作ります。
上記写真では、ワニ口クリップのついたワイヤと、male-to-maleのジャンパーワイヤ(両端に金属のピンがついているワイヤ)も使っています。
使用する抵抗の抵抗値を決めるには、LEDが想定する電圧と電流を知る必要がありますが、これは正確には調べようがありません(LEDを見てもどこのメーカーが作ったものなのかは分からないので)。ですが、1 KΩを使えば間違いはないでしょう。十二分に明るくはならないかもしれませんが、LEDを壊す心配はほぼありません。仮に1 KΩでLEDが点灯しなかったら、抵抗値が高すぎたということなので、それより低い抵抗値を試してみてください(例えば330 Ωや220 Ωなど)。
もう少し考えをめぐらせると、次のような皮算用が成り立ちます。青色でないLEDは、だいたい2 V、10 mAあたりで問題なく点灯します。GPIOの電圧は3.3 Vなので、抵抗にかかる電圧を1.3 V(3.3 V - 2 V)、そこに流れる電流を10 mAと考え、オームの法則により、1.3/0.01 = 130 Ωの抵抗が必要となります。私は手持ちの抵抗に130 Ωぴったりのものがなかったので、220 Ωを使いました。オームの法則や抵抗値の計算方法については「LEDを保護する抵抗のオーム値の計算方法」を参照してください。
ラズパイ上で動かすPythonプログラムは、ワークショップで作ったled-on-off.pyをそのまま使えます(GPIO21ピンから給電している限り)。
なお、使用する抵抗の適正な抵抗値を、もう少し正確に割り出したい場合には、もともとの商品についていた抵抗の抵抗値を計測するとよいと思います。これにはマルチメーターが必要です。
このように、私が買った商品では、20 Ωの抵抗が使われていました。LEDに流れる電流を10 mAと想定すると、抵抗にかかる電圧は、オームの法則により、20 * 0.01 = 0.2 Vとなります。この商品は電池2本で3 Vの給電をするので、LEDには2.8 V(3 V - 0.2 V)の電圧がかかっていることになります。そこで、LEDの定格が2.8 V、10 mAだと当たりをつけ、ラズパイを使った回路での抵抗値を計算します。ラズパイは3.3 Vで給電するので、抵抗には0.5 Vかかり、そこに電流を10 mA流したいので、オームの法則により、0.5/0.01 = 50 Ωの抵抗値が必要という結果になります。上記のように、私は220 Ωを使いましたが、これは安全な抵抗値だったことが分かります。1 KΩなら十二分に安全だと言えます。
細々した計算がお好きな方は(多くないでしょうが)、もう少し考え得ることがあります。普通の乾電池の電圧は1.5 Vですが、充電池(ニッケル水素電池)の電圧は1.2 Vになっていることがよくあります。例えばパナソニックのエネループの電圧は1.2 Vです。実は、1.5 Vの乾電池を使う機器はすべて1.2 Vの充電池を使っても普通に動作します(その理由などの詳細はここを参照)。私の買った商品では、エネループ2本で普通にLEDが点灯しました。実際のところ、1.1 Vあれば、ほぼ全ての機器は動作します。1.0 Vや0.9 Vでも多くの機器が動作します。そこで、ここでは間を取って、電池一本で1.0 Vの給電を想定してみます。つまり電池2本で2 Vの給電となり、LEDには1.8 V(2 V - 0.2 V)の電圧がかかることになります。ここから、LEDの想定電圧が1.8 V、想定電流が10 mAだと当たりをつけ、ラズパイを使った回路での抵抗値を計算します。ラズパイは3.3 Vで給電するので、抵抗には1.5 Vかかり、そこに電流を10 mA流したいので、オームの法則により、1.5/0.01 = 150 Ωの抵抗値が必要という結果になります。
このように、この商品をラズパイと一緒に使うには、50 Ωから150 Ωあたりの抵抗を使うのが適当なようです。実際には、これ以上の抵抗値を使ってもLEDは点灯します。異なる抵抗値を順番に試して、LEDの明るさがどう変わるか確認してみるのも面白いかもしれません(より低い抵抗値を使うとより明るく点灯します)。また、どのくらい大きな抵抗値を使うとLEDが点灯しなくなるかを試してみてもいいでしょう。