You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
365 lines
7.5 KiB
365 lines
7.5 KiB
void nagruz ()
|
|
{
|
|
DateTime now = rtc.now();
|
|
//*********************************
|
|
hour1 = now.hour();
|
|
minute1 = now.minute();
|
|
second1 = now.second();
|
|
month1 =now.month();
|
|
day1= now.day();
|
|
year1 =now.year();
|
|
week=now.dayOfTheWeek();
|
|
if(week==0){week=7;}
|
|
|
|
//int tt;//время
|
|
tt=hour1*100+minute1;
|
|
//****************1************************
|
|
//int m=0;
|
|
int oldn1=n1;
|
|
|
|
|
|
n1=0;
|
|
n2=0;
|
|
n3=0;
|
|
n4=0;
|
|
|
|
if(vent==0)
|
|
{n5=0;
|
|
}
|
|
|
|
if(fn==1)
|
|
{n5=1;
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int m=0 ; m < 6; m++)//перебираем таймеры от 1(0) до 6(5)
|
|
{
|
|
if(timer_1[m][week+15]==1)//week
|
|
{
|
|
if(timer_1[m][0]==1)//1-3 on off
|
|
{
|
|
if ((tt >= timer_1[m][4]*100+timer_1[m][5])&&(tt < timer_1[m][6]*100+timer_1[m][7]))
|
|
{
|
|
switch (timer_1[m][3]) {
|
|
case 1:
|
|
n1=1;
|
|
timernumb=m;
|
|
break;
|
|
case 2:
|
|
n2=1;
|
|
break;
|
|
case 3:
|
|
n3=1;
|
|
break;
|
|
case 4:
|
|
n4=1;
|
|
break;
|
|
case 5:
|
|
n5=1;
|
|
break;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//*******2************************************************
|
|
if(timer_1[m][1]==1)
|
|
{
|
|
if ((tt >= timer_1[m][8]*100+timer_1[m][9])&&(tt < timer_1[m][10]*100+timer_1[m][11]))
|
|
{
|
|
switch (timer_1[m][3]) {
|
|
case 1:
|
|
n1=1;
|
|
timernumb=m;
|
|
break;
|
|
case 2:
|
|
n2=1;
|
|
break;
|
|
case 3:
|
|
n3=1;
|
|
break;
|
|
case 4:
|
|
n4=1;
|
|
break;
|
|
case 5:
|
|
n5=1;
|
|
break;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//*****************3*******************************************************************
|
|
if(timer_1[m][2]==1)
|
|
{
|
|
if ((tt >= timer_1[m][12]*100+timer_1[m][13])&&(tt < timer_1[m][14]*100+timer_1[m][15]))
|
|
{
|
|
switch (timer_1[m][3]) {
|
|
case 1:
|
|
n1=1;
|
|
timernumb=m;
|
|
break;
|
|
case 2:
|
|
n2=1;
|
|
break;
|
|
case 3:
|
|
n3=1;
|
|
break;
|
|
case 4:
|
|
n4=1;
|
|
break;
|
|
case 5:
|
|
n5=1;
|
|
break;
|
|
|
|
}
|
|
}
|
|
}//1-3 on off
|
|
//*******************************************************************************************
|
|
}//week
|
|
}//timer
|
|
if(oldn1==n1)
|
|
{timon1=0;//флаг события перключение первого таймера
|
|
}
|
|
else
|
|
{
|
|
timon1=1;// событие есть
|
|
}
|
|
|
|
if(n2==1)o2=0;//сброс ручного вкл при вкл таймера
|
|
uprav ();
|
|
|
|
//***************Режим ночь *************************************************************
|
|
night=0;
|
|
if (timernight[0]==1)
|
|
{if ( timernight[1]*100+timernight[2] > timernight[3]*100+timernight[4])
|
|
{ if ((tt >= timernight[1]*100+timernight[2])&&(tt <= 2359))
|
|
{//l=timernight[5]*255/100;
|
|
analogWrite(7,timernight[5]*255/100);
|
|
night=1;
|
|
//ulamptimer ();
|
|
}
|
|
if (tt < timernight[3]*100+timernight[4])
|
|
{//l=timernight[5]*255/100;
|
|
analogWrite(7,timernight[5]*255/100);
|
|
night=1;
|
|
// ulamptimer ();
|
|
}
|
|
}
|
|
if ( timernight[1]*100+timernight[2] < timernight[3]*100+timernight[4])
|
|
{ if ((tt >= timernight[1]*100+timernight[2])&&(tt < timernight[3]*100+timernight[4]))
|
|
{//l=timernight[5]*255/100;
|
|
analogWrite(7,timernight[5]*255/100);
|
|
night=1;
|
|
// ulamptimer ();
|
|
}
|
|
}
|
|
}
|
|
if(night==0)//режим ночь выкл
|
|
{analogWrite(7,timernight[6]*255/100);//установка свечения LCD в режиме день
|
|
}
|
|
else
|
|
{analogWrite(7,timernight[5]*255/100);//установка свечения LCD в режиме ночь
|
|
}
|
|
//**************************************************************************************************
|
|
|
|
|
|
}
|
|
|
|
void uprav ()
|
|
{
|
|
//***********UPR NAGRUZKOY*************************************************************
|
|
bool a=0;
|
|
Serial.print("rasv,zak:"); // событие в процессе
|
|
Serial.print(rasv); // печатаем данные175
|
|
Serial.print(","); // печатаем данные175
|
|
Serial.println(zak); // печатаем данные175
|
|
Serial.print("rasvet,zakat:"); // событие свершилось
|
|
Serial.print(rasvet); // печатаем данные175
|
|
Serial.print(","); // печатаем данные175
|
|
Serial.println(zakat); // печатаем данные175
|
|
|
|
if(timon1==1)
|
|
{ if(n1==1)
|
|
{digitalWrite(2, HIGH); // включает светодиод
|
|
if(rasvet==0)
|
|
{ mode=6;//рассвет
|
|
s=1;
|
|
//rasv=1;
|
|
rasvet=1;
|
|
zakat=0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
digitalWrite(2, LOW);
|
|
if(zakat==0)
|
|
{mode=7;
|
|
s=1;
|
|
// zak=1;
|
|
rasvet=0;
|
|
zakat=1;
|
|
}
|
|
|
|
}
|
|
}
|
|
//*************************************************************
|
|
if((n2==1)||(o2==1))
|
|
{digitalWrite(3, HIGH); // включает светодиод
|
|
}
|
|
else
|
|
{
|
|
digitalWrite(3, LOW);
|
|
}
|
|
|
|
//******************************************************
|
|
if((n3==1)||(o3==1))
|
|
{digitalWrite(4, HIGH); // включает светодиод
|
|
}
|
|
else
|
|
{
|
|
digitalWrite(4, LOW);
|
|
}
|
|
if(n4==1)
|
|
{//a=digitalRead(5);
|
|
if(a==0)digitalWrite(5, HIGH); // включает светодиод#
|
|
|
|
}
|
|
else
|
|
{a=digitalRead(5);
|
|
if(a==1)digitalWrite(5, LOW);
|
|
}
|
|
if(n5==1)
|
|
{digitalWrite(6, HIGH); // включает светодиод
|
|
}
|
|
else
|
|
{if(vent==0)
|
|
{digitalWrite(6, LOW);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void ulamp ()
|
|
{
|
|
int lamp;
|
|
lamp=l1*255/100;
|
|
//analogWrite(7,lamp);
|
|
|
|
|
|
lamp=l2*255/100;
|
|
analogWrite(8,lamp);
|
|
zoom2=l2;
|
|
zoom3=l3;
|
|
lamp=l3*255/100;
|
|
analogWrite(12,lamp);
|
|
|
|
|
|
}
|
|
|
|
void ras1()
|
|
{ Serial.println(mr66);
|
|
if(mr66>1500)
|
|
{ timezoom++;
|
|
if(timezoom>40)
|
|
{zoom2=zoom2+1;
|
|
zoom3=zoom3+1;
|
|
if(zoom2>14)zoom2=zoom2+5;
|
|
if(zoom3>14)zoom3=zoom3+5;
|
|
timezoom=0;
|
|
lm2=zoom2;//% на экране
|
|
l2=zoom2;
|
|
lm3=zoom3;//% на экране
|
|
l3=zoom3;
|
|
ulamp ();//l2 l3 рег в процентах от 0% до 100%
|
|
}
|
|
if(zoom2>70)rasv=0;
|
|
|
|
}
|
|
}
|
|
|
|
void zak1()
|
|
{
|
|
Serial.println(mr77);
|
|
if(mr77>500)
|
|
{ timezoom++;
|
|
if(timezoom>40)
|
|
{zoom2=zoom2-1;
|
|
zoom3=zoom3-1;
|
|
if(zoom2>20)zoom2=zoom2-5;
|
|
if(zoom3>20)zoom3=zoom3-5;
|
|
if(zoom2<1)
|
|
{
|
|
zoom2=0;
|
|
zoom3=0;
|
|
}
|
|
timezoom=0;
|
|
lm2=zoom2;//% на экране
|
|
l2=zoom2;
|
|
lm3=zoom3;//% на экране
|
|
l3=zoom3;
|
|
|
|
ulamp ();//l2 l3 рег в процентах от 0% до 100%
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
void rgb(){
|
|
//*****************************************************RGB *********************
|
|
//******* управление RGB лентой в 1 канале таймеров 1-6 те при n=1 ********
|
|
|
|
int tn;//заданное время вкл таймера
|
|
int tno;//заданное время выкл таймера
|
|
|
|
if(timer_1[timernumb][week+15]==1)//week
|
|
{
|
|
if(timer_1[timernumb][0]==1)//1-3 on off
|
|
{
|
|
tn=timer_1[timernumb][4]*100+timer_1[timernumb][5];
|
|
tno=timer_1[timernumb][6]*100+timer_1[timernumb][7];
|
|
if ((tt==tn )||(tt==tn+1 ))
|
|
{ mode=6;
|
|
s=1;
|
|
}
|
|
if ((tt==tno)||(tt==tno+1 ))
|
|
{ mode=7;
|
|
s=1;
|
|
}
|
|
}
|
|
|
|
if(timer_1[timernumb][1]==1)//1-3 on off
|
|
{
|
|
tn=timer_1[timernumb][8]*100+timer_1[timernumb][9];
|
|
tno=timer_1[timernumb][10]*100+timer_1[timernumb][11];
|
|
if ((tt==tn )||(tt==tn+1 ))
|
|
{ mode=6;
|
|
s=1;
|
|
}
|
|
if ((tt==tno)||(tt==tno+1 ))
|
|
{ mode=7;
|
|
s=1;
|
|
}
|
|
|
|
}
|
|
|
|
if(timer_1[timernumb][2]==1)//1-3 on off
|
|
{
|
|
tn=timer_1[timernumb][12]*100+timer_1[timernumb][13];
|
|
tno=timer_1[timernumb][14]*100+timer_1[timernumb][15];
|
|
if ((tt==tn )||(tt==tn+1 ))
|
|
{ mode=6;
|
|
s=1;
|
|
}
|
|
if ((tt==tno)||(tt==tno+1 ))
|
|
{ mode=7;
|
|
s=1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//***************************************************************************************************************************
|
|
|