最近また更新してないなー(´д⊂)
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/
やりたいひとは、参考にしてみてくださいね。