Arduino Microにスケッチを送るときに、反応しなくなってしまった場合の対処方法を説明します。
Arduino Microが反応しなくなるケース
プログラミングをしていくと、だんだん一発でうまく動作する、ということが少なくなってきます。
自分の思った通りに動作しないだけだったらいいのですが、Arduinoが変な動作を始めてスケッチが書き込めなくなることもあります。
Arduinoにスケッチが書き込めなくなってしまうのには、いくつかのケースがあります。主な原因は接続したPCに大量のデータを送りつけてしまう場合です。例えば、Serial.println()
で連続して大量の情報をシリアルモニタに送りつけてしまう場合や、今回製作しているキーボードでは大量の文字をPCに送り付けてしまう場合などです。
このような状態になると、Arduino IDEはArduinoボードに対して「スケッチを書き込みます」という信号を送れなくなってしまい、結果としてスケッチの書き込みができなくなってしまいます。
キーボード製作に限らず、いろいろなケースでこのような状態になってしまうことも十分想定されますので、Arduinoには対処方法が用意されています。これから、その方法と手順について説明します。
Arduino Microに強制的にスケッチを書き込む方法
Arduinoに対してスケッチが書き込めなくなってしまった原因は、結局のところ書き込んだスケッチが誤動作をしてしまっているためです。
そこで、Arduinoには書き込んだスケッチの動作を止めて、強制的にスケッチを書き込むモードにしてくれる方法が用意されています。このようにすれば、スケッチの動作がどんなにおかしくても、Arduinoにスケッチを書き込むことができるようになります。
手順としては以下のようになります。
- Arduino Microのスケッチ動作を強制的に止める
- Arduino Microがスケッチ書き込みモードになるので、Arduino IDEからスケッチを書き込む
手順としては簡単ですが、注意点があります。
(1)でスケッチ動作を強制的に止めても、8秒間の間にスケッチの書き込みがないとスケッチの動作を開始してしまう、という点です。
この8秒の間にスケッチを書き込む必要があるので、この手順は速やかに行う必要があります。
それでは、次に具体的な手順を説明します。
スケッチが書き込めなくなったArduinoに強制的にスケッチを書き込む手順
最初にArduino Microを強制的にスケッチ書き込みモードにする方法を説明します。強制的な書き込みモードがどのようになるのか、一緒に確認してみましょう。
確認する前に、ジャンパワイヤが1本必要になりますので準備しておいてください。
それでは、実際にどのような動きになるのか確認してみましょう。
最初にArduino MicroをPCに接続してください。接続すると当然ながら不具合があってもスケッチが動作を開始します。
この状態で、以下のように準備したジャンパワイヤの片方をマイナスのラインのどこかに接続します。
次にジャンパワイヤのもう片方を手で持ち、Arduino Microの「RS」と書かれたピンのラインを短い間隔で2回ポンポンと接触させます。マウスをタブルクリックするイメージでしょうか。短い間隔といってもすごいスピードで2回接触させる必要はありません。落ち着いてポンポンと2回接触させます。
うまくいくと、Arduino Microの以下のLEDが点滅を開始します。このLEDが点滅している間、強制的にスケッチを書き込むモードになります。8秒間放っておくと、LEDの点滅が止まって元々書き込まれているスケッチの動作を再び開始します。
うまく書き込みモードにできましたか? 緑色のLEDが8秒程度ゆっくり点滅すれば成功です。
ところで、キーボードのプログラミングに失敗してしまうと、PCに大量の文字を送りつけることになりますので、この仕組みを利用してスケッチを書き込む場合にはちょっと工夫が必要です。その内容も含めて以下に手順を説明します。
なお、以下の手順の前に、Arduino MicroをPCから外しておいてください。
手順1) Arduino Microに書き込むスケッチを準備する
スケッチ書き込みモードは8秒間ですので、この間にスケッチを書き込む必要があります。長いスケッチを書き込むと時間がかかってしまいますので、何もしないスケッチを書き込むようにします。
Arduino IDEの「ファイル」メニューから「新規ファイル」を選択し、新規スケッチを適当な名前で保存しておきます。
これでこれから書き込むスケッチが準備できました。
手順2) エディタなどのアプリケーションを起動しておく
Arduino Microが大量の文字をPCに送り付けてしまう場合、スケッチウィンドウをアクティブにしたままですと、スケッチに文字が大量に書き込まれてしまいます。
そこで、テキストエディタアプリなどを立ち上げておき、Arduino Microから送りつけられてしまう文字データをそのエディタで受けるようにします。
手順3) Arduino MicroをPCに接続する
Arduino MicroをPCに接続します。文字大量送りつけスケッチの場合、エディタに文字がどんどん表示されます。
手順4) Arduino Microをスケッチ書き込みモードにする
Arduino Microを先ほど説明した手順でスケッチ書き込みモードにします。
手順5) Adruino IDEのスケッチウィンドウでスケッチ書き込みボタンを押す
Arduino Microの緑色のLEDがゆっくり点滅を開始したら、先ほど準備した何もしないスケッチを書き込みます。
手順4と手順5に手間取ってしまうと、8秒間の間にスケッチが書き込めませんので、スムーズに作業するようにしてみてください。
以上の手順で何もしないスケッチを書き込むことができましたので、このあとはArduino Microは正常に反応します。通常の手順でスケッチを書き込むことができます。
更新履歴
日付 | 内容 |
---|---|
2021.10.3 | 新規投稿 |