Не обновляються данные на екране
- Войдите на сайт для отправки комментариев
Пт, 15/09/2017 - 21:43
Здраствуйте, подключены датчик давления и температуры BMP280 и датчик температуры и влажности DHT11. Данные выводяться на екран 1602 по I2C. Данные с DHT11 обновляються нормально а с BMP280 отображаеться только температура которая регистрировалась при старте и больше не обновляеться. В компорте данные обновляються нормально, проблема только с екраном. Скетч был собран из нескольких и доделан.
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//Adafruit_BMP280 bme;
//Adafruit_BMP280 bme(BMP_CS);
Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
byte customChar[8] = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
lcd.createChar(0, customChar);
lcd.begin(16, 2);
bme.begin();
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure());
Serial.println(" Pa");
Serial.print("Approx altitude = ");
Serial.print(bme.readAltitude(1013.25));
Serial.println(" m");
Serial.println();
lcd.print("t");
lcd.write((uint8_t)0);
lcd.print("OUT");
lcd.print (round(bme.readTemperature()));
lcd.print("C");
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
lcd.setCursor(9, 0);
lcd.print("t");
lcd.write((uint8_t)0);
lcd.print("IN");
lcd.print(round(t));
lcd.print("C");
lcd.setCursor(9, 1);
lcd.print("H");
lcd.print(h);
lcd.print("%");
delay(2000);
}
}
Координаты экрана восстанавливайте, а то Вы всё в одну строку печатаете, вот она у Вас с экрана и уехала.
Спасибо, помогло.