TOP > カテゴリ > ロボット・電子工作・マイコン >

ATmega328PにArduinoスケッチを書き込む [Arduino]

今回はブートローダを書き込み済みの「ATmega328P-PU」にArduinoスケッチを書き込みます。250円のATmega328P-PUが3000円のArduinoと同様に扱えるようになりますので経済的です。

1. Arduinoのマイコン

Arduino UNOには「ATmega16U2」と「ATmega328P-PU」というAtmel社(アトメル)のAVRマイコンが2つ搭載されています。

ATmega16U2はUSBコントール機能(USBシリアル変換)を有していて、パソコンのArduino IDEとATmega328P-PUを接続してArduinoスケッチをATmega328P-PUに書き込みをします。

Arduinoが動作するスケッチがあるのはATmega328P-PUですので、ArduinoからATmega328P-PUを取り外してATmega328P-PU単体で動作させる事が出来ます。

ATmega328P-PUの取り外しはATmega328Pの交換方法 をご覧ください。

2. スケッチの書き込み方法

いずれの場合も「ブートローダを書き込み済み」が前提条件です。

1スケッチを書き込みたい「ATmega328P-PU」をArduinoに搭載されているATmega328P-PUと交換すると、そのままいつも通りにスケッチを書き込むことが可能です。書き込みが完了したら取り外して、ブレッドボードやユニバーサル基盤で使用できます。
2ブレッドボードを使用してICSP(ISP)でスケッチを書き込みます。

今回は「2」の方法をご紹介します。

3. 使用部品・材料

総額で約880円です。(Arduino本体の値段を除く)

部品/材料値段備考
サンハヤト SAD-101 ニューブレッドボード¥500Amazon.com
AVRマイコン ATMEGA328P-PU ¥250秋月電子の通販コード(I-03142)
クリスタル(水晶発振子)16MHz¥30秋月電子の通販コード(P-08671)
絶縁型ラジアルリード型積層セラミックコンデンサー22pF50V±5%2.54mm 10個入¥100秋月電子の通販コード(P-04060)
カーボン抵抗器数円10kΩ(1個)を使用。

4. はじめに

ArduinoにArduinoISPスケッチを書き込み、Arduinoを「スケッチの書込装置」にします。(他のスケッチを書き込めば元に戻ります)

Arduino IDEのメニューの[ファイル][スケッチ例][11.ArduinoISP]の「ArduinoISP」を開きます。

メニューの[スケッチ]の「マイコンボードへ書き込む」で書き込みます。

5. 書き込みの配線図

ブートローダの書き込みと同じICSP配線です。

次はArduino公式より
https://www.arduino.cc/en/Hacking/PinMapping168

6. スケッチ(プログラム)

LEDを1秒毎に点灯させます。

void setup() {
 pinMode(8,OUTPUT);
}

void loop() {
  digitalWrite(8,HIGH);
  delay(1000);
  digitalWrite(8,LOW);
  delay(1000);  
}

7. スケッチの書き込み

メニューの[ツール][ボード]を「Arduino/Genuino UNO」に選択します。

次に[ツール][書き込み装置]を「Arduino as ISP」にします。

[スケッチ]の「書き込み装置を使って書き込む」を選択します。

これでArduinoスケッチの書き込みが完了です。

最後に書き込み装置を「AVRISP mkⅡ」(Arduinoの標準)に戻します。

8. 実行用の配線図

この配線例ではArduinoを「5V電源供給用」として使用しています。

本稼動する場合は乾電池などの電圧をそのまま使用するか、電圧を5V昇圧5V降圧をするなどの方法があります。

ATmega328Pのピン配置は前述したArduino公式の図をご覧ください。

最後に

今回は「クリスタル」(水晶発振子)と「積層セラミックコンデンサ」を個別に使用していますが、秋月電子には「一体型」で村田製作所のセラミック発振子(P-00525)があるようです。

クリスタルの周波数精度は誤差0.001%、セラミックの誤差0.5%ですので精度は落ちますが、合計で15円安くなります。

用途によって使い分けると良いかも知れません。





関連記事



公開日:2017年08月20日
記事NO:02533