ArduinoIDEからArduinoにコードを転送したときにエラーが出る場合、ボード種別やポート番号を間違えているという基本的な誤りの他、Arduinoのブートローダが壊れている可能性があるそうです。
類するエントリーはたくさんあるのですが自分のメモとして記録しておきます。
卒業研究でサーボモーターを使用している学生さんの動作検証のため、自分でもやってみようと素材を集めてArduinoにサーボを繋げてサンプルプログラムを送信するとエラー。。。が。
エラーメッセージをメモり忘れたのですが、転送を10回ほどリトライするようなメッセージが出ます。
対処方法はArduinoの公式サイトに書かれているのですが、日本語にしてくれた人がいますのでそちらをありがたく利用させてもらいましょう。
Arduino を AVR プログラマ(ISP: In-System Programmer)として使う
ブートローダの書き込みにはライタを購入する方法もあるようですが、僕は手元にArduinoが複数あったので、一番上のArduinoで書き込むやつを実行しました。
配線図の通りに結線していかのような感じです。ちなみに図と写真はArduinoが逆(書き込む方と書き込まれる方)になっています。
結線したのちに、ライタとして利用するArduino(要は写真のUSBケーブルがつながっている方)にライタプログラムを転送します。そのプログラムは スケッチの例ー11.ArduinoISPーArduinoISPにありますのでそれを読み込んで検証ボタンを押し、マイコンボードに書き込むボタンを押します。
正常に転送できたら、結線はそのままで、書き込みたいArduinoのモデルと上に乗っているICの型番を目視で確認して選択します。僕の場合はボードがDuemilanoveで、型番はATmega328でしたのでそれを選択しました。シリアルポートは...説明いらないですね。
で、書き込み装置を「Arduino as ISP」にして「ブートローダを書き込む」を選択します。
2つ壊れていたのですが1つはこれで復旧しました。もう1つはダメ。ぐぐって強制的に書き込むなどもしてみましたがダメでした。とりあえず放置です。
具体的には