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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.01.2013, 18:36   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию Многоканальный Dimmer, работающий в фоновом режиме

Первая версия Dimmer для Arduino, мозолила мне глаза и мне было даже стыдно перед пользователями за такой говнокод, но
все никак не получалось долгое время, проверить новый код в железе.
Вот сегодня я наконец то набрался сил и проверил
В общем все заработало с пол пинка.

Купить диммер



Схема подключения диммера к ардуино нано


Код dimmer для Arduino Mega

Приведенный ниже код использует таймер1 и внешнее прерывание 0
Число одновременно работающих Dimmer каналов проверенных мной 10шт. использовал для них выходы D4 по D13, можно увеличивать и дальше, но мне лень это было делать потому как больше 10 думаю ни кому не понадобится
Сразу скажу что 0-это максимальное свечение, 200-это минимальное свечение, 255 отключить свет
Для тестов добавил управление первым каналом Dimmer через UART
Если в сериал мониторе послать заглавную русскую букву "Г" то лампочка будет светится минимальным свечением
Если в сериал мониторе послать маленькую английскую букву "d" то лампочка будет светится на 50%
Если в сериал мониторе пробел то лампочка будет светится почти на максимуме

Можно использовать другой вариант кода dimmer
Управлять можно ступенчато из сериал монитора значениями от 0 до 9

Код для Библиотека CyberLib
PHP код:
#include "CyberLib.h" //Библиотека от Cyber-Place.ru
volatile uint8_t ticDimmer1Dimmer2Dimmer3;
uint8_t data;

void setup() 

  
D4_OutD5_OutD6_Out//Настраиваем порты на выход
  
D4_LowD5_LowD6_Low//установить на выходах низкий уровень сигнала
  
D2_In//настраиваем порт на вход для отслеживания прохождения сигнала через ноль  
  
    
StartTimer1(halfcycle40); //время для одного разряда ШИМ
    
StopTimer1(); //остановить таймер
    
UART_Init(115200); //инициализация порта

//CHANGE – прерывание вызывается при любом изменении значения на входе; 
//RISING – вызов прерывания при изменении уровня напряжения с низкого (Low) на высокий(HIGH) 
//FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкий (Low) 
    
attachInterrupt(0detect_upLOW);  // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
}
//********************обработчики прерываний*******************************
void halfcycle()  //прерывания таймера

  
tic++;  //счетчик  
  
if(Dimmer1 tic D4_High//управляем выходом
  
if(Dimmer2 tic D5_High;  //управляем выходом
  
if(Dimmer3 tic D6_High;  //управляем выходом 
}

void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту
{  
 
tic=0;             //обнулить счетчик
 
ResumeTimer1();   //запустить таймер
 
attachInterrupt(0detect_downHIGH);  //перепрограммировать прерывание на другой обработчик
}  

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту
{   
 
StopTimer1(); //остановить таймер
 
D4_LowD5_LowD6_Low//логический ноль на выходы
 
tic=0;       //обнулить счетчик
 
attachInterrupt(0detect_upLOW); //перепрограммировать прерывание на другой обработчик

//*************************************************************************
void loop() 
{
Start
  
if (UART_ReadByte(data)) Dimmer1=data;
  
   
Dimmer2=195//200=мин. 0=макс 
   
Dimmer3=0//200=мин. 0=макс 
End
Тест Dimmer
Миниатюры
Нажмите на изображение для увеличения
Название: Dimmer.png
Просмотров: 36009
Размер:	112.2 Кб
ID:	1030   Нажмите на изображение для увеличения
Название: dimmer.jpg
Просмотров: 5896
Размер:	33.8 Кб
ID:	1348   Нажмите на изображение для увеличения
Название: bott.png
Просмотров: 6680
Размер:	111.9 Кб
ID:	1588  
Admin вне форума   Ответить с цитированием
Старый 01.02.2013, 00:55   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

Управление Dimmer модулем с планшета
В качестве Wi-Fi используется роутер Nexx WT3020H с прошивкой CyberWrt

Admin вне форума   Ответить с цитированием
Старый 01.02.2013, 02:21   #3
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

Спасибо,работает.А возможно ли данным вариантом димера управлять через Serial ?
alex74 вне форума   Ответить с цитированием
Старый 01.02.2013, 10:16   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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 вне форума   Ответить с цитированием
Старый 01.02.2013, 22:00   #5
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

Спасибо.
alex74 вне форума   Ответить с цитированием
Старый 06.02.2013, 02:08   #6
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

Здравствуйте скетч не работает, схема работает с первым вариантом диммера.
alex74 вне форума   Ответить с цитированием
Старый 06.02.2013, 09:55   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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 вне форума   Ответить с цитированием
Старый 06.02.2013, 11:19   #8
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

В схеме заменен PC814 на FOD814 остальное один к одному.
Скетч без изменений ,только библиотеки отображаются в скетче черным шрифтом ,а обычно оранжевым(скетч компилируется и загружается нормально).
Нагрузка лампочка 40 ватт.
Загружаю с IDE 1.0.1.
Платформа Mega 2560.
alex74 вне форума   Ответить с цитированием
Старый 06.02.2013, 12:40   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию

С Mega 2560 работать не будет, потому что в nanopins.h описание пинов для Arduino Nano
Но это поправимо
Admin вне форума   Ответить с цитированием
Старый 06.02.2013, 14:31   #10
alex74
Junior Member
 
Регистрация: 01.02.2013
Адрес: Киев
Сообщений: 13
Вес репутации: 0
alex74 is an unknown quantity at this point
По умолчанию

Буду очень признателен.Не сочтите за наглость.

Последний раз редактировалось alex74; 06.02.2013 в 14:34.
alex74 вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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