Влияние SERIAL соединения на состояние PIN

jurijt
Offline
Зарегистрирован: 27.07.2016

Добрый день уважаемый All!

 

Прошу помочь разобраться.

Нахожусь ближе к начальной стадии изучения Arduino

Плата Arduino UNO,  из поднебесной.

 

Начал ковыряться с iButton с использованием Serial соединения для отладки. «Считыватель» iButton у меня с встроенным LED-ом, который просто подключил, пусть пока погорит для красоты, а программирование его оставил на потом. Заметил интересную особенность, что LED который вроде бы должен просто постоянно гореть, реагирует на запуск Arduino IDE и запуск Сериал Монитора! Т.е. если запитать плату от внешнего источника – все как и должно быть. Если подключить через USB к компьютеру с закрытой   IDE, тоже все хорошо. Но если запустить IDE, то LED гаснет, а если запустить  Сериал Монитор из IDE, снова загорается, и соответственно гаснет при закрытии Монитора. При этом пробовал перекидывать LED на разные PINы – эффект тот-же.






byte bLedInter =7;



void setup (void) {
Serial.begin(9600);  
pinMode(bLedInter, OUTPUT);
digitalWrite(bLedInter, HIGH);  
} 


void loop(void) {
delay(1000); 
Serial.print(" Cegoto tam pishem ");
Serial.println(" ");
}  





Возникает вопросы. Причина возникновения эффекта? Как с этим бороться где не надо, и как использовать там где надо? Получается можно программно отследить подключение IDE и запуск Монитора?

С уважением, Юрий.

PS Свои соображения не высказываю дабы не повлиять на ход Ваших мыслей.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

jurijt пишет:
реагирует на запуск Arduino IDE и запуск Сериал Монитора!

Как с этим бороться 

Никак, это нормальное поведение. Происходит перезагрузка контроллера.

Бороться в целом не надо, Вы же не будете при эксплуатации готового изделия запускать IDE и монитор.

Но если уж сильно хочется, заливайте скетч не кнопкой "загрузить", а "через программатор" - не будет загрузчика и эффект уйдёт.

jurijt
Offline
Зарегистрирован: 27.07.2016

 

Спасибо за ответ, Евгений!

Хочется до конца разобраться с сутью явления. Получается, что когда запущена IDE на компьютере, плата Arduino не исполняет загруженную программу, а ожидает загрузку (LED который должен гореть –не горит) ? А после запуска Монитора плата перезагружается и работает штатно? Я правильно понял?

С уважением, Юрий.

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

По идее должна исполнять. Давите в IDE "загрузить" , она загружается и начинает исполняться, а если потом запустить монитор, то должна  перезагружаться и снова исполняться. Если у Вас не исполнет при запущенном IDE - то Вы что-то напутали. По шагам распишите.

jurijt
Offline
Зарегистрирован: 27.07.2016

Поигравшись нашел все закономерности:

1 Плата с загруженой программой подключена к PC.Программа исполняется. Загружакм IDE - программа не исполняется. Закрываем IDE - программа исполняется. 

2 Плата с загруженой программой подключена к PC.Программа исполняется. Загружаем IDE - программа не исполняется. Запускаем Сериал Монитор - программа исполняется. Закрываем монитор -  программа не исполняется. Закрываем IDE программа снова исполняется. 

3 IDE запущена. Заливаем Скечь из IDE в плату. После автоматичесского рестарта программа исполняется. Если передернуть USB не выходя из IDE - программа не исполняется.

При этом, когда программа не исполняется, LED13 моргает похоже как при обмене данными. Кнопка RESET на плате не действует. Все проверил на двух UNO, но обе китайские клоны. Они используют не стандартный драйвер. Подозреваю, что причина может быть в этом Попробую сегодня вытащить из готового проекта оригинальную плату, и сравнить поведение. 

IDE у меня сейчас версии 1.6.8. OS WinXP

 Большое Вам спасибо, что не отказываетесь помогать новичкам!

 

 

jurijt
Offline
Зарегистрирован: 27.07.2016

ПРОБЛЕМА РЕШЕНА!

Проблема была из-за использования платы с микросхемой USB порта CH340G.

Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.

 

b707
Offline
Зарегистрирован: 26.05.2017

jurijt пишет:

Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.

 

у сотен людей ардуины с микросхемой USB порта CH340G, в том числе у меня целая куча, - и все они без проблем работают при запущенной на PC IDE Ардуино.

Не надо свои кривые руки возводить в принцип мироздания :)

jurijt
Offline
Зарегистрирован: 27.07.2016

Исключительно для b707:

[/quote]

.

Не надо свои кривые руки возводить в принцип мироздания :)

[/quote]

 

Кривизна моих рук  полностью компенсируется прямотой ваших мозговых извилин :-)))

Rootware
Offline
Зарегистрирован: 11.01.2018

b707 пишет:

jurijt пишет:

Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.

 

у сотен людей ардуины с микросхемой USB порта CH340G, в том числе у меня целая куча, - и все они без проблем работают при запущенной на PC IDE Ардуино.

Не надо свои кривые руки возводить в принцип мироздания :)

Сегодня столкнулся с подобным глюком, но только на оригинальной UNO R3. Пока не закрыл IDE отваливался USB-UART контроллер на плате. Т.е. Windows рандомно оповещала об отключенном устройстве. Программа теряла соединение с ним, а в Диспетчере устройств оно висело как обычно на томже порту. Строгой закономерности не было. Отвал мог произойти рандомно от минуты до 10-15 минут. Из приложений были только Arduino IDE, Visual Studio C# и приложение Frontend для Arduino платы.

Никакие ресеты платы не помогали, кроме как передёргиванием кабеля. При этом плата работала исправно, о чём свидетельствовал мигающий диод завязанный на программный таймер.

Версия IDE последняя.

Так что проблемы с Arduino платами не всегда зависят от кривых рук.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Rootware пишет:

Так что проблемы с Arduino платами не всегда зависят от кривых рук.

Не понял из чего сделан такой вывод.

Rootware
Offline
Зарегистрирован: 11.01.2018

ЕвгенийП пишет:

Rootware пишет:

Так что проблемы с Arduino платами не всегда зависят от кривых рук.

Не понял из чего сделан такой вывод.

Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Rootware пишет:

Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?

Нет, не сомневаюсь. Ещё как может!

Rootware
Offline
Зарегистрирован: 11.01.2018

ЕвгенийП пишет:

Rootware пишет:

Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?

Нет, не сомневаюсь. Ещё как может!

Тогда спишем на моё рукожопство. ОК.

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

ЕвгенийП пишет:

Rootware пишет:

Так что проблемы с Arduino платами не всегда зависят от кривых рук.

Не понял из чего сделан такой вывод.

ну, типа, предполагается что статистическая кривая распределения проблем относительно кривизны этой реальности представляет из себя горизонтальную линию. О_О