![]() |
|
|
#681 |
|
Junior Member
Регистрация: 26.04.2015
Сообщений: 8
Вес репутации: 0 ![]() |
имел в виду нечто ворде http://uniel.ru/catalog/2202
|
|
|
|
|
|
#682 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
По RS485 проще всего
Для этого понадобится сам драйвер RS485-TTL и дописать скетч |
|
|
|
|
|
#683 |
|
Junior Member
Регистрация: 25.07.2016
Сообщений: 2
Вес репутации: 0 ![]() |
Имеется 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(); } } |
|
|
|
|
|
#684 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
В шапке темы рабочий и проверенный код, без каких либо задержек
|
|
|
|
|
|
#685 | |
|
Junior Member
Регистрация: 26.04.2015
Сообщений: 8
Вес репутации: 0 ![]() |
Цитата:
|
|
|
|
|
|
|
#686 |
|
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 ![]() |
Непонятно почему, при плавной регулировке в диапазоне от 125 до 100 лампа начинает моргать, как будто симистор после импульса открывается на полную и в конце полуволны закрывается. Боролся уже по всякому. Снаббер почти не помогает. Симистор BTA225-800, оптика MOC3052/
|
|
|
|
|
|
#687 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вы сами собирали диммет? Если да то возможно что сопротивление на PC814 не соответсвует
|
|
|
|
|
|
#688 |
|
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 ![]() |
Собирал сам, на основе плавного пуска мощного пылесоса. Там схема практически один в один,только контроллер сдох. Вот его и меняю на ардуинку.
С работой диммера разобрался,уменьшил резистор на управляющем оптроне (MOC3052) все заработало отлично. При подаче питания на всю схему, движок, после загрузки ардуинки плавно разгоняется. Теперь не получается прикрутить кнопку пуск-стоп. Опрос входа на котором она висит из-за прерываний не происходит, в результате получается белиберда с пуск-стопом. Думаю надо опрашивать вход в момент обработки прерывания. Может кто решал задачу с обработкой цифрового входа при работе диммера? Последний раз редактировалось bublonik; 23.09.2016 в 22:05. Причина: Дополнение текста. |
|
|
|
|
|
#689 |
|
Junior Member
Регистрация: 20.09.2016
Сообщений: 3
Вес репутации: 0 ![]() |
Все, плавное включение-выключение кнопкой то же победил. Сделал обработку кнопки в момент работы прерывания по положительной полуволне.
|
|
|
|
|
|
#690 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Конденсатор 0,1мкф, одним концом на GND, другим на вход контроллера к которому подключена кнопка. Такой способ надежнее любых программных
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|