Включение подсветки дисплея на время
- Войдите на сайт для отправки комментариев
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "stDHT.h"
DHT sens(DHT21);
DHT sens2(DHT11);
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей
int flag=0;
void setup()
{
lcd.init();
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
}
void loop()
{
int t = sens.readTemperature(2); // чтение датчика на пине 2
int h = sens.readHumidity(2); // чтение датчика на пине 2
delay(2000);
int t2 = sens2.readTemperature(3); // чтение датчика на пине 3
int h2 = sens2.readHumidity(3); // чтение датчика на пине 3
delay(2000);
lcd.clear();
lcd.print("HumStr: ");
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("TempStr: ");
lcd.print(t);
lcd.print(" C ");
delay(4000);
lcd.clear();
lcd.print("HumHome: ");
lcd.print(h2);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("TempHome: ");
lcd.print(t2);
lcd.print(" C ");
lcd.noBacklight();
if(digitalRead(14)==HIGH&&flag==0)
flag=1;
if(digitalRead(14)==LOW&&flag==1)
{
lcd.backlight();
flag=0;
}
}
И так по порядку вданном скетче: 2 датчика температуры и влажности DHT 11 и DHT 22, LCD1602 подключенный по I2C. Если использовать полностью данный скетч не меняя, то на экран выводятся данные с датчиков по очереди и распологаются на экране по 4 секунды. И если успеть нажать кнопку после того вывелись данные со второго датчика на экран, и еще не успели начать считываться с первого то включится экран на 8 секунд. А нужно что бы экран включался в любое время при нажатии на кнопку на какое то время, что бы можно было посмотреть данные с обоих датчиков и он погас. И До меня честно говоря не доходит как это можно сделать, пытался искать информацию можно ли производить какие то действия пока действует delay (похоже нет) искал альтернативы, millis() вроде получше в этом плане, но она не сбрасывается, точнее сбрасывается но через 50 дней, не понимаю как приспособить его сюда. Я новичек, сильно не бросайте камнями), это первый проект.
[/quote]
И До меня честно говоря не доходит как это можно сделать, пытался искать информацию можно ли производить какие то действия пока действует delay (похоже нет) искал альтернативы, millis() вроде получше в этом плане, но она не сбрасывается, точнее сбрасывается но через 50 дней, не понимаю как приспособить его сюда. Я новичек, сильно не бросайте камнями), это первый проект.
[/quote]
Легенда о сбросившейся миллис не была подтверждена научными экспедициями и в правильно приготовленном виде она не пытается прибегнуть к суициду. Читаем здесь (хорошая статья от старого участника форума) и пользуемся на здоровье.
на плате есть отдельная перемычка подсветки, можно её на отдельный пин вывести, правда по току не готов ответить, хватит ли.
на плате есть отдельная перемычка подсветки, можно её на отдельный пин вывести, правда по току не готов ответить, хватит ли.
По току не хватит однозначно (до 100мА может быть), и какой смысл отказываться от штатного библиотечного управления. У меня работает без каких либо проблем (тронули любую кнопку, две минуты подсвечивает, потом гаснет)