質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

1041閲覧

Arduino Pro Micro5Vの書き込みができなくなりました

UDON3

総合スコア80

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2018/06/14 13:13

編集2018/06/17 11:45

前まではできたのですが、COM10として認識していたものが、書き込み中にCOM6と認識され書き込むことができなくなりました。リセットを使って書き込む方法もできませんでした。ボードはSparkfun Pro Microでボードマネージャーからインストールして書き込みました。もしかしたら、一度Aruduino Pro Micro3.3Vのモードで書き込んだのが原因かもしれません。

このようなログが出ました

最大28672バイトのフラッシュメモリのうち、スケッチが6868バイト(23%)を使っています。 最大2560バイトのRAMのうち、グローバル変数が292バイト(11%)を使っていて、ローカル変数で2268バイト使うことができます。 avrdude: ser_open(): can't open device "\.\COM6": 指定されたファイルが見つかりません。 マイコンボードに書き込もうとしましたが、エラーが発生しました。 このページを参考にしてください。 http://www.arduino.cc/en/Guide/Troubleshooting#upload

該当のソースコード

#include <Digitizer.h> #include <Keyboard.h> #include <Mouse.h> #define EnableMouse 7 #define Ctrl 8 #define Shift 9 const int AD = A2; const int WS = A3; const int xAxis = A1; //analog sensor for X axis const int yAxis = A0; // analog sensor for Y axis int range = 12; // output range of X or Y movement int responseDelay = 10; // response delay of the mouse, in ms int threshold = range/4; // resting threshold int center = range/2; // resting position value int minima[] = { 1023, 1023}; // actual analogRead minima for {x, y} int maxima[] = { 0,0}; // actual analogRead maxima for {x, y} int axis[] = { xAxis, yAxis}; // pin numbers for {x, y} int mouseReading[2]; // final mouse readings for {x, y} int xAD = 0; int DyWS = 0; void setup() { Keyboard.begin(); pinMode(Ctrl, INPUT_PULLUP); pinMode(Shift, INPUT_PULLUP); pinMode(EnableMouse, INPUT_PULLUP); Mouse.begin(); Serial.begin(9600); } void loop() { // read and scale the two axes: int xReading = -readAxis(0); int yReading = readAxis(1); if(digitalRead(EnableMouse) == LOW){ Digitizer.move(0,0); delay(responseDelay); } } /* reads an axis (0 or 1 for x or y) and scales the analog input range to a range from 0 to <range> */ int readAxis(int axisNumber) { int distance = 0; // distance from center of the output range // read the analog input: int reading = analogRead(axis[axisNumber]); // of the current reading exceeds the max or min for this axis, // reset the max or min: if (reading < minima[axisNumber]) { minima[axisNumber] = reading; } if (reading > maxima[axisNumber]) { maxima[axisNumber] = reading; } // map the reading from the analog input range to the output range: reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range); // if the output reading is outside from the // rest position threshold, use it: if (abs(reading - center) > threshold) { distance = (reading - center); } // the Y axis needs to be inverted in order to // map the movemment correctly: if (axisNumber == 1) { distance = -distance; } // return the distance for this axis: return distance; }

試したこと

リセットのON、OFFをコントロールして書き込むことだけではできませんでした。
ブートローダーが壊れているかもしれないので、ブートローダーの書き換え方法を教えてください。
また、そのほかに知っている方法があれば教えてください

補足情報(FW/ツールのバージョンなど)

Arduino1.8.5(WindowsStore1.8.10.0)
コンパイルエラーは出ませんでした

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Arduinoのブートローダの修復方法
マイコンモジュール 「PM32U4」(Pro Micro クローン,ATmega32U4) を使う
グーグル検索 Arduino ブートローダーの書き換え

WindowsでArduino Leonardo,micro,EsploraなどATmega32U4ベースのマイコンボードでファームが古い場合、挿した直後と正常起動後のポートが変わる場合があります。ボード上の「L」LEDの点滅が終わってからポートを確認して下さい。最新のファームの場合、「L」LEDが光らず直ぐに使える様になる様です。

google検索 arduino 書き込めない

「ファイル >> 環境設定 >> 書き込みを検証する」にチェックをいれた状態で書き込みを行い、

画面下,黒い部分に「PORTS {} / {} => {}」と表示されたタイミングでリセットボタンを押下する

上記COMポート問題の該当モデルであるようです、

しかしそういう問題ではなかった場合は、USB給電の不足(接触不良)やノイズ等…、
原因は色々考えられますが突然COMポート番号が変わってそこから動かなくなったとなりますと、
書き込み中に何らかの原因で再起動~別デバイスとして認識された、
と考えるのが妥当ですね。

「一度Arduino Leonardoのモードで書き込んだ」のは関係なさそうです、
その後普通に動いていたのであれば。

とりあえずブートローダーの書き換えですかね。

投稿2018/06/14 13:33

shinobu_osaka

総合スコア456

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

UDON3

2018/06/17 11:46

Aruduino Pro MicroのCOMポートが数秒間しか認識されず書き込みする時間がないのです。 ひとまず期末テスト週間に入ってしまったので、保留にさせてください。
UDON3

2018/08/18 07:27

すみません、テストが済んだ後、他の質問に埋もれて忘れていました。 いろいろと試してみたのですが、いろいろなことを試しても効果がなかったため、これ以上時間をかけるのは無駄だと判断しました。お騒がせしました。
shinobu_osaka

2018/08/18 10:15

承知いたしました、 …たしかに、安いものですのでこれ以上労力をかけるより書い直すのが早いかもしれませんね。 またなにかありましたらいつでもどうぞ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問