AVRマイコンデビュー

近頃の電子工作といえばマイコンを用いたものが人気ですね。特にWiFiやBluetoothなどの無線デバイスを用いてスマホやwebと連携するようなものを製作されている方も多くおられ、自分もいつかはそんなことをしてみたいなあとあこがれてしまいます。マイコンと聞くとハードルが高いような気がして二の足を踏んでいましたが、数か月前から遅ればせながらAVRマイコンを使っていろいろ実験をはじめているところです。これまで試したのは、7セグメントLEDのダイナミック点灯、ADコンバータの実験、シリアルポートの実験などでしたが、まだそれで実用的なものを作れるようになるのにはもう少し時間がかかりそうです。まずは簡単なものから、IoTへの道も一歩から、というわけで、今回は季節柄クリスマス向けのLEDイルミネーションを作ってみることにしました。

今回はマイコンとしては小規模なもので十分なので、ATtiny2313を選びました。1個200~300円程度のチップです。まずはブレッドボードを用いてある程度設計を固めてから製作にかかりました。左側が実験中のブレッドボード、右側がその他の材料です。回路を収める箱とトナカイ型ツリーは近所の100均で購入したものです。
開発中のブレッドボードと材料

回路図はこんなふうになりました。メロディIC UM66T-01Lを接続してクリスマスの曲も鳴るようにしてみました。このICの消費電流は少ないのでマイコンの出力ポートから電源を取って動かしています。全体の電圧は青色LEDを駆動するために4.5Vとしましたが、UM66Tの電源電圧は3.3Vまでなのでダイオードを2本はさんで降圧しています。ダイオードにもたいした電流は流れないので、通常のスイッチングダイオードで十分です。今回は手持ちの関係で1S953というものを使用しました。基板上の端子の接続ですが、SOUNDには圧電スピーカーを、LED_CONにはLEDを接続します(カソードコモンで9番ピンがカソードとなります)。LEDの電流制限抵抗ですが、最初は青色LEDには68Ωを使用していたのですが、青色のみクリアタイプしか入手できなかったのでまぶしすぎ、120Ωに統一しました。この辺りは実際に試して調整してみたほうがよさそうです。電源は単4乾電池3本(4.5V)をPWR_CONのVccとGNDに、コントロールスイッチはGNDとSWの間に接続します(普通のモーメンタリ型プッシュスイッチでOKです)。
回路図

完成した基板。
組みあがった基板

ケースを加工して組み込んでいるところ。
ケースに組み込み中

消費電流を測定してみました。LEDが消灯している状態で数百μA、LEDが点灯するとその分(10~20mA/個)増える感じですね。LEDの点滅のタイミングはタイマ割り込みを利用して決めており、割り込み待ちの間はアイドルモードにすることで消費電力の低減を図っています。

[広告 ] VPS

今回はコントロールスイッチで電源をON/OFFする仕様にしています。マイコンのパワーダウンモードを使用していますので、電源OFF時の消費電流は0.3~0.4μAとかなり少なく抑えられています。
パワーダウンモードの消費電流

いちばん苦労したのはじつはここ。LEDを配線しています。コモン(カソード)側はジュンフロン線、アノード側は0.29mmのUEWを利用し、熱収縮チューブでまとめました。
LED配線中

完成したところ。ケーブルが太くてかなりみっともない…(汗)
完成

後側下部にコントロールスイッチがついています。このスイッチをON/OFFすることで電源ON/OFFが可能です。また、電源ON中に長押し(約1秒)することでメロディのON/OFFが切り替えられるようにしました。
後側

実際に動作させたところ。

[広告 ] VPS

プログラムとヒューズデータはこちらに置いておきます(バイナリファイルが.hex、ヒューズデータは.fus、その他はCのソースです)。今回は消費電力低減のためクロックを500kHzとしていますので、必ずヒューズデータも変更(CKSEL=0010, CKDIV8=0)してください。プログラムは特に複雑なことはしていません。乱数発生には線形帰還シフトレジスタ(LFSR)法を利用しています(コードはWikipediaのものをそのまま利用させていただきました)が、LFSRの数値をそのまま出力ポートに出してしまうとLEDが流れるように点滅する(「シフトレジスタ」なので…)ので、今回は乱数の値で個々のLEDの点灯時間、消灯時間を決定(短くなりすぎないように切り上げています)するという方法をとっています。なぜrand関数をあえて利用しなかったのかというと、LFSRなら将来的もっと小さいマイコン(tiny13とか85とか)にアセンブラでプログラミングをする場合にも使えそうなので、試してみたかったというわけです。点滅のタイミングは8msごとのTIMER0割り込みで処理しています。また、コントロールスイッチはINT0割り込みで処理しています。

マイコンも難しそうだと思っていましたが、試してみると意外と簡単ですね。開発環境はAtmelからダウンロードできますし(要ユーザー登録)、書込み器も数千円で入手できます。少ない部品点数でいろんなことができそうで、なかなか楽しいです。

参考書。
スポンサーサイト



テーマ : 電子工作
ジャンル : 趣味・実用

tag : AVRクリスマスマイコン電子工作ATtiny2313ツリートナカイKiCad

アクセスカウンタ
カレンダー
11 | 2015/12 | 01
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新記事
最新コメント
リンク
カテゴリ
楽天お勧め商品
検索フォーム
Kyoroのつぶやき
FC2掲示板
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示