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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2014, 14:52   #301
g100m
Junior Member
 
Регистрация: 14.01.2014
Сообщений: 18
Вес репутации: 0
g100m is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

напряжение есть. что странно, оптосимистор как будто залипает. потому что если сделать dimmer4=255 а потом dimmer4=0, он начинает работать как ни в чем не бывало
g100m вне форума   Ответить с цитированием
Старый 24.03.2014, 14:52   #302
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Люди добрые выручайте. Я в программировании почти полный ноль.
Есть MEGA 2560 + Часы DS1307 Tiny RTC I2C module, 24C32 EEPROM

К пинам 3,11,12 подключены LED через мосфеты.
LED подсветка (назовём LW – pin3, LR – pin11 и LB – pin12) должна включаться и выключаться по времени. Т.е. например в 17:00 плавно в течении 5 минут включается LW и LR, далее в 21:55 начинает плавно гаснуть (5 минут), а в это время плавно включается LB. Затем в 23:00 плавно гаснет (5 минут) LB.

Вот для этого кода нужно плавное включение света в заданное время и плавное выключение в другое заданное время. Пока пробую только для LR(11 pin).
По времени всё идёт, а вот плавности никак не могу добиться.

PHP код:
// Библиотеки необходимые для работы модуля часов 
#include "Wire.h" 
#include "DS1307new.h" 

// библиотека экрана 
#include "LiquidCrystal.h" 
LiquidCrystal lcd(894567); 

int hours
int minutes
int LW 3
int LR 11
int LB 12
int On_Time =0
int Off_Time =0
int Curent_Time =0

