« 秋の工作 続き | トップページ | 就学相談 »

ATtiny10(米粒AVR)でLEDチカチカ(Lチカ)

多分こんな題名で山ほどブログが書かれていると思いますが、僕も...

まあお決まりのLED点滅プログラムを米粒AVR向けに作ってみました。

・スイッチを押すたびに、消灯→Low点灯→High点灯→消灯を繰り返す
・素早く二回押すと、2個のLEDが交互点滅し、もう一回押すとLow点灯になる
・どんな点灯状態でも長押し(1秒以上)すると消灯する
・消灯したらすぐにMPUはパワーダウンして、電池を節約する

こんな機能を持たせました。

スイッチの検出はCTC動作のタイマ割り込み(10msecごと)、Low点灯のデューティー駆動や交互点滅は無限ループ内のメインルーチンの中で。
スイッチの扱い、ピン変化割り込みでMPUを起こしたりタイマーの使い方を勉強したり、EEPROMの書き換え限度が来るんじゃないかという位試行錯誤してなんとか動くようになりました(んなことはないか。せいぜい数百回?)。ちゃんとデータシート見て理解しないと回り道ばかりですね。
最終的にファームウェアのサイズは896バイトとあと少しで1kBytesの容量を使い切るところでした。こんな単純な動作をするプログラムですから、慣れた人ならアッという間に、サイズも数分の一で作っちゃうんでしょうね。スッキリさせたいところはいくつかあるソースコードですが、まあ一旦これで良しとしました。

LEDを白と赤にしたのは、夜道を歩くときに前後で光らせたら目立つんじゃないかと思って。
ただし、まだケースは何も考えていないので、形にはなっていません。

白LEDがあるので、本当は電池4本(電池3本は嫌い)なり、昇圧回路なりを入れないといけないですが、単四2本の3Vで動かしています。LEDのデータシート見たら3Vでも数mA流れるので、まあいいか、と。
あ、乾電池2本用のケースに、電池一本と昇圧回路+Tiny10を押し込むのも良いかも。

|

« 秋の工作 続き | トップページ | 就学相談 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/9648/58435233

この記事へのトラックバック一覧です: ATtiny10(米粒AVR)でLEDチカチカ(Lチカ):

« 秋の工作 続き | トップページ | 就学相談 »