ラズパイを買ってまずすることといえば、Lチカである。多くのサイトにそう書いてある。Lチカとは、ラズパイ上で書いたプログラムからLEDをチカチカさせること。確かに、普通のパソコンを買ったときにはできないし、ディスプレイへの表示以外のデバイスへの反応を見ることができるとワクワクするのだろう。
しかし、ただ1つのLEDを光らせるだけでは物足りないので、7セグメントLED(7セグ)を衝動買い。しかも複数桁表示のもの。
小型3桁緑色7セグメントLED表示器 7mm高 アノードコモン 2381BG
あまり調べずに買ってしまった。これが良くなかった。1桁の数字は7セグメントでできていて、それが3桁。+3ドットで計24個光らせたい部位があるが、ピンは12本。足りなくないか?中で回路が入っていて高度に制御されているのだろうか?また、ラズパイのGPIOには流せる電流の制限値があり、たくさん光らせるとこの制限に引っ掛かかるのではないか?
というわけできちんと調べた。
データシートの回路図によると、どの桁に表示をするか選択をしたうえで、ある1桁の数字を表示するということらしい。複数桁を同時に光らせる場合は、すべて同じ数字にしかならない。それ何の意味があるのか・・?と思ったが、とりあえず、時間差をつけて各桁を光らせれば、3桁の表示として使えそうだ。。そうすると最大電流の問題もクリアされる。
ちなみに、後から分かったことだが、この手の7セグLEDは超高速で各桁を1桁ずつ表示することで、結果全桁が表示されているように見えるらしい。
Raspberry Pi Picoで4桁7セグLEDをダイナミック表示のやり方が参考になる。どのみちこうなると抵抗以外にトランジスタも必要。そのうち試してみる予定。
抵抗の選定はRaspberry Piで7セグメントLEDを簡単に点灯させよう (1) LEDの点灯方法を参考にした。
(3.3V-1.93V)/330Ω = 0.0042 A
1.93V(順電圧)は、20mA流した時の値なので、実際にはこの計算式は正確でない気がするが、とりあえず必要な抵抗はざっくり330Ω。7セグすべて光らせるときは電流オーバーになっていないか注意。
秋葉原のマルツで不足パーツを買ってきた。
- 330Ω 金属被膜抵抗 2W
- 10kΩ 酸化金属皮膜抵抗 2W
安価でスタンダードなカーボン抵抗は1/2W以下しかなかった。それでも行けそうだが、きちんと計算していなかったので安全側を購入。ばかでかい抵抗。
また結局複数桁表示をやめて、1桁7セグも新たに買った。秋月電子のサイトと異なり、データシートは自分で探す必要がある。検索するとこれ。
このシートにはどのピン番号とどのセグメントが対応するかが書いてある。しかし、実物にはピン番号が印刷されていない。裏面から推測すると、3と6と8はわかるが、あとは勘か。業界の常識があるのだろうか?
ラズパイ3A+のピン配列は、公式サイトより
