目的
故障したarduino、故障inoを手に入れたので原因を解明し、修理します。
環境はwin11 , arduino IDE 2.3.5 , arduino uno R3です。
仮説
症状はPC側でarduinoを認識できなくなったとのことです。
arduino IDEでcomポートを指定できなくなり、デバイスマネージャーを見てもarduinoが認識されてないようです。
comポートの欄にarduinoが認識されてない。
他のarduino unoでは動作するそうなので、原因はarduino側にありそうです。
考えられる理由は、
- ATmega328pが壊れた
- ATmega16u2が壊れた
あたりです。
検証
ATmega328pが壊れた可能性を検証するため、別のATmega328pに置き換えて検証します。
ちょうど部屋にブートロード済みのATmega328pが転がっていたので差し替えてみます。
ダメです、状況変わらずです。
どうやら原因はATmega328pじゃないようです。
ではATmega16u2が壊れた可能性を検証したいのですが、これは表面実装なので置き換えるのはハードルが高いです。
なので以前制作したシリアル変換を用いて接続してみます。
5V,GND,TX,RXを接続してシリアル変換器をPCに挿すと、arduino IDEで認識されました。
原因はATmega16u2だったようです。
このまま書き込みたいところですが、arduinoとCH340ではリセット信号の形式が違います。
詳しいことはこの方が調べてくださっているので割愛します。
コンデンサ、ダイオード、抵抗を挟むだけでできます。
もし、これがうまくいかない、めんどくさいならば無理やり書き込むこともできます。
方法は簡単。コンパイルされた後、書き込まれる直前にリセットボタンを目押しします。
書き込めるようになったのでしばらくはこのまま使うつもりですが、毎回ジャンプワイヤーを挿すのは面倒なので、16U2のファームウェアを書き換えてみるか、Arduinoのシールドを作成したいと思います。
いつか。