void setup(){ 
Serial.begin(9600); 
lcd.begin(162); // запускаем библиотеку экрана 
pinMode(LWOUTPUT); 
pinMode(LROUTPUT); 
pinMode(LBOUTPUT); 


void loop(){ 
analogWrite(10100); 
RTC.getTime();// получить время от модуля 
RTC.hour
RTC.minute
printTimeToSerial(); // выводим полученное время в лог 
printTimeToLCD();; // выводи время на экран 
lcd.setCursor(01); // Set the cursor to column 0, line 1 
doSerialCommands(); // слушаем и выполняем команды из Serial 
On_Time=(20*60+27); 
Off_Time=(20*60+29); 
Curent_Time=RTC.hour*60+RTC.minute;//текущее время 
if(On_Time Off_Time//Проверка, таймер в течении одних суток? 

if (
Curent_Time >= On_Time && Curent_Time <= Off_Time
for(
int fadeValue 0fadeValue <= 255fadeValue +=3

analogWrite(LRfadeValue); 

else 
for(
int fadeValue 255fadeValue >= 0fadeValue -=3

analogWrite(LRfadeValue); 


else 
// если сутки сменились 

if ((
Curent_Time >= On_Time && Curent_Time <= 2820)||(Curent_Time >= && Curent_Time <= Off_Time))//2820=24часа*60 
for(int fadeValue 0fadeValue <= 255fadeValue +=3

analogWrite(LRfadeValue); 

else 
for(
int fadeValue 255fadeValue >= 0fadeValue -=3

analogWrite(LRfadeValue); 




// Выводит текущие время в Serial 
void printTimeToSerial(){ 

byte static prevSecond=0// тут будем хранить, сколько секунд было при прошлом отчете 

if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись 
Serial.print(RTC.hour); // часы 

Serial.print(":"); // разделитель 
Serial.print(RTC.minute); 

Serial.print(":"); 
Serial.println(RTC.second); 

prevSecond=RTC.second// запомнили когда мы "отчитались" 



// Выводит текущие время на LCD 

void printTimeToLCD(){ 
byte static prevSecond=0// тут будем хранить, сколько секунд было при выводе 

if(RTC.second!=prevSecond){ // что-то делаем только если секунды поменялись 
lcd.setCursor(11,0); // устанавливаем позицию курсора 

if(RTC.hour<10)lcd.print(" "); 
lcd.print(RTC.hour); // часы 

lcd.print( (RTC.second 2)?" ":":"); // разделитель моргает 

if(RTC.minute<10)lcd.print(0); // лидирующий ноль, если нужен 
lcd.print(RTC.minute); 

prevSecond=RTC.second// запомнили когда мы "отчитались" 



// устанавливает часы модуля на какое-то заранее определенное время 
void setSomeTime(){ 
RTC.stopClock();// останавливаем часы 
RTC.fillByHMS(20,24,0); // "подкручиваем стрелки на 2000 
RTC.setTime();// отправляем "подкрученное время" самому модулю 
RTC.startClock(); // и опять запускаем часы 


// слушает из Serial команды и выполняет их. Каждая команда - один символ. 
// доступны команды: 
// s - установить время указанное в функции setSomeTime() 
void doSerialCommands(){ 
if(
Serial.available()){ // что-нибудь пришло? 
char ch=Serial.read(); // читаем что пришло 

switch(ch){ 
case 
's'// команда установки времени 
setSomeTime(); // устанавливаем 
break; 

// тут, в будущем, мы можем добавлять дополнительные команды 
default:; 
// на неизвестную команду - ничего не делаем 
}; 



Заранее спасибо.
kirex вне форума   Ответить с цитированием
Старый 24.03.2014, 14:56   #303
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

А 5мин. не много для плавности? Вы даже не заметите как она будет темнеть
Admin вне форума   Ответить с цитированием
Старый 24.03.2014, 15:01   #304
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
А 5мин. не много для плавности? Вы даже не заметите как она будет темнеть
Мне это надо для аквариума.
Я думаю и одной минуты будет достаточно.
kirex вне форума   Ответить с цитированием
Старый 24.03.2014, 15:11   #305
g100m
Junior Member
 
Регистрация: 14.01.2014
Сообщений: 18
Вес репутации: 0
g100m is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

ну так что с вычислением действующего напряжения? для его вычисления мне нужно знать значение амплитуды идеальной синусоиды 50 герц на каждом из 255 отсчетов.
а как его найти я не соображу. может разбить 360гр на 255 и по углу считать?
g100m вне форума   Ответить с цитированием
Старый 24.03.2014, 15:19   #306
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от g100m Посмотреть сообщение
ну так что с вычислением действующего напряжения? для его вычисления мне нужно знать значение амплитуды идеальной синусоиды 50 герц на каждом из 255 отсчетов.
а как его найти я не соображу. может разбить 360гр на 255 и по углу считать?
Честно говоря не совсем понял о чём это вы.
11 пин - это PWM (0 соответствует 0В, а 255 - 5В)

Последний раз редактировалось kirex; 24.03.2014 в 15:24.
kirex вне форума   Ответить с цитированием
Старый 24.03.2014, 15:34   #307
g100m
Junior Member
 
Регистрация: 14.01.2014
Сообщений: 18
Вес репутации: 0
g100m is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

я про напряжение на нагрузке
g100m вне форума   Ответить с цитированием
Старый 24.03.2014, 15:39   #308
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от g100m Посмотреть сообщение
я про напряжение на нагрузке
Если честно, то опять не догнал.
Мне нужно чтобы при включении напруга на 11 пине росла плавно от 0 до 5В.
А в моём коде почему-то светдиод загорается сразу.
kirex вне форума   Ответить с цитированием
Старый 24.03.2014, 15:44   #309
g100m
Junior Member
 
Регистрация: 14.01.2014
Сообщений: 18
Вес репутации: 0
g100m is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

да я не про ваш код, предыдущую страницу читайте
g100m вне форума   Ответить с цитированием
Старый 24.03.2014, 16:14   #310
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
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от g100m Посмотреть сообщение
напряжение есть. что странно, оптосимистор как будто залипает. потому что если сделать dimmer4=255 а потом dimmer4=0, он начинает работать как ни в чем не бывало
Симистор отключается сам в нулевой точке
А какая связь dimmer с электромагнитным клапаном?
Admin вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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