メニュー 閉じる

Blog

Arduinoで7セグLEDダイナミック点灯

My Snapshot12

最近また更新してないなー(´д⊂)
6月~9月はちょう忙しかったよ…

ひさびさ更新もまた、Arduinoです(笑)
ようやく数ヶ月ぶりにゆっくりできる連休がきたので(現実逃避)
今度からもうちょっと可愛い写真とかも載せましょうかねw

さて、今日はArduinoで7セグメントLEDのダイナミック点灯を試してみました。
なんでキャラクタ液晶とかじゃないのかというと、ただの好みです。

ちなみに、ダイナミック点灯というのは接続端子を減らす「ワザ」ですね。

普通にLEDを点灯させるには、点灯1箇所ごとにプラスとマイナスの端子がそれぞれ必要です。
写真のような表示に使うLEDだと、1桁あたり7箇所のLEDと+小数点の1箇所で8箇所、
これがプラスマイナスあって、さらに桁数のぶんだけ必要になる計算です。
(このタイプ、一般的に小数点抜きで7セグメントLEDと呼びます。小数点あったら8セグだろう!とかいわなくても、(めんどいので)全部「7セグ」で。)

写真ではこれが6桁ぶんあったので、

8(LED個数)×2(プラスとマイナス)×6(桁数)=96本!

という、とんでもない配線数が必要です。(正直に繋ぐならばw)

おっと、いわゆるマイナス側は最終的にすべて電源のGNDへ繋ぐので
全部まとめて1本で済ませれば良いですね。
これは簡単に減らせるので、

8(LEDのプラス端子) ×6(桁数)+1(マイナス端子)=49本

と一気に減らすことが可能です(笑)
まあここまでは誰でも思いつきますが、さらに減らすのはちょっと厳しそうです。

ここで、ダイナミック点灯のワザが登場します。
いわゆるマイコンでの点灯を前提にするならば、
「超高速で1桁ごとに順番に表示する」
という方法も使えます。
表示するのが、そもそもプログラムですからね(笑)

イメージでいうと、こんな感じ。(□をOFF、■をONとして4桁の場合)

■□□□ → □■□□ → □□■□ → □□□■ → くりかえし!

ある時点では一桁ずつしか点灯しませんが、人間の目には全部光って見えます。
先人はよく考えたものですね(笑)
これなら、桁ごとに電源供給のON/OFFを切り替えていけばよいので、

8(LEDのプラス端子) +6(桁数ぶんのマイナス端子)=14本
または
8(LEDのマイナス端子) +6(桁数ぶんのプラス端子)=14本

と、すごく少ない本数で表示できます。
このとき、プラスとマイナスの接続方法によって2種類の方法があり、
実際に両方のタイプの部品が販売されていますよ。

(1)電源供給するLEDの場所を決める
(2)表示したい桁の電流を流す
(3)電流をOFFにする
(4)桁数だけ(1)~(3)を高速で繰り返す

こんな感じです(*´▽`*)
そして、わたしにもできました(笑)

最後に、Arduino向けにとても参考になるページがあったのでURL。
http://garretlab.web.fc2.com/arduino/introduction/beginning_with_7segment_led/

やりたいひとは、参考にしてみてくださいね。