Arduino перезагружается при подключении usb
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
Всем привет снова ищу тут ответы. проблема в следующем, написал скетч который будет управлять 5ю реле. Всё работает отлично до того момента как подключаю релейный модуль. Если одновременно включаю все реле и они ещё и под нагрузкой ардуино зависает и перезагружается, если же реле одно или два всё более мение работает но всё равно бывает зависает. Хочу сразу сказать что реле запитано от отдельного блока питания, само ардуино запитано от отдельно блока питания(НЕ через usb), стоит конденсатор у питания реле. Плата Arduino Mega 2560.
Релейный модуль подключен проводом от витой пары примерно 10м длинной.
Кстати не знаю важно это или нет, зависание сопровождается сбросом часов(модуль ds1302).
Старик Похабыч
Так что бы реле управлять тоже ток нужен. А его на 5 реле не хватает. Возможно придется сначала управлять транзисторным клочем, а ключ уже реле будет управлять большим током и щелкать релюхами.
Общий ток доступный из ардуины тоже имеет ограничения.
Так что бы реле управлять тоже ток нужен. А его на 5 реле не хватает. Возможно придется сначала управлять транзисторным клочем, а ключ уже реле будет управлять большим током и щелкать релюхами.
Общий ток доступный из ардуины тоже имеет ограничения.
PiratFox
А чего тут искать, и так всё ясно. Катушки реле просаживают питающее напряжение. А вообще - если хотите помощи, так приводите схему подключения всей этой байды, так же параметры источника питания. А то у нас тут штатные экстрасенсы в запое.
b707_2
Реле модулем или отдельно? - посмотрите, включен ли встречно-паралелльно питанию реле диод, если нет - добавьте
Реле модулем или отдельно? - посмотрите, включен ли встречно-паралелльно питанию реле диод, если нет - добавьте
b707_2
Эдуард Анисимов
С фигов ли, я неделю не пил.
Давайте схему подключений и список используемых устройств, разбираться будем.
В общем всё стало ещё круче ардуино может перезагружаться в момент переключения реле даже в том случаи когда реле не подключены к пинам ардуино. Если провода которые идут к реле рядом то ардуино перезагружется. Схема в приложении
PS(в схеме присудствуют дисплей, клавиатура, часы и датчик температуры) если нужно я дорисую, но сдается мне они никак не влияют на ситуацию ибо пока не подсоеденил реле всё
Эдуард Анисимов
А для чего модуль MOSFET?
Эти реле управляются через опторазвязку. У них входной ток мизерный, никаких дополнительных узлов между реле и ардуиной не нужно.
Расстояние между ардуиной и реле какое?
А для чего модуль MOSFET?
Эти реле управляются через опторазвязку. У них входной ток мизерный, никаких дополнительных узлов между реле и ардуиной не нужно.
Расстояние между ардуиной и реле какое?
ТехнарьКто
В общем всё стало ещё круче ардуино может перезагружаться в момент переключения реле даже в том случаи когда реле не подключены к пинам ардуино.
--кусь-
Силовые провода с 220V и управление от ардуино прокладывать с растоянием друг от друга 1 метр, либо применять экранирование проводов управления от ардуино к блоку реле. При необходимости пересечения проводов, прокладывать силу и управление под прямым углом если без экранирования. Снизить напряжение питания ардуино до 9 вольт, проверить пульсации напряжения питания на блоке питающем ардуино. Применить для питания блока реле блок питания с большим током, заявленный ток в 1 ампер вполне может оказаться реальными 200мА при длительной работе. Убрать платы с мосфетами, на блоке реле уже есть гальваническая развязка и управление малыми токами. На блоке реле убрать перемычку с контакта JD-VC на VCC и запитать реле от стороннего блока питания подав напряжение на контакты JD-VC и GND.
Силовые провода с 220V и управление от ардуино прокладывать с растоянием друг от друга 1 метр, либо применять экранирование проводов управления от ардуино к блоку реле. При необходимости пересечения проводов, прокладывать силу и управление под прямым углом если без экранирования. Снизить напряжение питания ардуино до 9 вольт, проверить пульсации напряжения питания на блоке питающем ардуино. Применить для питания блока реле блок питания с большим током, заявленный ток в 1 ампер вполне может оказаться реальными 200мА при длительной работе. Убрать платы с мосфетами, на блоке реле уже есть гальваническая развязка и управление малыми токами. На блоке реле убрать перемычку с контакта JD-VC на VCC и запитать реле от стороннего блока питания подав напряжение на контакты JD-VC и GND.
В общем попробовал всё что написано. К сожалению не помогло (((. Завтра попробую удлиниить силовые провода. Может быть это поможет
Силовые провода с 220V и управление от ардуино прокладывать с растоянием друг от друга 1 метр, либо применять экранирование проводов управления от ардуино к блоку реле. При необходимости пересечения проводов, прокладывать силу и управление под прямым углом если без экранирования. Снизить напряжение питания ардуино до 9 вольт, проверить пульсации напряжения питания на блоке питающем ардуино. Применить для питания блока реле блок питания с большим током, заявленный ток в 1 ампер вполне может оказаться реальными 200мА при длительной работе. Убрать платы с мосфетами, на блоке реле уже есть гальваническая развязка и управление малыми токами. На блоке реле убрать перемычку с контакта JD-VC на VCC и запитать реле от стороннего блока питания подав напряжение на контакты JD-VC и GND.
Есть ещё предположения?
ТехнарьКто
Разделить схему на две части, на отдельно ардуину и отдельно реле с нагрузкой. Проверять части раздельно на работоспособность. Погонять ардуину включая и выключая выходы на реле в различных комбинациях. Выходы ардуино на реле подключить к светодиодам естественно с резисторами чтобы визуально видеть работу ардуино. Проверять по времени так же долго, как иногда проявляются сбои. Иначе смысл проверки теряется, оно же иногда работает какое-то время. Проверить работу реле с нагрузкой без ардуины. На входы модуля реле подавать с тумблеров пять вольт и GND. Пощелкать и убедится в работоспособности. В случае успешной работы отдельными частями собрать обратно все до кучи и снова проверить. Станет понятен источник косяков в работе схемы. Это либо ардуина, либо модуль реле, либо соединение их в единую схему. Определив источник глюков, можно разбираться дальше. Обычно этапом раздельного тестирования пренебрегают и потом ловят глюки не зная куда копать. И удлинять силовые провода не надо. Просто предположил, что у Вас питание 220V подано из места расположения ардуины и схема ловит наводки. А как там у Вас на самом деле, знаете только Вы.
Разделить схему на две части, на отдельно ардуину и отдельно реле с нагрузкой. Проверять части раздельно на работоспособность. Погонять ардуину включая и выключая выходы на реле в различных комбинациях. Выходы ардуино на реле подключить к светодиодам естественно с резисторами чтобы визуально видеть работу ардуино. Проверять по времени так же долго, как иногда проявляются сбои. Иначе смысл проверки теряется, оно же иногда работает какое-то время. Проверить работу реле с нагрузкой без ардуины. На входы модуля реле подавать с тумблеров пять вольт и GND. Пощелкать и убедится в работоспособности. В случае успешной работы отдельными частями собрать обратно все до кучи и снова проверить. Станет понятен источник косяков в работе схемы. Это либо ардуина, либо модуль реле, либо соединение их в единую схему. Определив источник глюков, можно разбираться дальше. Обычно этапом раздельного тестирования пренебрегают и потом ловят глюки не зная куда копать. И удлинять силовые провода не надо. Просто предположил, что у Вас питание 220V подано из места расположения ардуины и схема ловит наводки. А как там у Вас на самом деле, знаете только Вы.
Отдельно я уже всё протестировал всё работает исправно. Я тут подразобрался повесил конденсатор прямо на розетки и всё заработало, но конденсатор великоват нужно поставить мелкие. Скорее всего в момент разьединения случался всплеск электричества и ардуинА его чувствовала и зависала и перезагружалась.
Вот только не понятно какой номинал конденсаторов нужен.
Существует следующая проблема: при подключении Arduino, все работает нормально. Но стоит воткнуть в соседний порт USB на компьютере что-либо, то Arduino перезагружается. Тоже самое происходит, если открыть среду разработки.
Если повесить конденсатор на питающую шину +5В, то при подключении к компьютеру СОМ-порт не определяется.
Подскажите, как избавится от перезагрузок?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А зачем конденсатор на питание?
Из множества способов вот три:
1. Подрезать дорожку как на картинке, красным показана линия реза.
2. Поставить конденсатор (сравнительно большой емкости чем С5) между GND и RESET.
3. Поставить перемычку между +5V и RESET, НО НЕ В КОЕМ СЛУЧАЕ НЕ НАЖИМАТЬ НА КНОПКУ РЕСЕТ.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
" 3. Поставить перемычку между +5V и RESET, НО НЕ В КОЕМ СЛУЧАЕ НЕ НАЖИМАТЬ НА КНОПКУ РЕСЕТ" - так лучше не делать /рано или поздно эту кнопку нажмут/ - вместо перемычки резистор, 51 Ом например.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А зачем конденсатор на питание?
Чтобы убрать перезагрузки. С ним все работает, но комп не определяет Arduino.
Из множества способов вот три:
1. Подрезать дорожку как на картинке, красным показана линия реза.
2. Поставить конденсатор (сравнительно большой емкости чем С5) между GND и RESET.
3. Поставить перемычку между +5V и RESET, НО НЕ В КОЕМ СЛУЧАЕ НЕ НАЖИМАТЬ НА КНОПКУ РЕСЕТ.
Можно подробнее, про эти способы.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чтобы убрать перезагрузки. С ним все работает, но комп не определяет Arduino.
Так а как вы определили, что с ним все работает, если комп не определяет дуину? Может тогда просто - ничего не работает. Да и врядли кондер по питанию может помешать определению компом дуины, разве что кондер очень большой емкости и при его заряде, при подключении к компу срабатывает защита USB по току.
Можно подробнее, про эти способы.
Уж куда подробнее?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чтобы убрать перезагрузки. С ним все работает, но комп не определяет Arduino.
Так а как вы определили, что с ним все работает, если комп не определяет дуину? Может тогда просто - ничего не работает. Да и врядли кондер по питанию может помешать определению компом дуины, разве что кондер очень большой емкости и при его заряде, при подключении к компу срабатывает защита USB по току.
Заливаем программу в ардуину. Смотрим, как она показывает данные на экране (ST7920). Далее отключаем ардуину и припаиваем конденсатор 2200 мкф к шине питания USB. Потом снова включаем ардуину, данные на экране идут, но ардуина не определяется компом. Любые помехи на порту (вставляем в паралельный порт флешки, включение среды разработки) не влияют на ардуину, то есть она не перезагружается.
Пробовал разные конденсаторы 470, 100 мкф. Эффект одинаковый. Хотя на 100 мкф один раз комп определил ардуину, а потом сколько не вставлял ее в USB, все равно не определялась.
Можно подробнее, про эти способы.
Уж куда подробнее?
Я в смысле, что делают эти способы. Чтобы применить, хоть какой-то из них, то нужно понимать физику процесса, а то дорожку перерезать, а потом окажется, что этот метод не помог.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Заливаем программу в ардуину. Смотрим, как она показывает данные на экране (ST7920). Далее отключаем ардуину и припаиваем конденсатор 2200 мкф к шине питания USB. Потом снова включаем ардуину, данные на экране идут, но ардуина не определяется компом. Любые помехи на порту (вставляем в паралельный порт флешки, включение среды разработки) не влияют на ардуину, то есть она не перезагружается.
Пробовал разные конденсаторы 470, 100 мкф. Эффект одинаковый. Хотя на 100 мкф один раз комп определил ардуину, а потом сколько не вставлял ее в USB, все равно не определялась.
Так а причем тут помехи? что у вас происходит при установке конденсатора по питанию я уже описал выше - срабатывает защита USB по току. Зачем вам тогда что бы она определялась компом если все работает?
Я в смысле, что делают эти способы. Чтобы применить, хоть какой-то из них, то нужно понимать физику процесса, а то дорожку перерезать, а потом окажется, что этот метод не помог.
По поводу дорожки, я конечно не знаю может вам картинку не видно, но это даже не дорожка, а перемычка, которая востанавливается каплей припоя (она именно для этого и предназначена) и в довес ко всему если вам надпись RESET-EN ни о чем не говорит, то к сожалению я вам больше никак помоч не могу.
А что по вашему должны делать эти способы?
Эти способы не дают перезагрузить МК. Хотите разобраться в "физике процесса" вэлкам в школу в 6 класс, или вы хотите что бы я вас уговаривал и убеждал воспользоваться каким-нибудь из способов? не устраивают/не доверяете не пользуйтесь.
При записи в "/dev/ttyACM0" ардуино перезагружается - не зависимо от того, какой скетч там запущен, т.е. даже если с Serial не работает вообще. Соответственно ни о какой передачи данных речи быть не может.
Ребутит даже при настройке ком-порта:
sudo stty 9600 raw -echo -F /dev/ttyACM0;
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
т.е. при выполнении этой команды.
Некоторое уточнение. Питание ардуины идет от USB, через usb-хаб. Вряд ли из-за этого питание на usb пропадает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В общем я понял в чем проблема. Только не понятно зачем отсылать на буржуйский форум, будто своих нету.
Вопрос решается установкой кондера 10мкФ между RES и GND. Единственное неудобство - при прошивке надо его убирать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
не понятно зачем отсылать на буржуйский форум, будто своих нету.
саратовский рабоче-крестьянский форум им. Клары Цеткин - наш выбор!
*объявляется конкурс на переименование буржуйского иноземного слова "arduino" в наше-православное.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В общем я понял в чем проблема. Только не понятно зачем отсылать на буржуйский форум, будто своих нету.
Да, вы абсолютно правы! Проблемма- в буржуях!
И картинки красивые подобрали!
Пишут, гады, на каком-то непонятном языке.
Написали на нём кучу вредных программ : MSDOS 6.22, UNIX-LINUX, WIN3.1,
Windows всех мастей и оттенков. в основном голубого цвета ( а ведь это явно о чём-то говорит . )
и упорно продолжают это делать.
Запретить!
Кстати vista по латышски - курица.
Но тут уж прибалты подсуетились!
Продались проклятым империалистам!
А итальянцы, нет чтобы написать Ардуино ИДЕ на понятом, нашем, итальянском-
тоже льют воду на мельницу мирового империализма, предатели.
Только китайцы, наши друзья, помогают как могут:
железки разные делают и присылают бесплатно на край света.
И уже на Русском заговорили, правда у них ещё плохо получается, но они искренне стараются.
В общем любят нас, уважают.
Молодцы, наши ребята!
Я волнуюсь за них.
Правда у нас пока не очень хорошо получается, и наши программы пока не работают,
но это временные трудности, мы упёртые, мы своего добьёмся.
Заметьте, я единственный кто на форуме употребляет букву " ё "
Надеюсь в светлом будущем мне это зачтётся? ( trembo: робко снизу заглядывает в глаза spyphy. )
Как определить почему МК перезагружается, если перезагрузка происходит при выводе в монитор?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
1)Плохое питание (Слабый источник, большой уровень пульсаций, контролируемый из вне источник питания(USB-port PC))
При снижении питания работающего МК может произойти все что угодно, вплоть до повреждения программы во флэши.
3)Перегрузка по току как отдельного вывода, так и МК в целом (Ток на вывод может быть и 40мА, но в целом на МК, например, 120мА)
4)Неправильно выставленные фьюзы (включена "собака" watchdog, но в программе не сбрасывается, включен бит совместимости, бит контроля просадки напряжения BOD)
. unsigned long ii = 0; 32-битная переменная и, когда она заполнена, вызывает переполнение и перезагрузку
7)Плохой кварцевый резонатор (сам кварц, схема, конденсаторы обвязки, кварц не заземлен, не запрограммированный бит CKOPT - очень сильно влияет на амплитуду тактовых импульсов от кварца) поставьте ckopt галочку и посмотрите осциллографом с делителем 1/10 размах напряжения на ноге xtal2.
Использование внешних и встроенных керамических резонаторов крайне нежелательно ввиду зависимости частоты от температуры, от напряжения питания и других внешних факторов
Замечал что платы изготовленные разными подрядчиками по одному и тому же рисунку могут вести себя по разному.
некоторые (целые партии PCB) глючили - приходилось резать дорожку питания в непосредственной близости от МК и вставлять LC фильтр.
12)компьютерный блок питания. В незаземленном варианте на корпусе присутствует 110 Вольт, которые так и ищут куда бы стечь. Кроме того требуется какая-то минимальная нагрузка по линии 5 вольт (обычно 0,2-0,5 амп), а без неё напряжение на выходе прыгает с частотой от нескольких Hz до десятков Hz
13)USB-serial контроллер Arduino перезагружает МК каждый раз, когда терминальная программа (в т.ч. Serial monitor, встроенный в ПО Arduino IDE) устанавливает соединение. Реализовано это следующим образом: у USB-serial контроллера вывод DTR (Data Terminal Ready) связан с выводом RESET. Если программа, работающая с виртуальным последовательным портом, использует DTR, то при установке соединения МК перезагружается.
16)Софт со стороны ПК (Sony Ericsson, вирусы), пытающийся периодически обращающийся к USB порту с целью определить, чем является подключеное USB-устройство (мобильным телефоном) (сигнал DTR дёргает ресет)
До сих пор мне хватало светодиода и Serial.print для отладки кода на МК (для предметности Atmega328).
Но вот наступил черный день, когда светодиод и Serial.print не выручают. Был мой рабочий проект на Ардуино Уно, я немного его доработал и проект перестал работать - МК уходит в перезагрузку. Внешне ничего не менялось (ПК, ОС, USB-кабель, IDE 1.6.0, библиотеки), т. е. перезагрузка происходит ИСКЛЮЧИТЕЛЬНО из-за моих изменений в скетче. При питании от внешнего БП 12В х 2А и отключенном кабеле USB, тоже перезагружается.
С одной стороны, я понимаю, что могу откатиться на старую рабочую версию и начать добавлять код "по строке" компилируя и контролируя работоспособность устройства. С другой стороны, делать мне этого не хочется, так как хочется узнать, как искать причину проблемы, когда перезагрузка происходит "на полуслове" при выводе информации в монитор последовательного порта Ардуино.
Собственно вопрос: Как определить почему МК перезагружается, если перезагрузка происходит при N-ом выводе в монитор Serial.print ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не обнаружил еще одной довольно частой причины перезагрузки - нехватки оперативной памяти.
Во-первых, посмотрите, что пишет компиллятор обь оставшейся памяти.
А во-вторых, придирчиво изучите в коде места, где Вы пользуетесь нестатическими массивами (включая строки).
Ну и на форуме публиковалась функция для определения количества занятой и свободной памяти.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не обнаружил еще одной довольно частой причины перезагрузки - нехватки оперативной памяти.
Во-первых, посмотрите, что пишет компиллятор обь оставшейся памяти.
А во-вторых, придирчиво изучите в коде места, где Вы пользуетесь нестатическими массивами (включая строки).
Ну и на форуме публиковалась функция для определения количества занятой и свободной памяти.
Действительно забыл указать, так как недостаток памяти - это очевидная причина. Жать только, что не всегда очевидно, что наступила её нехватка.
У меня памяти море. Функцию запускал. Показания почти такие же как у компилятора. Расхождение в несколько байт. Вот что пишет компилятор:
Global variables use 713 bytes (34%) of dynamic memory, leaving 1 335 bytes for local variables. Maximum is 2 048 bytes.
Нестатические, т.е. динамические массивы не использую именно из-за боязни налететь на "подводный камень". Строки. Хм. Проверю внимательнее, хотя я их не редактировал.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Повысь скорость сириала.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Повысь скорость сириала.
Я, конечно, этот вариант проверю, руки не отсохнут, но вообще-то я предпочитаю аргументированные рекомендации.
По поводу свободной памяти.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Проверил работу программы на скорости 115200. Результат на кртинке. Количество циклов возросло (ожидаемо!), а вот время работы программы до перезагрузки почти не изменилось. Как это понимать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Короче, без полного кода - не обойтись. Выкладывайте весь.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
ПС. Отлаживать чужой код не видя его - как лечить по фотографии родственника ;)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Короче, без полного кода - не обойтись. Выкладывайте весь.
Кода мне не жалко, но он не "причесан" и ОЧЕНЬ сильно комментирован. Выложить как есть - это спровоцировать, пардон, срачь в теме. А причесывать нынешний полуфабрикат долго.
Кроме того, меня больше интересует академическая сторона вопроса. Т.е. есть проблема и как её решить не методом перебора или "научного тыка", а методом "квалифицированного инженера". Это знаете, как ремонтрировать телевизор проверяя все детали. А можно на основании пары измерений сказать, что, к примеру, не работает кадровая развертка и проверять только этот блок. С этой точки зрения, IMHO, я дал информации достаточно.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вообще-то Вы повторили то, что сказал я, только другими словами. Я тоже думал о 10.000. Но это ни к чему не привязать (типу данных, переполнению и т.п.)
ПС. Отлаживать чужой код не видя его - как лечить по фотографии родственника ;)
С одной стороны абсолютно с Вами согласен. С другой - посмотрите мой предыдущий пост. Мне хочется узнать причинно-следственную связь данного явления. Что бы в следующий раз я мог, к примеру, посмотреть в протеусе регист ХХХ и сказать, что собака зарыта "вот здесь".
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Кроме того, меня больше интересует академическая сторона вопроса. Т.е. есть проблема и как её решить не методом перебора или "научного тыка", а методом "квалифицированного инженера". Это знаете, как ремонтрировать телевизор проверяя все детали. А можно на основании пары измерений сказать, что, к примеру, не работает кадровая развертка и проверять только этот блок. С этой точки зрения, IMHO, я дал информации достаточно.
Вы искренне полагаете, что квалифицированные инженеры ремонтируют телевизоры исключительно по переписке, при этом не зная модели и не видя схемы?
Правильно - квалифицированному инженеру достаточно информации, что он - квалифицированный инженер.
PS. Кстати, здест собираются в основном не "квалифицированные инженеры", а любители, для которых Ардуино - это хобби.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Кроме того, меня больше интересует академическая сторона вопроса. Т.е. есть проблема и как её решить не методом перебора или "научного тыка", а методом "квалифицированного инженера". Это знаете, как ремонтрировать телевизор проверяя все детали.
Когда у инженера имеется схема телевизора, разработанная в соответствии с типовыми схемотехническими решениями, тогда и поиск будет типовым с проверкой определённых напряжений/сигналов в определённых точках. Но, коли инженер получает на ремонт тяп-ляп с блоками, настроенными на глазок, то он может или начинать менять всё подряд или срисовывать схему и только после этого пытаться что-то найти.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ладно бы"тяп-ляп с блоками, настроенными на глазок". А то ж блок "я немного его доработал и проект перестал работать". Может выпаял чего, может добавил, а скорей и то и то. Для не типовых решений не может быть " на основании пары измерений сказать, что, к примеру, не работает ", у каждого своя специфика. Потому аналогия между ремонтом ТВ и отладкой своего кода в принципе не верна.
"Мне хочется узнать причинно-следственную связь данного явления." - угу. Это и есть цель процесса. Как токо узнаем - сразу и починим.
" Я тоже думал о 10.000. Но это ни к чему не привязать (типу данных, переполнению и т.п.)" - нет. Даже из приведенного кода видно что в 10.000 взводится Flag_PeriodToUART (закоментировать это и проверить!), правда это во второй раз. Первый был в 5.000. Наверное. Этого я явно не вижу, лога нет. Но из того, что есть, видно что некоторые действия в 10.000 происходят. Их и смотреть нужно. Но мне смотреть некуда.
А потому, давайте не торговатся. На форуме иногда находятся люди, готовые по тем или иным мотивам (от скуки например) глянуть чужую проблему за просто так. Вместо того чтоб усложнять добрым людям жизнь, лучше делали бы чего пишут. А то ведь просто перестанут отвечать, и долбитесь сами как можете. И это будет целиком справедливо. А уж срачей боятся - на форум не писать.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
oven100
При отправке команды с компьютера через CMD в COM порт Arduino плата уходит в перезагрузку. Подскажите кто сталкивался с такой проблемой как победить.
Та же история происходит когда открываешь монитор порта.
А скетч вообще можно в неё залить? Другой кабель пробовали? Ардуино питается от компа через usb или у неё отдельное питалово?
bort707
перезагрузка при подключении терминала - это штатное поведение ардуины.
Если ваша программа на ПК при каждой отправке открывает порт заново - ардуина и будет перегружаться.
А я правильно понял, что если между 5 Вольт и Rezet поставить резистор на 50 Ом, то ардуина перестанет делать авторезет?
ПС: Сейчас сам проверил, 62 Ома воткнул, перестала перезагружаться при отправке с компа и при открытии монитора, так что можно и так уйти от проблемы.
Roden
bort707
А я правильно понял, что если между 5 Вольт и Rezet поставить резистор на 50 Ом, то ардуина перестанет делать авторезет?
не стоит так делать, при ресете чип UART подключает пин RST к GND - а после вашей доработки вы устроили между VCC и RST почти КЗ с сопротивлением всего 50 Ом. Ток через чип получается 5в / 50 Ом = 0.1А - от такого может и поплохеть
Вопрос решается проще - без "членовредительства" ардуины. За перезагрузку отвечает сигнал DTR, надо просто найти программу-терминал где DTR отключается. Например в Вижуал Студио терминал с кучей настроек, в том числе и DTR
Ну скажем 0,1 это далеко не КЗ, эт не я придумал, но идея мне понравилась. Сейчас глянул datasheet, 0,15 А микросхема должна выдержать , при 62 Ом ток будет около 80мА на долю секунды, китайская мега выдержала. Думаю в неких случаях это допустимо. Допустим надо подключится к ардуине с ПК, и глянуть с неё данные, при этом перезагрузка МК крайне нежелательна. Так же думаю что не зря автор писал про отправку команд из cmd, наверное делает либо bat, либо скрипт и хочет использовать стандартные средства винды. В этом плане я не поддерживаю решеие с резистором, так как при отправке большого количества команд можно сжечь UART (скорее всего даже не можно сжечь, а гарантиррованно она перегреется и сдохнет), в этом случае я бы нашёл эту ногу на UART и скальпелем бы её отрезал, это тоже не я придумал, а люди так делают. Главное, что всегда есть выбор.
Эдуард Анисимов
Никаких резисторов не нужно.
Если стоит чип CH340T то с ноги - 15 на RESET микроконтроллера идёт конденсатор. Нужно его выпаять.
Если чип CH340G то нога - 13.
Если FT232RL то нога 2.
Т.Е. сигнал DTR нужно отключить от чипа.
Читайте также: