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

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

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

#1

Сообщение Андрейка » 14.09.2015{, 20:58}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#2

Сообщение Max » 14.09.2015{, 21:10}

Питание как подключено?

Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

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

#3

Сообщение Андрейка » 16.09.2015{, 18:32}

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

Гость

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

#4

Сообщение Гость » 16.09.2015{, 23:55}

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

Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

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

#5

Сообщение Андрейка » 17.09.2015{, 10:36}

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

Гость

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

#6

Сообщение Гость » 17.09.2015{, 22:26}

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

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

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

#7

Сообщение Сергей » 17.09.2015{, 23:39}

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

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

Аватара пользователя
Андрейка
Рядовой
Сообщения: 22
Зарегистрирован: 08.09.2015{, 10:59}
Репутация: 0
Откуда: Санкт Петербург

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

#8

Сообщение Андрейка » 19.09.2015{, 21:06}

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

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

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

#9

Сообщение Max » 19.09.2015{, 21:24}

А не получиться программно отключать входы в FLProg пока не пройдут переходные процессы, а потом их активировать?

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

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

#10

Сообщение Сергей » 31.07.2017{, 15:18}

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

Ответить

Вернуться в «Спросить у знатоков»