Знаток
Регистрация: 06.12.2009
Сообщений: 825
Репутация: 114
![]() ![]() |
Приветствую
До последнего времени обходил ардуино проекты стороной , писал все в той же avr studio и тд. Где-то месяц назад модернизировал свой сервер сбора данных. Воспользовался ардуинкой, взял оф библиотеки и модуль w5100. Спорить не буду , ПО пишется быстро , работает все сразу. Для примера сделал термостат управляемый через телефон. . На серваке написал небольшой скрипт , подключил функции ajax, все заработало . И тут начались сюрпризы , модуль 5100 время от времени начал втиснуть. Причём виснет наглухо. К примеру , если при подаче питания не будет подключен интернет кабель , то винет виснет ещё и ардуинка, не одно прерывание не срабатывает. Хотя пр логике должна быть просто ошибка соединения. Ну думаю ладно взял добрую Тини 13 , подключил её к ардуино и 5100. Если виснет , то рестарт системы с полной перезагрузкой питания . питание завёл через доп реле. Но, выводы ардуино у меня подключались к нагрузкам . Смотреть как будет дергаться назрузка не хотелось , поэтому поставил ещё 1 мк на 2313 который принимал инфу от ардуино и управлял портами. При перезагрузке системы конечные реле не меняли состояние. Итог. Вместо обычного шилда пришлось колхозить |
||
Оценка
|
Знаток
Регистрация: 06.12.2009
Сообщений: 825
Репутация: 114
![]() ![]() |
Попытка вторая. Простой выключатель на ультразвуковом датчике hc-sr05. Как откроешь интернет , так все хвалят , мол золото , а не датчик.
Сделал как все и завещает ардуино. Работает Но раз в n количество измерений датчик моросит, явно левые показания. При том , что все статично . Мне нужно было расстояние от 1 до 1.5 м , ладнл думаю ниже одного метра отфильтровал. Датчик поработал , через время начал очень часто моросить, и в вильтре много значений было , соответственно утсройство начало через раз работать Может это мне попались такие компоненты , но результат таков, что не одно изделие не зарекомендовали себя стабильно . Работает все и сразу , но не стабильно |
||
Оценка
|
Гуру
Регистрация: 28.06.2012
Сообщений: 5,024
Репутация: 1224
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
По первому сообщению - некоторые устройства на МК или МП зависают после включения, если напряжение питания нарастает слишком быстро. Иногда допустимая скорость нарастания указывается в документации, но чаще всего - нет. У нас такое было с модулями Bluetooth от Initium (и не только с этими модулями и (или) с этим производителем). Зависают, но не всегда, в большинстве случаев включаются нормально. Понаблюдав за этим явлением, мы написали о нем в техподдержку производителя, и он подтвердил наличие такой проблемы ...
Последний раз редактировалось kovigor; 06.07.2018 в 16:22.
|
||
Оценка
|
Новичок
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 313
Репутация: 58
![]() |
Собственно относитесь к ардуинке как к микрокомпьютеру с предварительно загруженной операционной системой.
Соответственно отслеживаем стартовые интервалы, схемотехнику обвязки на начальные состояния при запуске. Второе - при использовании "стандартных" скотчей должна быть и соответствующая "стандартная" обвязка - изменение схемотехники и дополнительно добавленная "отсебятинка" может иметь непредсказуемые последствия. Альтернатива и собственная схемотехника и собственные программные тексты на основе базового функционала из https://www.arduino.cc/reference/en/ и изучения как даташитов так и схемотехники готовых вспомогательных модулей. Пока те адуринки у меня в стадии "пережевывания" - считаю весьма перспективным направленим. (тренаж в конце https://radiokot.ru/forum/viewtopic.php?f=62&t=94201 немножко имел место) ;-) |
||
Оценка
|
Специалист
|
Все, описанные Схемопай, проблемы (и не только эти) действительно есть. Причем с платой расширения Ethernet на W5100 - зависание контроллера - давно известная проблема, и решается она именно жесткой перезагрузкой. Насколько помню (когда работал с этой платой расширения) сброс требовался только для Ethernet контроллера, Arduino не зависала. В некоторых случаях решалось все с помощью таймера (на той же Arduino), который раз в 5 минут сбрасывал Ethernet контроллер - работало стабильно.
По поводу ультразвуковых датчиков - когда с товарищем налаживали подобную конструкцию - выключатель освещения - таки да, как бы не фильтровали данные, как не извращались - стабильных значений не получали - отказались от этой идеи...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Новичок
Регистрация: 16.07.2018
Сообщений: 1
Репутация: 10
![]() |
Нестабильность Ардуино.Цитата:
Попытка вторая. Простой выключатель на ультразвуковом датчике hc-sr05. Как откроешь интернет , так все хвалят , мол золото , а не датчик.
Сделал как все и завещает ардуино. Работает Но раз в n количество измерений датчик моросит, явно левые показания. При том , что все статично . Мне нужно было расстояние от 1 до 1.5 м , ладнл думаю ниже одного метра отфильтровал. Датчик поработал , через время начал очень часто моросить, и в вильтре много значений было , соответственно утсройство начало через раз работать Может это мне попались такие компоненты , но результат таков, что не одно изделие не зарекомендовали себя стабильно . Работает все и сразу , но не стабильно 1 зависание (Нано+6250 питавшиеяся через длинные тонкие проводники в устройстве с электромоторами). От этого зависания практически полностью избавился более аккуратной разводкой питания и фильтрующими конденсаторами. 2 Сбой хаос в данных - (хорошо питаемая UNO + LCD+ SR04) программа продолжает работать но иногда выдает неверные результаты. Этот вид сбоя у меня состоял из -за переполнения памяти . Ардуино библиотеки (это было год назад) часто не следили за размерами "РАМ" памяти и вероятно сбой происходил из за "наезда" одной переменной на другую. От этого вида сбоя избавился методами: 2.1 оптимизация скетча с целью увеличить свободную память переменных. Напр. хорошо помогает замена глобальных переменных, на локальные или даже на константы, которые можно храненить в PROGMEM 2.2 использовать две Ардуины вместо одной (они же дешевые!) Сейчас уже больше не допускаю чтобы память переменных после компиляции была бы больше 70%. сбоить стали гораздо меньше. 3 Сбой явно из датчика или из программы обработки данных. Именно с Ультразвуковым датчиком это чаще всего и бывало. Причем с разными библиотеками данные грубо скачут. Здесь как я думаю, важнейшую роль играли асинхронная загрузка процессора серийным портом (когда ошибка явно на увеличение дистанции), а также случайные эха от разных объектов (, когда ошибка в сторону уменьшения дистанции. УЗ пищалка недостаточно узконаправленна и микрофон ловит боковые отражения). Первая проблема исчезает выключением "принтов" - потока дебуггерных сообщений в Сериевый порт, которые очень нарочны по времени. Вторая - софтверовым фильтром НЧ. Нормальная скорость опроса у меня составляла не менее 100 КГц и поэтому Я просто делал сдвиговый регистр аж на восемьдесят измерений и брал среднее за наиболее правдеподобное. Но наиболее оптимальным оказался регистр на 20-30 шагов. Скорость опроса УЗ датчика у меня оказывалась около 100 КГц. Ошибка получалась меньше 10% -------------- В общем случае чувствуется, что Ардуино гораздо отзывчивее и даже стабильнее ... писи с виндоусом. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |