16.08.2016, 12:43 | #681 |
Junior Member
Регистрация: 26.04.2015
Сообщений: 8
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
имел в виду нечто ворде http://uniel.ru/catalog/2202
|
16.08.2016, 14:43 | #682 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
По RS485 проще всего
Для этого понадобится сам драйвер RS485-TTL и дописать скетч |
25.08.2016, 05:38 | #683 |
Junior Member
Регистрация: 25.07.2016
Сообщений: 2
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Имеется Nano (328) и диммер.
Код взял с этой темы. Работает, но с задержкой около одной секунды. На контроллере светодиод RX моргает моментально, сразу после отправки данных в порт, а уже спустя секунду изменятся яркость лампочки. Как минимизировать эту паузу? Код:
#include <TimerOne.h> volatile uint8_t tic ; uint8_t data; int Dimmer; void setup() { //*********************Настраиваем порты на выход********************** pinMode (3, OUTPUT); digitalWrite(3, LOW); // гасим оответствующий пин Dimmer = 10; //выставим яркость соответствующего диммера в 0 attachInterrupt(0, detect_up, LOW); // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень Timer1.initialize(40); // Интервал срабатывания таймера в мкс Timer1.attachInterrupt(halfcycle); //будет вызыватся каждый раз при отсчете заданого времени Timer1.stop(); Serial.begin(115200); //инициализация порта randomSeed(analogRead(0)); //псевдогенератор случайных чисел будет использовать шумы на аналог пин 0 Serial.begin(9600); } //********************обработчики прерываний******************************* void halfcycle() //прерывания таймера { tic--; //счетчик if (Dimmer > tic ) digitalWrite(3, HIGH); //управляем выходом (откроем семистор) } void detect_up() // обработка внешнего прерывания. Сработает по переднему фронту { tic = 200; //обнулить счетчик Timer1.resume(); //запустить таймер attachInterrupt(0, detect_down, HIGH); //перепрограммировать прерывание на другой обработчик } void detect_down() // обработка внешнего прерывания. Сработает по заднему фронту { Timer1.stop(); //остановить таймер digitalWrite(3, LOW); tic = 200; //обнулить счетчик attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик } void loop() { if (Serial.available() > 0) { Dimmer = Serial.parseInt(); } } |
25.08.2016, 10:13 | #684 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
В шапке темы рабочий и проверенный код, без каких либо задержек
|
25.08.2016, 14:01 | #685 | |
Junior Member
Регистрация: 26.04.2015
Сообщений: 8
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Цитата:
|
|
20.09.2016, 04:07 | #686 |
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Непонятно почему, при плавной регулировке в диапазоне от 125 до 100 лампа начинает моргать, как будто симистор после импульса открывается на полную и в конце полуволны закрывается. Боролся уже по всякому. Снаббер почти не помогает. Симистор BTA225-800, оптика MOC3052/
|
20.09.2016, 08:26 | #687 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Вы сами собирали диммет? Если да то возможно что сопротивление на PC814 не соответсвует
|
23.09.2016, 21:27 | #688 |
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Собирал сам, на основе плавного пуска мощного пылесоса. Там схема практически один в один,только контроллер сдох. Вот его и меняю на ардуинку.
С работой диммера разобрался,уменьшил резистор на управляющем оптроне (MOC3052) все заработало отлично. При подаче питания на всю схему, движок, после загрузки ардуинки плавно разгоняется. Теперь не получается прикрутить кнопку пуск-стоп. Опрос входа на котором она висит из-за прерываний не происходит, в результате получается белиберда с пуск-стопом. Думаю надо опрашивать вход в момент обработки прерывания. Может кто решал задачу с обработкой цифрового входа при работе диммера? Последний раз редактировалось bublonik; 23.09.2016 в 22:05. Причина: Дополнение текста. |
24.09.2016, 10:09 | #689 |
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Все, плавное включение-выключение кнопкой то же победил. Сделал обработку кнопки в момент работы прерывания по положительной полуволне.
|
25.09.2016, 10:24 | #690 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: Многоканальный Dimmer, работающий в фоновом режиме
Конденсатор 0,1мкф, одним концом на GND, другим на вход контроллера к которому подключена кнопка. Такой способ надежнее любых программных
|
Здесь присутствуют: 75 (пользователей: 0 , гостей: 75) | |
|
|