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 へ戻る]