Как вывести в секундах оставшееся значение на 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();
}