メニュー 閉じる

タグ: Arduino

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/

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

GW突入~。Arduino赤外線リモコンの続き!

GWですねー。
実は休み突入と同時にメガネを破損させてしまって、
新メガネができるまで「ぐんにゃりメガネ」で何もできない状況。。
明日なったら、新メガネを引き取ってくる予定です。
なにやってるんだか…まったく。

とりあえず、「斜めメガネ」でもできる作業…というと電子工作ぐらい??
ということで、止まってた電子工作のつづきをやってみます。 (´д⊂)

引き続き、赤外線学習リモコンを作ります。
前回記事はこちら。

大きいデバイスは嫌いなので、Arduinoは「Nano」あたりが好きなのだけど、
エアコンのリモコン学習にはメモリ不足だったので、SRAM/Flashがやや多い
MEGA2560互換ボードを使用してみます。

アクリルのケースが少し安くなったので、本体はこんな感じにしました。
DSC_0853
ねじがうまく付けられなくて何本か余りましたが、そこはご愛嬌…
電子工作では細かいことは気にしない!!!
見た目はかっこよくなりました(笑)

そして肝心の基板です。
赤外線送受信と、モニターができるように、下記のような部品を実装しました。
DSC_0858
・赤外線LED [OSI5LA5113A]×6発
(NPNトランジスタ[2SC2655L-Y]で駆動します。→ ここは前回記事の回路で)
・赤外線受信モジュール [OSRB38C9AA]
・青色LED (インジケータ用) [OSUB5161A-PQ]
・圧電ブザー [適当な部品で]

今回、写真手前の「ピンずれ」部分がどうしても対応困難なため、
不本意ですが「Arduino用バニラシールド基板ver.2(白) 」も使いました。
この部分がずれてなければ、汎用のユニバーサル基板でいいのになぁ。
この1点についてだけは「フルサイズのArduino」だと残念です。

赤外線LEDの光を多少は拡散してほしいので、白い基板を選択したけど…
あんまり意味がなかったな(笑)
本当の拡散には、LED光拡散キャップ(白色)をつけてます。(これも前回記事と同じ)

合体させるとこんな感じになります。
仮のスケッチで、青色LEDをフェードさせているところ。
DSC_0852

Arduino本体はサインスマートのMEGA2560互換ボードで、Amazonから購入。
バニラシールドもAmazonですが、それ以外の電子部品は全部秋月電子です。
まあ、そのへんで揃いますw

ひととおりの部品がちゃんと動くところまで確認して、各部品とりあえず動いています。

赤外線受信モジュールで学習させて、エアコンを自動制御するのが目標ですので、
本番スケッチはこれから作りこみます。

が、半田付けで疲れたので今日はここまでにします(笑)

おまけ。
以前にも紹介したかも?すっかり忘れてしまいましたがw
最近は「温度調節付のはんだごて」を使っています。

これすごくいいです。
昔から、加熱しすぎで失敗したりしていましたが…だいぶうまくなりました。
いえ、うまくなった気がします(笑)
もちろん少し高いのですが、長く使えば「元はとれる」…はずw
ちょうおすすめ。

 

赤外線リモコン再び。(☆ω☆)ぴかっ

そろそろ暖かくなってきましたね。
桜がきれいでいい感じです。

ですが、ここで夏に向けて赤外線リモコンをパワーアップします(笑)
今回は、赤外線LEDを、6発にして実験。

ぴかっ♪
My Snapshot3
前回作ったものは、LEDひとつだったのですが、
ちょっと遠くからだとエアコンが反応しないのです…(汗)

しかし、普通にArduinoの信号用の配線で6つも光らせようとすると
電力不足になります。

というわけで、今回はトランジスタを使い、
別途5VのUSB電源をスイッチング。

Arduino-IR-Ctrl

赤外線は見えないので、 モニター用に普通のLEDも入れる予定だったけど
…省略。
なぜかというと、写真のとおり、見えるのでw
カメラを通せば見えるので(笑)
(前回作ったときはWebカメラを持っていなかったのですw)

さらに、隅々まで照らすように、LEDに光拡散キャップも装備。
My Snapshot8
ぴかっ☆
My Snapshot6
良い感じに光ってます。

といったところで、今日はここまで。

リモコン送信はまた後日やります~
うまくいくかな~?