どうも、なかしーです。
僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
Arduinoにプログラムを書きこめないんだけど、なんでだろう?
という悩みを解決します。
Arduinoでプログラミングをしていると一回は通るであろう「プログラムを書きこめない」現象。
順を追って確認すれば原因が分かるかもしれません。
しかし、Arduinoを始めたばかりの方は分からないことだらけで「何から確認して良いか分からない」と思います。
プログラムがやっとできたのに、書き込めないとイライラしてしまうことも・・・
そこで、マイコンを仕事で扱っている僕が「Arduinoの書き込みエラー時に確認したいポイント」について紹介します。
故障と判断してArduinoを捨てる前に紹介する内容を一通り確認することをおすすめします。
ちなみに、電子回路の競技大会で電子回路やプログラミングの修理をしていたので不具合の発見は得意です!
Arduinoの書き込みエラー時に確認するポイント
一生懸命プログラムを考えてコンパイルまで通ったのに、Arduinoにプログラムを書きこもうとするとエラーが出てしまう場合は次のポイントを確認しましょう!
- USBケーブルを挿していない
- USBのポートを設定していない
- プログラムのコンパイルエラー
- ArduinoのTxもしくはRxピンに繋いでいる回路の影響
詳しく紹介します。
USBケーブルを挿していない
USBケーブルを挿していない状態でプログラムを書こうとするとエラーになります。
僕はよくやってしまいます(笑)
avrdude: ser_open(): can’t open device “\\.\COM3”:パソコンのディレクトリ
この場合はUSBケーブルをArduinoとパソコンにしっかりと挿しこみましょう。
時々、挿しているように見えて抜けかかっているケースもあるので、注意が必要です。
USBのポートを設定していない
Arduino IDEをインストールしたときに設定していれば問題ないと思いますが、パソコン側でUSBケーブルを挿す場所を変えたりするとポートが変わってしまう可能性があります。
マイコンボードに書き込もうとしましたが、エラーが発生しました。
その場合は「ツール」→「シリアルポート」で確認しましょう!
また、ボードの種類が違うと同じくエラーになります。
プログラムのコンパイルエラー
Arduino IDEの左上にある「右矢印のボタン」を押すとコンパイル後にプログラムを書きこんでくれます。
そもそもプログラムがエラーになっていると書き込むことができません。
下のメッセージ画面にエラーの内容が表示されるので、コンパイルしてエラーが表示されないように修正しましょう。
よくあるコンパイルエラーはこんな感じです。
- 処理の文末にセミコロン(;)を忘れてないか?
- カッコを忘れていないか?
- 宣言した変数の大文字と小文字を間違えていないか?
ArduinoのTxもしくはRxピンに繋いでいる回路の影響
Arduino以外のマイコンだと、プログラムを書く時にプログラムライターという機器が必要です。
ArduinoはUSBを挿すだけで、書き込むことが出来るのはマイコンとパソコンの通信を仲介してくれるマイコンがあるからです。
プログラムを実行しているマイコンとは別にあります。
2つのマイコン間はUART通信でデータのやりとりをしており、通信線として使っているのがTxピンとRxピンです。
プログラムを書きこむときに、このTxとRxピンに回路が繋がっていることで通信を妨害し、エラーになることがあります。
その場合はTxピンとRxピンに繋がっている線を抜いてからプログラムを書きこんでみましょう!
それでもArduinoに書き込めない時は
もしも、上で紹介した4つを確かめてもArduinoにプログラムを書きこめずにエラーになるようでしたら、Arduino自体が壊れている可能性があります。
壊れる原因として考えられることは
- 電流を流し過ぎた
- 短絡させてしまった
- 経年劣化
電子部品やマイコンには限界値があり、その値を超えると高確率で壊れます。
(製造誤差で生き残ることも)
回路を設計する時は必ずデータシートを読んで、限界値よりも余裕をもった値にすることが壊さないコツです。
データシートについて知りたい方は「データシートの読み方」をご覧ください。
データシートの読み方を分かりやすく解説【電子工作を始めた方向け】Arduinoの書き込みエラー時に確認したいポイント|まとめ
この記事では「Arduinoの書き込みエラー時に確認したいポイント」について紹介しました。
エラー時に確認するポイントは次の通りです。
- USBケーブルを挿していない
- USBのポートを設定していない
- プログラムのコンパイルエラー
- ArduinoのTxもしくはRxピンに繋いでいる回路の影響
それでもダメな場合は壊れている可能性が高いです。
当ブログでおすすめしているArduinoの入門キットはこちらです!
Arduino関連の人気記事
>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】
>>Arduinoをゼロから勉強する方法を紹介【参考書は不要】
>>Arduinoのプログラムの書き方【基本的なルールは4つある】
当ブログで人気のArduino入門キット