夢色☆あんどろいど

中華パッド&スティック、Raspberry Pi、Arduinoなど、怪しいデジタルガジェット探偵団!!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

BASCOM-AVRとATTiny13Aで遊んでみる

以前のエントリでATTiny13Aへのプログラムの書き込みについて書きましたが、ここで配線を解いてしまうのも勿体ないのでBASCOM-AVRの習熟を兼ねて、もう少し使い込んでみることにしました。

今回試してみたのはATTiny13Aの出力可能なピン5本(PB0~PB4)を全部使って、そこにLEDを接続し左右に点灯が移動する「フラッシャー」を作ってみよう…というものです。
なお、BASCOM-AVRの使い方やリファレンスは「電子工作の部屋」さんのこちら↓の記事を参考にさせていただきました。
http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/BASCManu/BASCManu.html

配線は、LEDを5個並べ、PB0を一番右端に、以下順に接続します。なお、各LEDには330Ωの抵抗を挟んであります。
a13060901.jpg

プログラムは、最初、出力ピン順にオンオフさせていく方法で試してみましたが、何かモタつきがあって「流れ」が感じられません。完全消灯になるタイミングがあるからだと思います。
BASCOM-AVRでは出力ピンを操作する方法として、ピン毎のスイッチをオンオフする命令と同じグループのピンに値を書き込み一括で操作する方法があり、最初は前者で試してみたのですが、今度は後者を試してみることにしました。
「ポート全体に一括で値を書き込む」とは、こういうものを扱ったことのない者にとってはなかなか理解に苦しむ概念ですが、一旦会得してしまうととても便利な処理方法です。ATTiny13Aの場合、出力ポートはポートB(PortB)の0番から4番までですので、ここに「31」(2進数で言う11111)を代入するとすべてのピンがHighになりLEDが点灯し、「0」ですべてが消灯、1から30までの数値であれば2進数の1になるビットに相当するピンのLEDだけが点灯する…ということになります。つまり、[10000]→[01000]→[00100]→[00010]→[00001]と一定間隔で値を代入すればLEDは左から右に流れていくわけです。マイコン向けのプログラム言語にはこういう機能を便利に使えるよう2進数のビットを回転させたり移動させたり出来る命令が用意されていて、BASCOM-AVRでも当然可能になっていますので、ここでは移動させる「Shift」命令を利用して、一番端のピンだけにまず1が代入されるようにしてから順番に1を移動させていくようにします。

具体的なプログラムは以下のようものになります。
左右に2回流れた後、3回点滅…を繰り返すネオンサインみたいなプログラムになっています。
なお、2行目の$Crystalはクロックを内蔵9.6MHzに設定(lFuse値を7Aに設定)してある場合のものです。ヒューズビットを書き換えていないチップの場合は1200000にしてください。でないと動作がもの凄く遅くなります。



$Regfile = "attiny13.dat"
$Crystal = 9600000
Config PortB = Output
Dim I As Byte , T As Byte , P As Byte , K As Byte
Do
T = 150
For K = 1 To 2
P = &B00001
For I = 1 To 5
PortB = P
Waitms T
Shift P , Left , 1
Next I
P = &B10000
For I = 1 To 5
PortB = P
Waitms T
Shift P , Right , 1
Next I
Next K
PortB = 0
Waitms 500
For I = 1 To 3
PortB = 31
Waitms 200
PortB = 0
Waitms 200
Next I
Waitms 500
Loop
End



これだと前のLEDの消灯と次のLEDの点灯が同時になるのでスムーズに流れて見えます!
まあ、何の役に立つものでもない無意味なプログラムですが、これをマイコン無しでやろうとすると、私程度の電子回路の知識では想像がつきませんが、少なくともこんな単純なものでは済まないと思います。特に色々な点灯パターンを組み合わせることはとても難度が高そうです。そういえば私が子どもの頃、「フラッシャー」を搭載した子供向け自転車が流行ったことがあって、マンガ雑誌の裏表紙とかには必ずそんな自転車の広告が掲載されていたものですが、これは何とモータで接点を回転させて豆電球を順番に光らせるものでした。
なお、気になるプログラムサイズはこれで400バイト足らず(binファイル)。ATTiny13Aにとってはまだまだ余裕で、ほんの小手調べみたいなものかも知れませんね。
関連記事
スポンサーサイト

コメント:

コメントの投稿

管理者にだけ表示を許可する

トラックバック:

この記事へのトラックバック URL
http://yumeiroandroid.blog.fc2.com/tb.php/176-b020be87

 | ホーム | 

文字サイズの変更

プロフィール

よっしい

Author:よっしい
FC2ブログへようこそ!

最新記事

カテゴリ

未分類 (0)
ニュース (10)
スマートフォン (33)
中華パッド/タブレットPC (104)
ミニPC (25)
マイコン (64)
CNC機器 (16)
アクセサリ (14)
アプリ (9)
実験 (7)
工作 (13)
その他 (12)

月別アーカイブ

最新コメント

リンク

このブログをリンクに追加する

検索フォーム

RSSリンクの表示

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

FC2Ad

Template by たけやん

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。