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

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

ただいまの
回答率

90.82%

  • Arduino

    459questions

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

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

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 31

UDON3

score 6

 前まではできたのですが、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)
コンパイルエラーは出ませんでした

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+1

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/17 20:46

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

    キャンセル

  • 2018/06/18 01:33

    了解しました。

    キャンセル

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

  • ただいまの回答率 90.82%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    arduinoと温度センサ

    arduinoと温度センサ arduinoで温度センサを自作しようと考えています。 そこで、7セグLED温度センサのPICをarduinoで代用出来ないかと考えました。マイコン→A

  • 受付中

    この問題のプログラムはどうなるのですか?

    実現したいこと 初歩的な質問だとは思うのですが、答えていただけると幸いです 下の問題を解くとプログラムはどういう風になるのかプログラムを書いていただけると幸いです。 お願いし

  • 解決済

    Cで行列のランク計算のプログラムを作っています。

    前提・実現したいこと Cで行列のランク計算をするプログラムを作っています。 プログラムの流れは、 1.行列の行数(lnum)、列数(cnum)を入力 2.行列の各成分を

  • 解決済

    ステッピングモータ 28BYJを距離センサHC-SR04を用いて制御したい

    ステッピングモータ 28BYJを距離センサHC-SR04を用いて制御するために、以下のコードを書いています。ものが検出されたら、ステッピングモータが回るという感じです。各センサは単

  • 解決済

    OpenCVにおける、色のオーバーフロー問題

    前提・実現したいこと 色に色を加算して、色の混合をしようとしています。Microsoft office付属のpicture managerの色の補正機能のようなことを、CUIにした

  • 受付中

    arduinoのtime関数について

    前提・実現したいこと arduinoと心拍センサ(http://ssci.to/1135)を使って5秒間だけ値を読み取りその中で平均の値を出したいです。 現状はセンサの値に合わ

  • 受付中

    検出結果を修正・拡張したいです

    前提・実現したいこと 移動しているボール(ジャグリングなど)を検出して円を描くプログラムです。OpenCVで移動体検出を使ったサンプルをいくつかつなぎ合わせたハリボテプログラムなの

  • 解決済

    string空白ありで何個目かの文字列を取り出す

    空白ありで何個かの文字列を受け取り 何個目かの文字列を表示したいのですが 思い通りに動きません 条件は受け取る文字列はわからない例"okada saitou kimura is

同じタグがついた質問を見る

  • Arduino

    459questions

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