Очередность вывода даних на екран

Igor81
Offline
Зарегистрирован: 26.10.2020

Всем привет.

Есть робочий скетч, который отображает на екране информацию одновременно с двух датчиков. 

Помогите дописать скетч, чтоб на екране отображались  данные сначала  по одному датчику, и через паузу,  данные по другому датчику.

Заранее спасибо.

#include <LiquidCrystal.h>
#include "DHT.h"
DHT dht1(A0, DHT11);
LiquidCrystal lcd(2, 3, 4, 5, 6 , 7);

void setup() {
dht1.begin(); 
lcd.begin(20, 4);
lcd.setCursor(0,0);


}
void loop() {
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
int sensorValue = analogRead(A1);

lcd.setCursor(0,0);
lcd.write("GAS: ");
lcd.setCursor(6,0);
lcd.print(sensorValue);
    
    lcd.setCursor(0, 1);
    lcd.print("Dom   ");
    lcd.print(h1);
    lcd.print("% ");
    
    lcd.setCursor(13, 1);
    lcd.print(t1);
    lcd.print("*C");
delay(1000);
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

В смысле - написать кот за вас?

Igor81
Offline
Зарегистрирован: 26.10.2020

Только дописать )))

sadman41
Offline
Зарегистрирован: 19.10.2016

Зачем это нам?

Igor81
Offline
Зарегистрирован: 26.10.2020

Тогда подскажите, в каком направлении искать, и получите + к карме...

sadman41
Offline
Зарегистрирован: 19.10.2016

http://arduino.ru/tutorials/BlinkWithoutDelay
Добавите одну переменную-флажок - будете внутри условия ее инвертировать. Потом при ==true выводите одну инфу, при ==false - другую.

UPD: там, оказывается, уже флаг есть - ledState.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Igor81 пишет:

Тогда подскажите, в каком направлении искать, и получите + к карме...

Карма дело серьёзное. Подпишусь. Но и Вам портить не буду.

Короче - считываем данные со второго датчика и после delay(1000) выводим его на экран, а потом опять delay(1000). Хреново, но красиво.

Гля, забыл! Инициируем датчик вначале - это главное!

Igor81
Offline
Зарегистрирован: 26.10.2020
#include <LiquidCrystal.h>
#include "DHT.h"
DHT dht1(A0, DHT11);
LiquidCrystal lcd(2, 3, 4, 5, 6 , 7);
 
void setup() {
dht1.begin(); 
lcd.begin(20, 4);
lcd.setCursor(0,0);
 
 
}
void loop() {
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
int sensorValue = analogRead(A1);
 
lcd.setCursor(0,0);
lcd.write("GAS: ");
lcd.setCursor(6,0);
lcd.print(sensorValue);
    delay(1000); // добавил тут
    lcd.clear(); // добавил тут
    lcd.setCursor(0, 0);
    lcd.print("Dom   ");
    lcd.print(h1);
    lcd.print("% ");
    delay(1000); // добавил тут
    lcd.setCursor(13, 0);
    lcd.print(t1);
    lcd.print("*C");
    delay(1000);  // добавил тут
    lcd.clear(); // добавил тут
     
delay(1000);
}
 
 
Оказывается все очень "просто",// добавил тут, и заработало. СПС !!!
Igor81
Offline
Зарегистрирован: 26.10.2020

mykaida  + в карму !

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Igor81 пишет:

mykaida  + в карму !

Вы говорили про 2 датчика... п-ец моей карме :(

nik182
Offline
Зарегистрирован: 04.05.2015

Clear очень долгая операция. У меня но одном дисплее она занимала 1300 мс. Поэтому задержки надо ставить после clear или вообще ими на пользоваться, а заполнять экран пробелами, если на до совсем стереть. Если пишите одно и тоже то достаточно просто добавить насколько пробелов после записи, что бы подтирать хвост.