Использую Arduino Micro Pro (определяется в системе как Leonardo). Сразу после прошивки все работает замечательно, данные по Serial передаются. Но после перевтыкания USB или выкл/вкл питания связь с компом теряется, COM порт просто пропадает насовсем (до следующей прошивки). В вики в описании Leonardo сказано: При сбросе микроконтроллера его соединение с компьютером теряется и поднимается заново. Это усложняет процесс прошивки, но не должно являться особой проблемой, т.к. Arduino IDE поддерживает этот процесс. Но обратно то оно не восстанавливается. Просьба проверить так ли это, или где-то у меня косяк?
М-да, это не лечится, это особенность эмуляции COM на ATmega32u4. Будем переходить на другую ATmega. P.S. Может кому нужна Arduino Pro Micro?
Достал свою Leonardo (ATmega32u4), у меня официальная, не использую именно из-за капризного COM порта. Подключил, открыл Arduino IDE залил, все ок, COM порт 31, после переподключения COM порт становится 30. Но залить новый скетч не возможно. Как решается у меня, не отключая Leonardo, закрываю все окна Arduino IDE, после чего заново открываю Arduino IDE. Leonardo уже определяется на 31 COM порту и мы снова можем заливать Leonardo. Стоит отключить, все по кругу. UPD. Arduino IDE 1.0.6
во-во. Номер порта меняется. Цель была такая - МК мониторит показания и выводит в COM-порт в некую программу (не IDE), и каждый раз выбирать в ней новый номер порта - не вариант. Буду Nano Pro использовать, там USB аппаратный.
Не совсем так, номер порта меняется, но залить на него нельзя. А при закрытии Arduino IDE и последующем открытии он возвращается, после чего можно залить скетч. Стало любопытно, после обеда гляну, сделаю программку на C#. Определить порт, не составляет проблем, можно перебором + отправка, а при получении слать команду "я тебя нашел" и переводить программу в рабочий режим, для Windows можно через WMI и т.д. С ним, все куда более проще и возможностей значительно больше.
Нашел, свой старый тестовый проект, на базе найденного в сети, немного изменив Да однажды, он поменялся. Но только один раз, не могу говорить о закономерности. Код ардуины Код (Text): /* Blink without Delay */ const int ledPin = 13; int ledState = LOW; unsigned long previousMillis = 0; const long interval = 1000; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ledPin, ledState); Serial.println("Hello!"); } } Код C# вставил в прищепку + приложение (определение порта WMI), требует .Net 4.0 или выше. Использовать Leonardo можно, просто надо учитывать ее особенности.
Мои 5 копеек. Точнее pro micro (в миру - Леонардо). 1. Залил скетч мигания с периодом 1 секунда. Мигает. 2. Все выключил, от USB отключил и снова включил. Мигает с периодом 8 секунд. Наткнулся на обсуждение программного RESET в Ардуино и попробовал принцип Альтшулера: послушай женщину и сделай наоборот. Сделал наоборот: наплевал на программный сигнал и припаял с RESET на землю 0,5 мкФ, т.е. аппаратный сброс при включении питания.. Все заработало. Пока работает.