ラズパイでのLチカの仕方

ラズパイ

今回は、青色LEDを点灯します。

青色LEDはバンドギャップ(禁制帯幅)が大きい材料(GaN系)を使っているため、他のLEDよりVfが大きいです。
そのため、GPIOの出力する3.3Vではあまり電流を流すことができません。
そのため、Raspberry PI の5Vの出力ピンとトランジスタ(バイポーラトランジスター)を使ってOnとOffの制御をすることにします。
以下の点でトラブりました。
①青色LEDのアノード(+極)とカソード(ー極)の足の長さが一緒で送られてきた。
②トランジスターのピンを間違える。
③Python でのGPIO.cleanup()のエラー。
そして以下で解決しました。
①は、抵抗とLEDを5Vピンで直接点灯させました。
②エミッターとコレクターと思っていたところを5Vピンを仕替えとかしていたら、点灯したので仕様書を見直したら逆でした。
③RuntimeWarning No channels have been set up yet-nothing to clean up!
Try cleaning up at the end of your program instead!
とエラーが最後に実行を試みたらエラーがなくなった。
トランジスターを接続するだけなのにかなり手間取りました。

抵抗の設定をします。

今回使用した素子は、
LED(スタンレー製:UB3804X),
トランジスター:Tr(東芝製:2SC1815GR)を使用しました。
Raspberry PI は1端子あたり16mAまでの制限あります。
そこでLEDに流す電流を10mAと決め近い値になるようにします。
R1を決める。
5(電源)-3.2(予想Vf)-0.25(VCEsat)=1.65 v
*追記:予想VfはGaN系のバンドギャップより推測。VCEsatはデータシートより。
1.65/R1=10 mA
R1=165 Ω なので近い150 Ωを使用しました。
R2を決める。
10 mA=IB×200(hfe)
=0.05 mA=50 μA
三倍の余裕をとる。
50 μA×3=150 μA
3.3 V-0.7(VBE)=2.6 V
*追記:VBEはシリコン製でVB間のダイオードのVfの推測値。
2.6V/R2=150 uA
R2≈17 kΩ→15 kΩ
赤色LED点灯時使用したプログラムでとりあえずテストしました。
テスターでLEDのVf、TrのVCEを測定したら、
それぞれ Vf=3.1 V,VCE=0.28 Vだったため、
ほぼ狙いどうりの電流がながれていると思います。
回路図は以下です。

Python のプログラム


1秒間の点滅を5回繰り返すプログラムです。
前の記事で書きましたが、while後のインデントを
下げないとエラーとなります。

$ vi sample_led3.py

実行の可能にします。
$ sudo chmod +x sample_led3.py
実行
$ sudo ./sample_led3.py

Comments

Copied title and URL