Страница 1 из 1

Подводные камни подключаемых библиотек

Добавлено: 14.09.2015{, 20:58}
Андрейка
Здравствуйте !
Сначала хочу поблагодарить автора за большой труд по созданию отличной программы.
Проблема у меня такая.
Делаю блок управления для большой посудомоечной машины.
Один из модулей должен при срабатывании датчика уровня воды включать ТЭН и нагревать воду до определенной температуры.
Все работало нормально при использовании обычного аналогового датчика(терморезистор). При отключении USB шнурка от компа и подключении-отключении разъема питания реле запускалось в штатном режиме.
Я решил стать крутым и купил цифровой термодатчик DS18B20.
Подключил его библиотекой One Wire. И заметил что при первом включении Ардуино включает на секунду реле нагрева при отсутствии сигнала с датчика уровня.
А это плохо. Поставил блок таймера задержки включения на 5 сек. Вроде стало все хорошо. Теперь подключил ЖК-дисплей по I2C. Опять при первой подаче напряжения на плату Ардуино мигает дисплеем и что самое плохое врубает реле нагрева на секунды 2-3.  И что самое плохое даже блоком таймера задержки я не могу избавиться от срабатывания реле при первом запуске !
Вопрос отчего Ардуина дергает контакты реле ? Это происходит инициализация библиотек ?
Какой библиотеки ? I2C или Licud Cristal ? Возможно ли программно с этим побороться ?

Подводные камни подключаемых библиотек

Добавлено: 14.09.2015{, 21:10}
Max
Питание как подключено?

Подводные камни подключаемых библиотек

Добавлено: 16.09.2015{, 18:32}
Андрейка
Питание идет от блока питания 9 В на разъем платы. Его я и дергаю проверяя работу. От этого же блока но через другой стабилизатор 78L05 подаю 5 В на платы реле. На реле я снял перемычку VCC-JD VCC и реле независимы от модуля Ардуино.

Подводные камни подключаемых библиотек

Добавлено: 16.09.2015{, 23:55}
Гость
Андрейка писал(а):Подключил его библиотекой One Wire. И заметил что при первом включении Ардуино включает на секунду реле нагрева при отсутствии сигнала с датчика уровня.
  Это не проблема Ардуино .
Если Вы делаете какую-либо автоматику ,то нужно выполнить одно из правил .
Питание на исполнительные устройства нужно подавать только тогда когда контроллер готов к работе.
Кстати об этом ни где не слыхал ,чтобы кто-то об этом задумывался.
Делается это просто .Берем свободный выход контроллера и подключаем его к реле подающее питание в схему с исполнительными устройствами(или включаем реле которые их коммутируют ) ,выход включаем через таймер , или делаем небольшую схемку самотестирования после которого даётся разрешение на работу исп. устройств.

Подводные камни подключаемых библиотек

Добавлено: 17.09.2015{, 10:36}
Андрейка
Спасибо большое. Я так понимаю, что нужно ставить отдельное реле времени и ставить на нем задержку включения подачи напряжения на катушки управляющих реле. Через секунд 5 пока Ардуино инициализирует библиотеки и пощелкает всеми релюхами можно будет врубать силу.
Использовать контроллер по моему не возможно он при запуске выводит 1 на выхода.

Подводные камни подключаемых библиотек

Добавлено: 17.09.2015{, 22:26}
Гость
Да, так и делайте...
В электрике в станках ,для безопасности применяют кнопки пуск и стоп, это обязательно.
Это сделано для того чтобы в случае пропадания питания в сети ,аппарат выключится и не смог включиться самопроизвольно при возобновлении подачи напряжения!
А так же любой промышленный аппарат должен быть оснащён кнопкой аварийного стопа.

Подводные камни подключаемых библиотек

Добавлено: 17.09.2015{, 23:39}
Сергей
Андрейка писал(а):Подключил его библиотекой One Wire. И заметил что при первом включении Ардуино включает на секунду реле нагрева при отсутствии сигнала с датчика уровня.
Когда я писал программы на ассемблере, то первыми командами были инициализация стековой памяти, и срезу же инициализация портов контроллера. Это первые 10 тактов работы ЦПУ после сброса. В принципе порты можно настроить сразу после старта, самыми первыми командами. Тогда такие сработки выводов, даже если и будут (если не ошибаюсь при старте контроллера все выводы уст. в "0" на пару микросекунд, так работают МК ATMEL), то длительность их будет равна длительности нескольких тактовых импульсов контроллера. Электромагнитные релюхи сработать не успевают.

Совет: (в Вашем случае может и не помочь, но все же...) Инвертируйте схемотехнически вход реле (через транзистор с общим эмиттером). И соответственно в программе инвертируйте необходимые блоки.
Еще попробуйте вручную прописать команды настройки портов в IDE перед загрузкой в МК.

Подводные камни подключаемых библиотек

Добавлено: 19.09.2015{, 21:06}
Андрейка
Спасибо за советы. Я пока слаб в програмировании и вряд ли смогу скорректировать программу на С+.  Мне проще поставить реле времени на Din рейку. Я эту тему поднял потому что нигде этот момент не заострялся. Появление 1 на выходах мне кажется связано с библиотеками а не с работой самого контроллера. Плюс еще эти китайские 8 канальные релейные модули странные. Чтобы реле включилось нужно выход инвертировать в программе. Я когда их купил и на работе проверял блоком питания 5В подумал что они вообще бракованные, не включались они не в какую. Если на выход повесить светодиод и реле то светодиод будет загораться при 1 а реле не включиться пока выход не инвертируешь. Может это из за оптронной развязки ?  Вообщем это непонятный момент. ТЭНы, ворота, насосы могут и запуститься на пару секунд при первом включении или при перезагрузке.

Подводные камни подключаемых библиотек

Добавлено: 19.09.2015{, 21:24}
Max
А не получиться программно отключать входы в FLProg пока не пройдут переходные процессы, а потом их активировать?

Подводные камни подключаемых библиотек

Добавлено: 31.07.2017{, 15:18}
Сергей
Сергей писал(а):Инвертируйте схемотехнически вход реле
Если кому пригодится...
Что бы избежать кратковременного включения реле при старте контроллера нужно использовать модули реле с активным управляющем сигналом лог. 1
У меня в наличии есть только китайские с активным сигналом "0". Очень просто переделал его на включение от "1". Заменил транзистор с p-n-p  на n-p-n (под рукой были цифровые(с резисторами) на ток коллектора 100 мА), развернул диод и два светодиода (поменял полярность их включения наоборот) и поменял полярность питания модуля реле. Теперь оно срабатывает по уровню лог. 1. В программе МК на управляющий порт, к которому подключена релюха, подается лог. 1 через 2 сек после старта с помощью таймера.
_uVideoPlayer({'url':'');