atTiny13a LED リング


 LEDの点灯[リング式 !] 

[ LEDの点灯 ]

 最近「LEDを点灯させるのにいくつ点灯出来るのか!」気になったので、試して見ました。
 avrTiny13aはI/Oを6本使用可能です。リセットピンが有るのですが自由に使えるのは5本だけです、ここは出力能力が低いので他のピンと同等には使えません。

[1] 動作

@ LEDは+-の極性が有り、それを変更すれば点灯をコントロール出来ます。
A ICのI/Oピンから逆の電圧[1と0]又は[0と1]の様にすれば別のLEDを点灯させることが出来ます。
B 端子は2つ必要になりますが「2つのLEDを自由に点灯させることが出来ます。」そうです、シーソーの様にすれば2つのLEDを自由に点灯させることが出来ます。
C それでは端子を3つ使うと如何でしょう!隣同士で「合計4つのLEDが点灯」出来ます。
D もう一つの組み合わせ、つまり初めのピンと最後のピンでも2つのLEDが可能の様です。合計で6個のLEDです。
E 全体としてリング状に接続している感じになります。これで本当にうまく行くのでしょうか?

 これで実際に作動します。

[2] 問題点

A] 赤色LEDなどの場合約1.6V-1.8Vぐらいで点灯しますから「3.5Vぐらいの電源でLEDは両方点灯してしまう」事になります。
B] 後で入力ピンが出て来ますが、avrでは入力ピンに[1]を出力すると、プルアップされるので、これがLEDを薄く点灯させてしまうのです。

[3] I/OとLEDの関係

I/Oのピン数とLEDの数を調べて見ます(次の様な関係で増加させることが出来る)。

I/O 2bit → 2LED (max)
I/O 3bit → 6LED (これ以下は可能)
I/O 4bit → 12LED
 ピラミッドの様な3角形(上から見て)
I/O 5bit → 20LED
 4bitを2つ重ねた構造と考えると分かり易い。

LEDの電流制限抵抗は省略した!

[右上へ] 

 用 途

A] SOFTを考えると、ルーレットの様な物が良さそうです。
例・LEDを時間を取って点灯させ、スピードをゆっくりさせて止まる。
I/Oを5bitにすれば20LED(Max)となり、かなり見ごたえがする物が出来そうです。

B] 「7セグメントLED」が有りますが数表示に使えるかも!市販品は配置が異なるので使えないと思います。でも「自作」すればもしかして動くかも。
 但し、高速表示で切り替えると薄くなって見え難くなり、はたして実用的かは不明です(1桁程度か)。

[ 実験の回路図 ]

 3bitのI/Oで6個のLEDを点灯させました。

 図でLED 1を点灯させるには[PB0=0、PB1=1]にすれば点灯するはずだ。
 もし、PB2=0だとLED3も点灯してしまうので注意。
 SOFTをのぞくと分かるのですがそこを防ぐのにI/Oを入力端子にして点灯を防いでいます(慣れない人は分かり難いかも知れません)。

[ 配線は結構面倒です、ミス(混乱)すると思ったように点灯してくれません。]

[ 具体的には ]

あ] 初めに LEDに付いて
A] LEDの点灯にはI/Oを入出力に設定する。
B] 点灯させるLEDは出力に設定し、[1]を出力、リターン側は[0]を出力する。
C] アクティブのI/Oは出力端子、それ以外は入力にする。
D] 今回は8bitの前半と後半を使い分け、この辺を設定させています。
E] 各LED一つ毎にこの作業(プログラム)が必要です。

い] LEDDATAの構成 [D]の部分
 後ろの4bitがLEDの直接点灯DATA。
 前の4bitがシフト後に4bitを取り出して、入出力を設定している。

う] ループ・プログラム
 実際には実行プログラムが必要です。サンプルプログラムを見て下さい。

 ICのhex DATAです。プログラムは簡単過ぎる程です。原理が分かれば良いと思います。

 ヒューズビットは[1F 6A]を書き込みます。


:100000000EC0FECFFDCFFCCFFBCFFACFF9CFF8CF9C
:04001000F7CFF6CF61
:10001E00BFE9BDBFB0E0BEBF0E944500B0E0B093E7
:10002E00660000916600063020F510E620E0009193
:10003E006600100FB0E02B1FE12FF22F00810F7022
:10004E0008BBE12FF22F00810695069506950695C1
:10005E000F7007BB22E018E30EEA0A95F1F71A9526
:10006E00E1F72A95D1F7009166000F5F00936600C5
:06007E00D8CFD4CFFFCF64
:0A00140005900D920197E1F70895A1
:10008A00A0E6B0E0E4E8F0E086E090E00E940A0032
:02009A000895C7
:06008400323164625451A8
:00000001FFF
[ 3bit to 6LED ]

 1bitに付き2つのLEDを抱き合わせてブレッドボードに差し込んでいる。LED同士が接近して見難いのですが[1から6]まで見えるでしょうか!0.2秒づつ点灯し順に移って行きます。

実験中

[ I/O 4bit の場合 (12-LED)]

 I/O 4bitにすると図の様に12のLEDを付けることが出来る (但し、これって実験してない)。
[ ヒント! ]
☆5bitでも同じ感覚で増やせます。考えて下さい。
☆DATAも8bitを半分では対応出来ないので工夫が必要です。
☆電圧は3.5V以上で2つ点灯してしまう。5Vでやりたい場合は白色LEDを使って下さい。
☆一度に2個同時点灯出来ない。
☆切り替え式の場合、多くなると暗くなる。

[ I/O 4bit の場合 (data)]

製作 (2014/3/26)


 [MAIN MENU へ戻る]

 

inserted by FC2 system