FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Воскресенье, 22.10.2017, 22:15
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 4«1234
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Кратковременное включение реле при включении ардуины
Кратковременное включение реле при включении ардуины
sser Дата: Суббота, 11.06.2016, 15:02 | Сообщение # 46
Подполковник
Группа: Проверенные
Сообщений: 265
Награды: 7
Репутация: 4
Статус: Offline
Лучше попробовать так:
С одного из выходов ардуины снимать меандр частотой около 1000Гц , который будет свидетельствовать о запуске программы ,тогда мы будем точно уверенны что микроконтроллер работает и можно подключать все реле.
Прикрепления: 4447981.jpg(18Kb)


 
DerAlex Дата: Суббота, 11.06.2016, 15:14 | Сообщение # 47
Полковник
Группа: Проверенные
Сообщений: 353
Награды: 3
Репутация: 7
Статус: Offline
В реальности не нужно конденсатор такой большой емкости , хватит 20-30 мкф.
Так как задержка нужна порядка 100-200 мс.Можно паралельно конденсатору поставить разрядный резистор.Транзистор открывается при превышении напряжения на базе 7,5 вольт из за стабилитрона.Напряжение включения и выключения любого реле различны то есть уже есть гистерезис.

Добавлено (11.06.2016, 15:14)
---------------------------------------------
Кто ни будь уже спаял эту схему и опробовал ? Или это только чисто теоретические споры ?


аврора
 
Sancho Дата: Воскресенье, 12.06.2016, 00:39 | Сообщение # 48
Генерал-майор
Группа: Проверенные
Сообщений: 462
Награды: 13
Репутация: 13
Статус: Offline
Цитата В этой схеме не понятно по какой цепи будет происходить разряд конденсатора ?Т.е. в реале это не будет работать , нужно предусмотреть мгновенный разряд ёмкости при пропадании питания 12В.-Иначе ,реле не отключится если не выждать время разряда , и включится сразу!
паралельно R3(или 100к) диод катодом вверх. Питать схему той-же цепью, что и стабилизатор ардуинки.
Цитата sser ()
Еще в этой схеме нужен триггер Шмидта , выполняется это с помощью резистора 1-10 Ом включенным последовательно с эмиттером на минус питания, в противном случае реле будет дребезжать ,от малейшего колебания напряжения, или пульсаций.

Резистор в цети эмитера выполняет роль ООС, но никак не тригера!
P.S. Для рэс15 817 излишен. 312 был стар ещё в мою молодость, хотя-бы 315, причём с любой буквой. поверьте.

Добавлено (12.06.2016, 00:39)
---------------------------------------------
Цитата sser ()
Лучше попробовать так:С одного из выходов ардуины снимать меандр частотой около 1000Гц , который будет свидетельствовать о запуске программы ,тогда мы будем точно уверенны что микроконтроллер работает и можно подключать все реле.
Наверно, самый 100% результат(сигнал), что всё заработало. Но 829??? какой контактор? тогда и никакое реле ненадо, если...
даёшь 210!!! П smile


Если не получится на контроллере - сделаю на тразисторах и 155/176...

Сообщение отредактировал Sancho - Воскресенье, 12.06.2016, 00:56
 
DerAlex Дата: Воскресенье, 12.06.2016, 10:51 | Сообщение # 49
Полковник
Группа: Проверенные
Сообщений: 353
Награды: 3
Репутация: 7
Статус: Offline
Схемы из интернета.Не нравится , придумайте сами.

аврора

Сообщение отредактировал DerAlex - Воскресенье, 12.06.2016, 11:09
 
Сергей Дата: Понедельник, 31.07.2017, 15:29 | Сообщение # 50
Модератор
Группа: Модераторы
Сообщений: 494
Награды: 16
Репутация: 7
Статус: Offline
Если кому пригодится...
Что бы избежать кратковременного включения реле при старте контроллера нужно использовать модули реле с активным управляющем сигналом лог. 1
У меня в наличии есть только китайские с активным сигналом "0". Очень просто переделал его на включение от "1". Заменил транзистор с p-n-p  на n-p-n (под рукой были цифровые(с резисторами) на ток коллектора 100 мА), развернул диод и два светодиода (поменял полярность их включения наоборот) и поменял полярность питания модуля реле. Это самый простой способ. Теперь оно срабатывает по уровню лог. 1. В программе МК на управляющий порт, к которому подключена релюха, подается лог. 1 через 2 сек после старта с помощью таймера.


