結論から記載すると、ドライバの再インストールで直りました。
困ったら再インストールするのがいいかもしれない!
発生した内容
Arduino Nano(互換機)を使用してプログラムを書き込もうとしたところ、書き込みエラーが発生しました。
amazonで購入した互換品だからかなー?とも思いましたが、購入してからは普通に使えていたので製品に問題があったわけではありません。
となると、PC境が原因?
とりあえず、Arduino IDE上のエラーメッセージは以下のようなものでした。
avrdude: ser_open(): can't set com-state for "\\.\COM4"
調べたところ、このメッセージは指定したCOMポートにアクセスできないという意味だそうです。
原因の確認
次に、何が原因かを考えました。その内容と結果についてまとめます。
原因候補1 COMポートの選択ミス
Arduino IDE上で、書き込むデバイスのCOMポートがしっかり指定されていない。
→PCにはArduino NANO1つしか接続していなかったので、選択していたポート(COM4)で問題ない。原因はこれじゃない。
原因候補2 シリアル通信を他のアプリが使っている?
他のソフトでシリアル通信をしている(Tera Termなどで接続しているとか)と通信ができず、書き込めません。ブラウザ、Arduino IDE以外すべて閉じでも、状況変わらず…これも違う。
原因候補3 ボード設定が違っている?
使っているマイコンとソフト上でしているボードが違うと書き込みができません。
今回は「Arduino NANO」。間違っていない。
ということで、これも違う。
念の為に行ったドライバの再インストール
上記3つを確認しましたが、解決せず…
ドライバがあたっていないのでは?と思い、デバイスマネジャーを開いてみました。
Arduino NANOでは、CH340というUSB・シリアル変換ICが使われています。
デバイスマネジャーを開いてUSBデバイスの項目を確認。
関連する部分に警告マークが表示されているとまずいのですが、特にその様子は無く、問題なさそうです。
でも念の為と思い、ドライバの再インストールを行いました。

ドライバは”CH340”とかで検索すれば出てきます。
今回は秋月電子さんのリンク(CH340の商品ページ)から入手しました。
インストール後、Arduino Nanoを再接続。
すると、COMポートが正常に認識され、無事にスケッチを書き込むことができました。
ドライバは問題ないと思っていたのに…

今回のまとめ
原因
CH340ドライバが何らかの理由で正常に動作していなかったため、Arduino IDEでデバイスを認識できなかった。(と考えられる)
症状
ser_open(): can't set com-state
というエラーで書き込み失敗となる。
解決策
ドライバの入れ直しをすることで解決しました。
Arduino Nanoなどのマイコンボードは安価な互換機が多く発売されていて、使いやすいと感じます。
しかし、使用する中で、今回のようなエラーが出ることもあるかもしれません。
大丈夫だと思っている内容についても、もう一度疑ってみるとよいかもしれませんね。
ということで、ここまで書き込みエラーがあったこと、その対処法についてまとめてみました。
同じ問題で困っている方の参考になればと思います!
コメント