• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmiana stanów logicznych oświetlenia
#6
// 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
  }
}
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Zmiana stanów logicznych oświetlenia - przez Krzaczek - 24-11-2019, 22:47

Skocz do:


Przeglądający: 1 gości