目次
突然、動かなくなったArduino
以前の記事で、Arduinoを使ったモーター駆動回路の組み立てを行っていた時でした。誤って12Vラインの電源をデジタルピンに接触させてしまい、接触した瞬間にTX,RXのLEDが激しく点滅し、数秒後にはArduinoの出力がH状態のまま不動状態。Arduinoを破壊してしまいました。
Arduinoを破壊するには様々な方法がありますが、5Vと12Vの混成回路において、最も注意すべきArduinoに12Vを加えるという方法で見事にArduinoを破壊してしまいました。
今回は、こんな感じで動作しなくなったArduinoを修理する方法について紹介します。
「マイコン」の交換でArduinoは直る(可能性がある)
Arduinoに使われているマイコンは「Atmel AVR」と言います。このAVRと呼ばれるマイコンの中にはArduinoを構成するためのプログラムを書き込まれていて、それによりスケッチで書き込みが可能になります。このArduinoを構成しているプログラムをブートローダと呼びます。
つまり、話は簡単です。Arduinoを構成するマイコンが壊れたのであれば、マイコンを交換すればArduinoを再び使えるように出来るということです。Arduinoに使われているマイコンのATMEGA328P-PUは秋月電子などのパーツショップで1個200円くらいなので、交換で直るなら安く修理することが出来ます。
ただ、残念ながらArduinoのボード単体だけではマイコンにArduinoのブートローダを書き込むことが出来ません。
Arduinoのブートローダを書き込む方法には色々ありますが、一番簡単なのは動作するArduinoを使用して書き込む方法です。修理するためにArduinoをもう一台用意する必要があるのでArduinoが2台あれば直すことができる、程度の間隔で修理しましょう。
Arduinoのマイコンを交換する方法
Arduinoのマイコンを交換する方法は下の手順になります。
- 動かなくなったArduinoからマイコンを取り外して、新しいマイコンを装着する
- 動作するArduinoにArduinoISPスケッチを書き込む
- Arduinoを配線する
- Arduino IDEからブートローダーを書き込む
詳細についてはArduino公式のArduino as ISP and Arduino Bootloadersに詳しい記載があります。
1. Arduinoに新しいマイコンを装着する
マイコンを差し込んである部分はソケットになっているので、マイナス精密ドライバーなどで差し込んでこじ開ければマイコンだけを取り外すことが出来ます。
新しく取り付けるマイコンは、ソケットに対して少し足が開いているので、平面な板の上などに当てて足を少し内側に変形させてから差し込みます。
2. 動作するArduinoにArduinoISPスケッチを書き込む
新しいマイコンにブードローダーを書き込む前に、動作するArduinoへブートローダー書き込み用のスケッチを書き込まなければなりません。
Arduino IDEを開き、ファイル ー スケッチ例 ー 11.ArduinoISP ー ArduinoISP の順に選択すると、Arduinoをブートローダー書き込みできるようにするスケッチが現れるので、そのまま書き込みを行います。
3. Arduino同士を配線する
Arduino同士をリード線で繋げます。接続は以下のようになります。
PROGRAMMER:Aruduino ISPを書き込んだArduino
TARGET:新しいマイコンを装着したArduino
- PROGRAMMER 5V – TARGET 5V
- PROGRAMMER GND – TARGET GND
- PROGRAMMER DIGITAL 10 – TARGET RESET
- PROGRAMMER DIGITAL 11 – TARGET DIGITAL 11
- PROGRAMMER DIGITAL 12 – TARGET DIGITAL 12
- PROGRAMMER DIGITAL 13 – TARGET 5V DIGITAL 13
4. ブートローダを書き込む
配線が終わった後に「ツール – ブードローダを書き込む」を選択すると、TARGETにARMマイコンにブートローダが書き込まれます。
正常に書き込まれたら、そのままTARGET側の配線を外して、通常のArduinoのようにスケッチを書き込んで動作確認でOKです。
ブートローダ書き込み済みのマイコンも売られています
Arduinoを直すためにArduinoを新しく買うなんてありえない!マイコン交換だけでなんとかしたい!と言う方のために、世の中にはブートローダ書き込み済みのAVRマイコンも販売されています。
ブートローダ書き込み済のマイコンに交換すれば、ブートローダに書き換える手間もなく差し替えるだけでOKです。
まとめ|直せるArduino、直せないArduino
見た目では壊れてなさそうで、Arduino IDEで書き込むことができない状態の場合のみ、マイコンの交換でArduinoを直すことが出来ます。
Arduinoを通電した時の現象を確認して、以下の2点を満たしていいれば今回の方法で直せる可能性が考えられます。
- 電源を入れるとON LEDが点灯する(電源ラインが破損していない)
- パソコンにUSB接続するとArduinoとして認識する(USB変換ICが破損していない)
要は、マイコン以外が破損していない事が絶対条件です。
マイコンが破損する原因は、入出力(I/O)端子に「過電圧を加える」「過電流を流す」が該当します。壊れたマイコン自体を修理することはできませんが、Arduinoを構成しているボードをそのまま転用することでArduino Unoとして使い続けることができます。
こんな場合は諦めた方がよさそうです
- 電源を投入してもLEDが点灯しない。
この場合は、Arduino上の5Vレギュレータの破損かヒューズの断線が疑われます。交換すれば直すことが出来ますが、電源ラインが破損すると連鎖的に他の部品にもダメージを与えてしまっている場合があるので、交換しても直らないかもしれません。
- パソコンに接続してもデバイスとして認識しない。
パソコンとArduinoを繋ぐICが破損した可能性が考えられます。このICは手作業でのはんだ付けが難しく、はんだごてでのIC交換は不可能です。逆にこの状態ではマイコンは壊れていないかもしれません。