ATmega328Pを内部クロック8MHzにして単独で動作させてみました。
これでクリスタルによる発振部分を無くすことができ、3V程度でも動作するようになります。方法は下記のとおりです。
- 「ArduinoToBreadboard」サイト からペbreadboard*.zip, をダウンロードする。(*は使っている IDE環境に合わせる)解凍したファイルをDocumentsArduinohardwareに置く。
- Arduino IDE で「ファイル>ケッチの例>ArduioISP」でスケッチを開く。「ツール>マイコンボード>Arduino /Genuino UNO」を選択。
- 「ツール>書込装置>Arduino as ISP」を選択してArduino Unoに書き込む。
- 一旦USBケーブルを外し、「Arduino Uno用ブートローダライタシールドの製作」で作ったシールドに内部クロック8MHzにしたいATmega328P取り付け、UNOに乗せる。(※)
- 再びUSBケーブルを接続し「ツール>マイコンボード>ATmega328 on a breadboard (8 MHz internal clock) 」を選択
- 「ツール>ブートローダを書き込む」
※、Arduino Uno用ブートローダライタシールドがない場合にはブレッドボードで以下のように結線します。
Arduino Uno | ATmega328 | 備考 |
5V | 7 | |
5V | 20 | |
GND | 8 | |
GND | 22 | |
RESET | 10uFのコンデンサーを介してGNDに接続 | |
10 | 1 | RESET |
11 | 17 | MOSI |
12 | 18 | MISO |
13 | 19 | SCK |
これでATmega328Pが内部クロック8MHzで動くようになります。
内部クロック8MHzで動くようになったATmega328Pは以下の様な結線で直接スケッチを
Arduino Unoから書き込むことができます。この時Arduino Unoは単にUSBシリアル変換のために使うのでArduino Uno上のATmega328Pは外しておきます。
Arduino Uno | ATmega328 | 備考 |
RESET | 1 | |
5V | 7 | |
5V | 20 | |
GND | 8 | |
GND | 22 | |
0 | 2 | RX |
1 | 3 | TX |
USBケーブルを接続し「ツール>マイコンボード>ATmega328 on a breadboard (8 MHz internal clock) 」を選択してから、スケッチを書き込みます。
ボタン電池で稼働
内部クロック8MHzで動かすとスピードは遅くなりますが、3V程度で動き消費電力が少なくなるというメリットがあります。