Влияние SERIAL соединения на состояние PIN
- Войдите на сайт для отправки комментариев
Добрый день уважаемый 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 Свои соображения не высказываю дабы не повлиять на ход Ваших мыслей.
Как с этим бороться
Никак, это нормальное поведение. Происходит перезагрузка контроллера.
Бороться в целом не надо, Вы же не будете при эксплуатации готового изделия запускать IDE и монитор.
Но если уж сильно хочется, заливайте скетч не кнопкой "загрузить", а "через программатор" - не будет загрузчика и эффект уйдёт.
Спасибо за ответ, Евгений!
Хочется до конца разобраться с сутью явления. Получается, что когда запущена IDE на компьютере, плата Arduino не исполняет загруженную программу, а ожидает загрузку (LED который должен гореть –не горит) ? А после запуска Монитора плата перезагружается и работает штатно? Я правильно понял?
С уважением, Юрий.
По идее должна исполнять. Давите в IDE "загрузить" , она загружается и начинает исполняться, а если потом запустить монитор, то должна перезагружаться и снова исполняться. Если у Вас не исполнет при запущенном IDE - то Вы что-то напутали. По шагам распишите.
Поигравшись нашел все закономерности:
1 Плата с загруженой программой подключена к PC.Программа исполняется. Загружакм IDE - программа не исполняется. Закрываем IDE - программа исполняется.
2 Плата с загруженой программой подключена к PC.Программа исполняется. Загружаем IDE - программа не исполняется. Запускаем Сериал Монитор - программа исполняется. Закрываем монитор - программа не исполняется. Закрываем IDE программа снова исполняется.
3 IDE запущена. Заливаем Скечь из IDE в плату. После автоматичесского рестарта программа исполняется. Если передернуть USB не выходя из IDE - программа не исполняется.
При этом, когда программа не исполняется, LED13 моргает похоже как при обмене данными. Кнопка RESET на плате не действует. Все проверил на двух UNO, но обе китайские клоны. Они используют не стандартный драйвер. Подозреваю, что причина может быть в этом Попробую сегодня вытащить из готового проекта оригинальную плату, и сравнить поведение.
IDE у меня сейчас версии 1.6.8. OS WinXP
Большое Вам спасибо, что не отказываетесь помогать новичкам!
ПРОБЛЕМА РЕШЕНА!
Проблема была из-за использования платы с микросхемой USB порта CH340G.
Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.
Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.
у сотен людей ардуины с микросхемой USB порта CH340G, в том числе у меня целая куча, - и все они без проблем работают при запущенной на PC IDE Ардуино.
Не надо свои кривые руки возводить в принцип мироздания :)
Исключительно для b707:
[/quote]
.
Не надо свои кривые руки возводить в принцип мироздания :)
[/quote]
Кривизна моих рук полностью компенсируется прямотой ваших мозговых извилин :-)))
Обратите внимание, что указанный вариант платы Ардуино может не корректно работать при запущенной на PC IDE Ардуино.
у сотен людей ардуины с микросхемой USB порта CH340G, в том числе у меня целая куча, - и все они без проблем работают при запущенной на PC IDE Ардуино.
Не надо свои кривые руки возводить в принцип мироздания :)
Сегодня столкнулся с подобным глюком, но только на оригинальной UNO R3. Пока не закрыл IDE отваливался USB-UART контроллер на плате. Т.е. Windows рандомно оповещала об отключенном устройстве. Программа теряла соединение с ним, а в Диспетчере устройств оно висело как обычно на томже порту. Строгой закономерности не было. Отвал мог произойти рандомно от минуты до 10-15 минут. Из приложений были только Arduino IDE, Visual Studio C# и приложение Frontend для Arduino платы.
Никакие ресеты платы не помогали, кроме как передёргиванием кабеля. При этом плата работала исправно, о чём свидетельствовал мигающий диод завязанный на программный таймер.
Версия IDE последняя.
Так что проблемы с Arduino платами не всегда зависят от кривых рук.
Так что проблемы с Arduino платами не всегда зависят от кривых рук.
Не понял из чего сделан такой вывод.
Так что проблемы с Arduino платами не всегда зависят от кривых рук.
Не понял из чего сделан такой вывод.
Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?
Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?
Нет, не сомневаюсь. Ещё как может!
Вы сомневаетесь в том, что человека с IQ == 56 может накосячить с банальным открытием окон из ярлыков?
Нет, не сомневаюсь. Ещё как может!
Тогда спишем на моё рукожопство. ОК.
Так что проблемы с Arduino платами не всегда зависят от кривых рук.
Не понял из чего сделан такой вывод.
ну, типа, предполагается что статистическая кривая распределения проблем относительно кривизны этой реальности представляет из себя горизонтальную линию. О_О