24-11-2019, 22:47
// Własna FUNKCJA TIMER 1 (już poza pętlą loop)
boolean timer( int timerPin, byte hOn, byte mOn, byte sOn, byte hOff, byte mOff, byte sOff, byte timerStatus) {
if (timerStatus == 0) { // jeżeli status timera jest równy zero
digitalWrite(timerPin, OFF); //wyjście pod ktorym jest lampka jest wyłączona
return false; //zwraca wartosc false do stanu STATE odpowiadającego za włączenie lub wyłączenie lampki
};
boolean state = false; //początkowy stan false
long tOn = (long(hOn) * 3600) + (long(mOn) * 60) + long(sOn); //godzina wlaczenia timera
long tOff = (long(hOff) * 3600) + (long(mOff) * 60) + long(sOff); //godzina wylaczenia timera
//warunki czasowe włączenia i wyłączenia lampki
if (tOn < tOff) { //jeżeli czas włączenia jest < od czasu wyłączenia
if (currentTimeSec >= tOn && currentTimeSec < tOff) { //jeżeli aktualny czas >= od czasu włączenia i aktualny czas < od czasu wyłączenia
//czyli jak czas jest wiekszy od momentu wlaczenia lampki i momentu wylaczenia lampki, przedzial w ktorym jest wlaczona lampka
state = true; //zwraca stan STATE równy true czyli lampka się świeci
}
}
if (tOn > tOff) { //jeżeli czas włączenia jest większy od czasu wyłączenia
if (currentTimeSec >= tOn && currentTimeSec <= 86399) { //jeżeli aktualny czas >= czasowi włączenia i aktualny czas <= od północy
state = true; //zwraca wartość STATE true
}
if (currentTimeSec >= 0 && currentTimeSec < tOff) { //jeżeli obecny czas >= od zera i obecny czas < od czasu wyłączenia
state = true; //zwraca stan STATE true
}
}
if(swit == true){ //jezeli swit jest true to zmienia sie stan state lampki na true czyli powinna świecić
state = true;
}
if(zmierzch == true){ //jezeli zmierzch jest true to zmienia sie stan state lampki na false i nie powinna się swiecic
state = false;
}
if (state) {
analogWrite(led, jasnosc); // wejscie pwm jest deklarowane na pin leda o okreslonej jasnosci rownej 0
jasnosc += wypelnienie;
if (jasnosc > 255) //jesli jest powyzej 255, to ustalamy spowrotem 255
jasnosc = 255;
return true; //zwraca wartosc state na true
}
else {
analogWrite(led, jasnosc); // wejscie pwm deklarowane na pin led o jasnosci rownej 0
jasnosc -= wypelnienie;
if (jasnosc < 0) //jesli spadlo nam ponizej zera, to wracamy na wartosc 0.
jasnosc = 0;
return false; //zwraca wartosc state na false
}
}
boolean timer( int timerPin, byte hOn, byte mOn, byte sOn, byte hOff, byte mOff, byte sOff, byte timerStatus) {
if (timerStatus == 0) { // jeżeli status timera jest równy zero
digitalWrite(timerPin, OFF); //wyjście pod ktorym jest lampka jest wyłączona
return false; //zwraca wartosc false do stanu STATE odpowiadającego za włączenie lub wyłączenie lampki
};
boolean state = false; //początkowy stan false
long tOn = (long(hOn) * 3600) + (long(mOn) * 60) + long(sOn); //godzina wlaczenia timera
long tOff = (long(hOff) * 3600) + (long(mOff) * 60) + long(sOff); //godzina wylaczenia timera
//warunki czasowe włączenia i wyłączenia lampki
if (tOn < tOff) { //jeżeli czas włączenia jest < od czasu wyłączenia
if (currentTimeSec >= tOn && currentTimeSec < tOff) { //jeżeli aktualny czas >= od czasu włączenia i aktualny czas < od czasu wyłączenia
//czyli jak czas jest wiekszy od momentu wlaczenia lampki i momentu wylaczenia lampki, przedzial w ktorym jest wlaczona lampka
state = true; //zwraca stan STATE równy true czyli lampka się świeci
}
}
if (tOn > tOff) { //jeżeli czas włączenia jest większy od czasu wyłączenia
if (currentTimeSec >= tOn && currentTimeSec <= 86399) { //jeżeli aktualny czas >= czasowi włączenia i aktualny czas <= od północy
state = true; //zwraca wartość STATE true
}
if (currentTimeSec >= 0 && currentTimeSec < tOff) { //jeżeli obecny czas >= od zera i obecny czas < od czasu wyłączenia
state = true; //zwraca stan STATE true
}
}
if(swit == true){ //jezeli swit jest true to zmienia sie stan state lampki na true czyli powinna świecić
state = true;
}
if(zmierzch == true){ //jezeli zmierzch jest true to zmienia sie stan state lampki na false i nie powinna się swiecic
state = false;
}
if (state) {
analogWrite(led, jasnosc); // wejscie pwm jest deklarowane na pin leda o okreslonej jasnosci rownej 0
jasnosc += wypelnienie;
if (jasnosc > 255) //jesli jest powyzej 255, to ustalamy spowrotem 255
jasnosc = 255;
return true; //zwraca wartosc state na true
}
else {
analogWrite(led, jasnosc); // wejscie pwm deklarowane na pin led o jasnosci rownej 0
jasnosc -= wypelnienie;
if (jasnosc < 0) //jesli spadlo nam ponizej zera, to wracamy na wartosc 0.
jasnosc = 0;
return false; //zwraca wartosc state na false
}
}