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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.06.2013, 01:41   #141
anton2122
Junior Member
 
Регистрация: 30.03.2012
Сообщений: 10
Вес репутации: 0
anton2122 is on a distinguished road
По умолчанию

Возможно кому то пригодится, поскольку светодиодные лампы стали все чаще быть основными источниками света, драйвер светодиодной лампы может спокойно работать без снаббера!
anton2122 вне форума   Ответить с цитированием
Старый 03.08.2013, 13:01   #142
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
По умолчанию

Собрал диммер на Atmega8. Там конечно немного другие инструкции, чем на Atmega168/328
При компиляции выдает следующие:
Цитата:
C:\Arduino\libraries\TimerOne\TimerOne.c pp: In member function 'void TimerOne::attachInterrupt(void (*)(), long int)':
C:\Arduino\libraries\TimerOne\TimerOne.c pp:117: error: 'TIMSK1' was not declared in this scope
C:\Arduino\libraries\TimerOne\TimerOne.c pp: In member function 'void TimerOne::detachInterrupt()':
C:\Arduino\libraries\TimerOne\TimerOne.c pp:125: error: 'TIMSK1' was not declared in this scope
C:\Arduino\libraries\TimerOne\TimerOne.c pp: In member function 'void TimerOne::start()':
C:\Arduino\libraries\TimerOne\TimerOne.c pp:142: error: 'TIMSK1' was not declared in this scope
C:\Arduino\libraries\TimerOne\TimerOne.c pp:143: error: 'GTCCR' was not declared in this scope
C:\Arduino\libraries\TimerOne\TimerOne.c pp:143: error: 'PSRSYNC' was not declared in this scope
А есть примеры аналогичного диммера для Atmega8 ???
Решил проблему внесения изменений в файл TimerOne.cpp
Цитата:
// enable support for ATMEGA8
#if defined(__AVR_ATmega8__)
#define TIMSK1 TIMSK
#define GTCCR SFIOR
#define PSRSYNC PSR10
#endif
http://code.google.com/p/arduino-tim...es/detail?id=8

Последний раз редактировалось dmitry123; 03.08.2013 в 13:16. Причина: Решено
dmitry123 вне форума   Ответить с цитированием
Старый 04.08.2013, 10:05   #143
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
По умолчанию

Оказалось это не решение проблемы. Перестает работать функция millis()
Хотя сам диммер в работе не проверял.
Вечером проверю.
dmitry123 вне форума   Ответить с цитированием
Старый 04.08.2013, 16:51   #144
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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   #145
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   #146
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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   #147
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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
Просмотров: 2998

Размер: 92.0 Кб
Admin вне форума   Ответить с цитированием
Старый 25.09.2013, 20:51   #148
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, 20:57   #149
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:01   #150
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
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 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 156 (пользователей: 0 , гостей: 156)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


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


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