Ardunoボードへのスケッチファイル書き込み時に発生するエラーの対処法について書いてみました。

スケッチのコンパイルが正常終了するとArduinoボードに対しコンパイルされたデータ(HEXデータと呼ぶ)を書き込み始めます、そしてこの時に発生するエラーを書き込みエラーと言います。

このエラーの発生要因は設定ミスによるものがほとんどでこの場合の対処法も割と簡単です。

今回はこの設定ミス修正をメインにドライバー再インストールなども記載してみました。

エラー画面

エラーが発生すると以下の図のように下部のステータスエリアのバックカラーがグリーンからオレンジに変化します。

エラー対処法①(ArduinoIDE設定の確認)

本来はエラーログの解析から入って原因究明、そして対策と進むのが正攻法なのですが、ほとんどの原因がArduinoボードに関する設定に起因するため、まずはこれら設定のチェックからスタートです。

ArduinoIDE設定「ボード種別」の確認

ArduinoIDE画面上のメニューバーの「ツール」の中の「ボード」サブメニューの内容をチェックします。

下図の様にボード種別が現在接続しているArduinoボードと合致していればOKです。(今回使用のボードは「ArduinoNano」)

ArduinoIDE設定「プロセッサ種別」の確認

次に、同じメニューバーの「ツール」の中の「プロセッサ」サブメニューの内容をチェックします。

(注.プロセッサー種別はすべてのArduinoボードに選択肢があるわけでは無く、選択肢が無いボード種別もあります、例えばArduino/Genuino Unoボードには選択肢はありません。)

下図の様にプロセッサ種別が現在接続しているArduinoボードと合致していればOKです。(今回使用のボードは「ATmega328P」)

ArduinoIDE設定「シリアルポート」の確認

ArduinoボードとPCとの接続がされているシリアルポート番号が選択されていればOKです。

ポート番号の確認にはデバイスマネージャーを開いてみるとわかります。

下の図でUSB-SERIAL CH340(COM4)と表示されている部分です。

デバイスマネージャー画面内に表示が出てこない場合は何らかの原因でCH340ドライバーが壊れている可能性がありますので次に記載のドライバー再インストールを実施してみること。

注)ArduinoボードをUSB接続しないと表示が出てきませんので注意してください。

エラー対処法②(ソフト再インストール)

ArduinoIDEの設定に問題がみられない場合は、次のステップとして関連ソフトウェアの再インストールを行う。

ArduinoIDEの再インストール

Windowsメニューの「設定」から入って「アプリ」画面にて手動でアンインストールを実施後に通常のインストールを行う。

インストールファイルは「arduino-1.8.5-windows.exe」(V1.8.5の場合)

でも、よほどのことが無い限り不具合により再インストールまで及ぶことは無くて原因がよくわからないがとりあえず再インストールというケースが多いです。

CH340ドライバーの再インストール

Windows 標準のアンインストール機能からではなくてインストール時に使用したファイル「CH341SER.EXE」を起動して画面内のUNINSTALLボタンをクリックすることでアンインストールが完了、そのまますぐにINSTALLボタンをクリックすることで再インストールが完了します。

注)ArduinoボードとPC間はUSBケーブルを接続しておいた方が良いです。

注)CH341SER.EXEを起動直後に「このアプリがデバイスに変更を加えることを許可しますか?」という画面が表示されるので「はい」で先に進むこと。

尚、UNINSTALLとINSTALLの各ボタンクリック後の処理終了時にメッセージ(英文)が表示されます。

INSTALL終了時

UNINSTALL終了時

エラー対処法②(ハードウェア関連)

それでもエラーが消えない場合に疑うのはハードウェアの不具合です。具体的には以下のケースですが対処法は部品交換になります。

ただし、このケースになることもほとんどありませんので部品不具合かどうかの切り分けのために普段から同じものを2個用意しておくとよいでしょう。

USBケーブル

断線とかコネクタの接触不良とかの可能性があります。

Arduinoボード

最大定格を超えてしまった時とか、電源極性を逆に接続したとかがあります。

  • 供給電源電圧の最大値:DC7V
  • 各ピンの最大電流値:40mA
  • チップ全体の最大電流値:200mA

それでも書き込みエラーが無くならない!

個別の現象により対応がことなるので’エラーログの取得からまずは初めて見ると良い。

今後、具体例が出てきたら別途レポートします。