Хочу сделать таймер, чтобы 16 часов лампочка горела, и 8 часов не горела. Для этого взял Ardruino UNO и реле к нему. Нашёл библиотеку "TimeLib" для реализации таймера. Но почему-то работает криво. Иногда сбрасывается и начинает отчёт заново. Что делаю неправильно?
#include <TimeLib.h>
#define RELAY_IN 3
time_t t;
int m;
int h;
int check;
int check_h;
void setup() {
// пин реле как выход
pinMode(RELAY_IN, OUTPUT);
Serial.begin(9600);
check, check_h = 0;
m, h = 0;
}
void loop() {
// prog
t = now();
if(t == 0){
if(check == 0){
digitalWrite(RELAY_IN, HIGH);
Serial.println("on");
check = 1;
}
} else if(h == 16) {
if(check_h == 0){
digitalWrite(RELAY_IN, LOW);
Serial.println("off");
check_h = 1;
}
}
// debug
if(hour(t) <= 15){
if(m != minute(t)){
m = minute(t);
Serial.println(m);
if(h != hour(t)){
h = hour(t);
Serial.println("ho:");
Serial.println(h);
}
}
} else if(hour(t) > 15) {
if(m != minute(t)){
m = minute(t);
Serial.println(m);
if(h != hour(t)){
h = hour(t);
Serial.println("ho:");
Serial.println(h);
}
}
}
if (day(t) == 2){
Serial.println("end");
t, check, check_h = 0;
setTime(t);
}
}