Arduinoが突然動かなくなった経験はありませんか?今回は、過電圧をかけた結果、Arduinoから変なにおいがして動かなくなったというトラブルを基に、ブートローダの再書き込みによる復旧方法を解説します。さらに、マイコンそのものが壊れていなかったことが分かった経緯についても触れます。
概要
Arduinoが動かなくなった場合、「マイコンが壊れた」と考えがちですが、必ずしもそれが原因ではありません。過電圧やショートが原因で基板やUSB通信部分が壊れている可能性もあります。
今回のケースでは、Arduinoに過電圧をかけた際に、変なにおいがして動作しなくなりました。マイコンを交換して復旧を試みた結果、マイコンは正常であることが確認され、原因は基板やUSB通信部分にあると推測されました。このブログでは、その復旧手順を詳しく解説します。
手順
1. 準備するもの
- 正常なArduino(プログラマとして使用)
- 異常なArduino(復旧対象)
- USBケーブル
- ジャンパワイヤやブレッドボード
2. ピンの接続
まず、正常なArduinoと異常なArduinoを以下のように接続します。
正常なArduino (プログラマ) | 異常なArduino (ターゲット) | 役割 |
---|---|---|
D10 | RESET | リセット信号 |
D11 | D11 (MOSI) | SPI データ送信 |
D12 | D12 (MISO) | SPI データ受信 |
D13 | D13 (SCK) | SPI クロック信号 |
GND | GND | グラウンド |
5V | 5V | 電源供給 |
3. 正常なArduinoにArduinoISPを書き込む
- Arduino IDEを開く。
- 「ファイル」→「スケッチ例」→「ArduinoISP」を選択。
- 正常なArduinoをUSB接続し、「スケッチを書き込む」を実行。
4. ブートローダを書き込む
- ツールメニューで以下を設定:
- ボード: 異常なArduinoのモデル(例: Arduino Nano)。
- プロセッサ: 「ATmega328P」または「ATmega328P (Old Bootloader)」を選択。
- プログラマ: 「Arduino as ISP」を選択。
- 「ツール」→「ブートローダを書き込む」を実行。
- 「ブートローダの書き込み完了」と表示されたら成功。
5. 動作確認
正常なスケッチの書き込み
- 異常なArduinoをUSB接続。
- 簡単なスケッチ(例: Blink)をArduino IDEで書き込み、内蔵LEDが点滅するか確認。
エラーが発生した場合の例
avrdude: ser_open(): can't open device "\\.\COM4": 指定されたファイルが見つかりません。
Failed uploading: uploading error: exit status 1
このエラーが出た場合の対応方法:
- ポート設定の確認:
- 「ツール」→「ポート」で正しいCOMポートを選択。
- USB接続確認:
- ケーブルやUSBポートが正常に動作しているか確認。
- 基板の故障を疑う:
- USBチップ(MEGA16U2)やその他の回路の損傷を確認する。
まとめ
Arduinoが動かなくなった場合、焦らず以下の手順を試してください。
- ブートローダを再書き込みする。
- 異常なArduinoを正常に動作させるために、マイコンが壊れていないかテストする。
今回のケースでは、過電圧が原因で基板やUSB-シリアル変換チップ(MEGA16U2)が損傷した可能性が高いと考えられます。ただし、交換したマイコンは正常であることが確認されました。
原因はマイコンじゃなかった
過電圧によってArduino基板の一部が損傷していた可能性が高いです。特に、USB-シリアル変換チップ(MEGA16U2)の故障や基板内でショートが起きていることが考えられます。このようなトラブルを防ぐために、適切な電源管理や回路保護を行うことが重要です。