Arduinoから取り外したATmega328を外付け水晶振動子(発振子)で動作させる。

これまでにArduinoを用いていくつかの工作をしてきました。 円高とはいえArduino Unoは1個3000円程度で、 別の目的の工作を作る度に買い換えるのはもったいないですね。 今回は安上がりに工作をするために、 Arduino Unoを単なるプログラムの書き込み機として用い、 実際の応用ではIC素子(ATmega328)のみ単独で動作させる方法を調査しました。

本手法を用いて 低消費電力のデータロガーを作りました。


ATmega328のアナログ入力値に併せてLEDの点滅を制御した例。(YouTube動画)
電源は安定化しておらず、単三電池4本そのままです。

ブートローダーの書き込み

買ってきたばかりのATmega328には何も書き込まれておらず、 このままではArduinoのボードに差してもプログラムを書き込むことはできません。 マイコンに詳しい方は、自分でブートローダーを書き込んで使える状態に できるそうなのですが私は経験がありません。(検索するといくつかの手法が見つかります。)。 そこで、Arduino用に の ブートローダーを書き込んだATmega328をスイッチサイエンスから 購入することにいたしました。350円、高いか安いか良く分かりませんね。 でも、毎回3000円払うよりは良いですし、環境に優しいですね。

追記:[Aruidno duemilanoveを 用いてATmega328ブートローダーを書き込む]で簡単にブートローダーを書き込む方法を示しました。

外付け部品

クロック用の水晶発振子が必要となりますので 標準の 16 Mhzを用意いたしました。これを変えてしまうと delayなどの時間に関係する関数が全てシフトしてしまいます。 Atmega328が350円、水晶発振子とセラミックコンデンサは50円程度ですので Arduino Unoを1台持っていれば、500円で作成可能ですね。

手順

以上の準備が出来たら、残りは簡単です。

  1. Arduino Unoを使って動作するスケッチを書き込む
  2. Arduino UnoのボードからATmega328を取り外す
  3. ATmega328をプレッドボードや基板に取り付ける
  4. 水晶発振子、コンデンサ、動作のための入出力を取り付ける

Arduino Unoには新たに買ってきたAtmega328を差しこんでおけば 新品同様に使えます。(ブートローダーの書き込みは必須です)。

Arduinoからの取り外し

小さいマイナスドライバーを差しこんでゆっくりと持ち上げれば 簡単に外すことが出来ます。


接続端子の確認

ATmega328の端子番号をチェックして水晶発振子とコンデンサを取り付けます。


ATmega328の端子の名称(Arduino スケッチでの呼び名)と水晶発振子の接続。

動作状況

単三電池4本からの、安定化されていない電圧でも正常に動作しました。 アナログ入力端子5番から電圧を読んで、 それに応じた周波数で赤LEDを点滅させました。 ATmega328のデータシート(簡易版)などを参照しますと 周波数に対して必要な電圧が指定されています。今回のような外部クロックを用いる場合には 4 MHzでは1.8 V, 10 MHzでは2.7 V, 最大の20 mhzで4.5 Vのようです。今回試した限りではVcc=3.3 Vでは16 MHzでの動作は出来ず、5 Vが必要でした。 3.3 Vで走らせるためには、クロックを半分の8MHzなどとすると良いかもしれませんね。
(この後チェックで、AVccへの電力供給がなされていないミスが見つかりました。 3.3 Vでも16 MHzで動作するようです。)


動作状況。


プレッドボード上の回路。
右下の抵抗はアナログ入力への電圧を決めるために使用。
入門書を一冊買って読みながら作るとすぐに覚えられます。(私も初心者です)。
電子工作の入門書
戸田システムウェア

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2011 TYK