Выгодные покупки на AliExpress в Cashback ePN! Возврат до 12 % от стоимости ЛЮБОГО товара!
 
aidar_i Дата: Четверг, 03.08.2017, 12:16 | Сообщение # 51
Майор
Группа: Проверенные
Сообщений: 158
Награды: 4
Репутация: 5
Статус: Offline
Я сделал проще, перерезал в нескольких местах дорожки и спаял в других местах. Так "перевернул" 4х канальный блок реле. В группе FLProg "в контакте" выложил фото и схему. Блок работает штатно, но только от высокого уровня. И нет при пуске МК включений.

Сообщение отредактировал aidar_i - Четверг, 03.08.2017, 12:17
 
RedSky Дата: Вторник, 10.10.2017, 12:29 | Сообщение # 52
Сержант
Группа: Проверенные
Сообщений: 41
Награды: 2
Репутация: 0
Статус: Offline
Есть простой программный способ решения. В секции setup ещё до pinMode (можно в самом начале) прописать digitalWrite(pin, HIGH).
Таким образом высокий уровень будет установлен сразу после включения. Думал сделать блок пользователя, но там digitalWrite(pin, HIGH) вставляется после инициализации дисплея и результат 0.
 
Сергей Дата: Вторник, 10.10.2017, 16:43 | Сообщение # 53
Модератор
Группа: Модераторы
Сообщений: 494
Награды: 16
Репутация: 7
Статус: Offline
Цитата RedSky ()
Есть простой программный способ решения. В секции setup ещё до pinMode (можно в самом начале) прописать digitalWrite(pin, HIGH).
Прежде чем писать подобную ерунду, и вводить в заблуждение других, изучите работу микроконтроллера. Хотя бы простенького ATtiny2313.
В начале работы контроллера (включение или сброс), PC (program counter - программный счетчик, это счетчик текущего адреса программной памяти МК по которому выполняются команды, записанные в программной памяти) устанавливается в ноль. Начало выполнения программы с нулевого адреса программной памяти. Это просто ячейка памяти, значение в которой увеличивается с каждым тактом генератора. Арифметико-Логическое Устройство ("мозг" МК) использует это значение для того что бы понять с какого адреса считать команду.
Соответственно при старте в PC всегда ноль. По этому, нулевому адресу программной памяти, любой компилятор, любого языка ставит команду безусловного перехода на другой адрес (немного далее от нулевого). Почитайте что такое переопределение векторов прерываний. Попробую русским по белому объяснить. В МК есть всякие системы прерываний. Это внешние, таймеры, АЦП и др., подробней в яндекс. Каждому прерыванию присваивается адрес в программной памяти. И какие же это адреса? Ответ - начиная с первого. То есть при происхождении прерывания, исполнение основного цикла программы останавливается, значение PC одной командой записывается в стек (это специальные команды (2 шт) которые последовательно сохраняют и считывают данные рабочих регистров таким образом что, программе (то есть вам при ее написании) нет необходимости где то хранить адреса куда временно сохраняются регистры. Они сохраняются последовательно позаранее определенному адресу. И считываются последовательно в обратном порядке. Так вот при возникновении прерывания значение РС и остальных рабочих регистров сохраняются в стек.


Выгодные покупки на AliExpress в Cashback ePN! Возврат до 12 % от стоимости ЛЮБОГО товара!
 
Сергей Дата: Вторник, 10.10.2017, 16:43 | Сообщение # 54
Модератор
Группа: Модераторы
Сообщений: 494
Награды: 16
Репутация: 7
Статус: Offline
Далее подпрограмма обработки прерывания еще сохраняет рабочие регистры (в АТтини2313 это r16 r17), которые будт в ней использоваться. Использовать их будет АЛУ при вычислениях.
Как говорил выше каждому прерыванию присвоен свой адрес начала подпрограммы обработки прерываний, которые идут последовательно один за другим после нулевого. Так вот по этим адресам также как и на нулевом адресе, стоят команды безусловного перехода на другой адрес. А по адресам неиспользуемых прерываний стоят команды reti (это выход из подпрограммы прерываний. Есть команда ret это выход из подпрограммы).
Далее напишу на ассемблере начало программной памяти... Условно и не с точным количеством команд:
00   команда безусловного перехода на адрес 05 (пример)//    Reset
01   reti    //например прерывание от переполнения таймера Т0, сразу же команда выхода из ПП обработки прерывания
02   reti   //например прерывание от переполнения таймера Т1
03   команда безусловного перехода на адрес 153 (пример) //например прерывание от внешнего источника
04   reti  //выход из какойто подпрограммы обработки прерывания
05   начало выполнения нашей программы всякие там функции setup, main....
06   .....

примерно так, извините, если не понятно, в яндексе лучше расписано.
Только  с адреса 05 (в нашем примере) начинается выполнение нашей программы. И первое что необходимо в любой программе это назначить адрес (желательно в конце) оперативной памяти, по которому будет сохраняться стековая память - адрес начала стековой памяти (регистр SP - указатель стека, в него записать адрес последней!!! ячейки ОЗУ). Это делается потому что до начала основного цикла (Main), могут возникнуть прерывания и АЛУ текущий адрес PC сохранит например по адресу 00 в ОЗУ. А подпрограмма обработки в этот адрес может что то "свое" записать и по выполнении команды reti в РС вернется не тот адрес на котором остановилась основная программа, а какойнить другой (результат каких то вычислений в подпрограмме)... Далее идут команды настройки периферии (таймеров, счетчиков, ПОРТОВ ввода-вывода) в IDE это функция Setup.
В Ардуино ИДЕ все эти переадресации векторов прерываний делаются автоматически при компиляции, потому что это уже углубленные знания работы контроллера и начинающим пользователям об этом думать незачем, но они есть по любому. И на каком бы языке вы не писали программу, все равно она копилируется в машинный код. А машине по любому надо указать по каким адресам находятся подпрограммы обработки прерываний...
Так вот к чему все это?
Цитата RedSky
Цитата
В секции setup ещё до pinMode (можно в самом начале)


Секция Setup это не начало. Начало это нулевой адрес программы. К которому доступа через Arduino IDE нет. Точнее нужно использовать ассемблерские команды.
А срабатывание реле это инициализация ВСЕХ пинов контроллера, которые ЕЩЕ ДО начала (имею ввиду нулевой адрес программы) выполнения программы устанавливаются в ноль на несколько тактов задающего генератора.
И щелканье реле с нулевым активным сигналом, по любому будет, что бы вы в Setup-е не написали.
Если кто не понял пишите, попробую просто нарисовать кусок реальной программы на ассемблере простенького контроллера, так будет понятней.


Выгодные покупки на AliExpress в Cashback ePN! Возврат до 12 % от стоимости ЛЮБОГО товара!
 
RedSky Дата: Вторник, 10.10.2017, 17:18 | Сообщение # 55
Сержант
Группа: Проверенные
Сообщений: 41
Награды: 2
Репутация: 0
Статус: Offline
С ассемблером спорить не буду, но способ работает. Возможно импульс настолько короткий, что реле не успевает сработать, но если
digitalWrite(pin, HIGH) будет после инициализации портов (и перед инициализацией дисплея) можно успеть заметить вспышку светодиода (реле не успевает), в протеусе импульс 48 мкс. Так что основной тормоз здесь дисплей.
 
Сергей Дата: Вторник, 10.10.2017, 17:26 | Сообщение # 56
Модератор
Группа: Модераторы
Сообщений: 494
Награды: 16
Репутация: 7
Статус: Offline
Цитата RedSky ()
Возможно импульс настолько короткий, что реле не успевает сработать
100%.
Цитата RedSky ()
но способ работает
Способ не работает, просто Вам повезло. Не работает потому что
Цитата RedSky ()
импульс настолько короткий
а так, как он есть, значит Вам повезло, а
Цитата RedSky ()
но если digitalWrite(pin, HIGH) будет после инициализации портов
Это уже костыли. Сегодня на столе у Вас работает, а завтра кто по такому принципу подключит ТЭН, через тиристор, или двигатель, и не дай Бог получит повреждения. Все из за некомпетентного совета.

Здесь уже обсуждать нечего. При старте контроллера все порты устанавливаются в ноль на короткое время. С этим надо смириться. Если включение нагрузки при старте недопустимо, то надо использовать реле с высоким уровнем управляющего сигнала! Или переделать реле с низким управляющим сигналом. Все остальное костыли.


Выгодные покупки на AliExpress в Cashback ePN! Возврат до 12 % от стоимости ЛЮБОГО товара!
 
Форум » Основной » Спросить у знатоков » Кратковременное включение реле при включении ардуины
Страница 4 из 4«1234
Поиск:

FLProg © 2017
Яндекс.Метрика