Как вывести в секундах оставшееся значение на LCD для "const unsigned long PERIOD1 = 3000;"

Нет ответов
ufo220
ufo220 аватар
Offline
Зарегистрирован: 29.11.2016

Доброго времени суток. Буду признателен за любую помощь. Начинающий . Перерыл весь интернет но не могу сообразить. Значит задача состоит вот в чем:  Из примера взял "Blink without Delay" добавил библиотеку "#include <LiquidCrystal.h>" и библиотеку "#include "DHT.h"". Добавил свои значения и все это заработало и вывелось на экран. Проблема осталась только в том что не могу вывести значения обратного отсчета "PERIOD1" и что бы при достижения 0-ой секунды заново пошел отсчет этого "PERIOD1".   Заранее благодарен. 

#include "DHT.h"
#define DHTPIN A5     // what pin we're connected to
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <Timer.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

const int LED1 = 11;                    
const int LED2 = 3;                    
const unsigned long PERIOD1 = 5000;  //60*60*1000;    //one hour
const unsigned long PERIOD2 = 1000;   
Timer T;                               //instantiate the timer object
#define ALARM 13 // pin where speaker is coneccted
float tmax=28,tmin=0,temp, umid;

void setup(void)
{
    dht.begin();
    lcd.begin(16, 2);
    //lcd.print("Time to Change");
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    T.oscillate(LED1, PERIOD1, LOW);
    T.oscillate(LED2, PERIOD2, HIGH);
 
}

void loop(void)
{     
      float t = dht.readTemperature();
      lcd.setCursor(6, 1);
      if (t > 28.00)lcd.print("ALARM");
      lcd.setCursor(6, 1);
      if (t < 29.00)lcd.print("     ");
      lcd.setCursor(0, 0);
      lcd.print("Temp:");
      lcd.setCursor(5, 0);
      lcd.print(t);
      lcd.setCursor(10, 0);
      lcd.print(" C");
      lcd.setCursor(13,0);
      if (digitalRead(11) == HIGH)lcd.print("OFF");
      if (digitalRead(11) == LOW)lcd.print("ON ");
      lcd.setCursor(0, 1);
      lcd.print("1-hour");       // КАК сюда вставить таймер оставшегося времени на переключение?
      lcd.setCursor(13,1);
      if (digitalRead(3) == HIGH)lcd.print(">>");
      if (digitalRead(3) == LOW)lcd.print("**");
      //lcd.print(millis() / 1000);
      T.update();
}