Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2013, 16:51   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Можно использовать другой таймер
Admin вне форума   Ответить с цитированием
Старый 10.08.2013, 11:06   #2
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

У тех у кого возникают проблемы с димером, а именно вот такого палана:

Это может быть связано с тем, что МК не может распознать нарастающий и спадающий фронт.
Выход с оптрона может быть с "елочкой" (с небольшими шумами)

Тут два решения проблемы:
1. Замутить триггер Шмидта.
2. Изменить прерывания с возрастающего и спадающего фронта на LOW и HIGH.
PHP код:
  attachInterrupt(0detect_upLOW);  // настроить срабатывание прерывания int0 на pin 2  

  
Timer1.initialize(40);              // Интервал срабатывания таймера в мкс   
  
Timer1.attachInterrupt(halfcycle);   //будет вызыватся каждый раз при отсчете заданого времени 
  
Timer1.stop(); 
}
/**********************Обработчик прерываний******************************/ 
void halfcycle()  //прерывания таймера 
{  
  
tic++;  //счетчик   
  
if(Dimmer[0] < tic Driver1_High//управляем выходом 
  
if(Dimmer[1] < tic Driver2_High//управляем выходом 
  
if(Dimmer[2] < tic Driver3_High//управляем выходом  


void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту синусоиды 

  
tic=0;             //обнулить счетчик 
  
Timer1.resume();   //запустить таймер 
  
attachInterrupt(0detect_downHIGH);  //перепрограммировать прерывание на другой обработчик 
}   

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту синусоиды 
{    
  
Timer1.stop(); //остановить таймер

  
Driver1_Low;
  
Driver2_Low;
  
Driver3_Low;

  
tic=0;       //обнулить счетчик 
  
attachInterrupt(0detect_upLOW); //перепрограммировать прерывание на другой обработчик 

Но тут может чуть-чуть плавать скважность, что в принципе глазом не заметно, а по осциллографу видно, но абсолютно не критично.
p.s. Не забываем про фильтрующие кондеры по питанию рядом с МК
dmitry123 вне форума   Ответить с цитированием
Старый 05.09.2013, 15:47   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Спасибо dmitry123 за исправление бага
Теперь с параметрами LOW и HIGH лампочка на минимуме светится стабильно
Код в шапке подправил
Проверил со светодиодной лампой, тоже работает
Admin вне форума   Ответить с цитированием
Старый 09.09.2013, 20:50   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Сделал прототип платы ЛУТ-ом. Тестировал в боевых условиях. Будет заказана мелкая серия в Китае
Плата разведена под односторонний монтаж.
У прототипа внешний вид не привлекательный, так как сделан он в кустарных условиях
Разъемы выпаивал из разных устройств, поэтому они совершенно разные
MOC3021 у меня были только СМД, пришлось удлинить выводы
размер платы 4х2см
Название: prototype2.jpg
Просмотров: 2999

Размер: 92.0 Кб
Admin вне форума   Ответить с цитированием
Старый 25.09.2013, 20:51   #5
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию

Ваще не понял. Выходы есть, oK. Входы что? Куда управление подавать? На постоянный ток такой диммер не рассчитан, так понимаю, для управления светодиодной лентой 12В?
Sirocco вне форума   Ответить с цитированием
Старый 25.09.2013, 21:01   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Сообщение от Sirocco Посмотреть сообщение
Ваще не понял. Выходы есть, oK. Входы что? Куда управление подавать? На постоянный ток такой диммер не рассчитан, так понимаю, для управления светодиодной лентой 12В?
В шапке темы схема и описание
Admin вне форума   Ответить с цитированием
Старый 25.09.2013, 20:57   #7
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию

Собственно нужен диммер однокнопочный, ну на крайняк двух кнопочный. Одно короткое нажатие - выключаем или включаем на уровень который был ранее, если небыло, то на 100%. одно длительное нажатие - циклически меняем яркость.
Вроде просто всё, но не получается. На каком-то форуме даже ветку заводил, примеры были, но так и нет решения.
Sirocco вне форума   Ответить с цитированием
Старый 25.09.2013, 21:04   #8
Sirocco
Senior Member
 
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0
Sirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant futureSirocco has a brilliant future
По умолчанию

Тоесть только пятый и шестой выход и только через uart? Правильно понял?
Sirocco вне форума   Ответить с цитированием
Старый 25.09.2013, 21:15   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Через UART показал пример
Используемые порты D2 и D4
Admin вне форума   Ответить с цитированием
Старый 27.09.2013, 14:48   #10
wowa
Junior Member
 
Регистрация: 23.09.2013
Сообщений: 14
Вес репутации: 0
wowa is an unknown quantity at this point
По умолчанию

Привет всем. Меня тоже заинтересовал диммер, но немножко для другой цели. Я хочу управлять трехфазным нагревателем. Как тут быть с этим переходом ноля. Тут уж не подключишь всё параллельно разные детекторы для каждой фазы и силовая часть отдельно, но вот Ардуина то одна. С чего начать в коде три раза команды повторить с изменением пинов? Был бы признателен за высказаны идеи.
wowa вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 20 (пользователей: 0 , гостей: 20)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:10. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика