Как вывести в секундах оставшееся значение на LCD для "const unsigned long PERIOD1 = 3000;"
- Войдите на сайт для отправки комментариев
Втр, 29/11/2016 - 23:34
Доброго времени суток. Буду признателен за любую помощь. Начинающий . Перерыл весь интернет но не могу сообразить. Значит задача состоит вот в чем: Из примера взял "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(); }