Не обновляються данные на екране
- Войдите на сайт для отправки комментариев
Пт, 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); } }
Координаты экрана восстанавливайте, а то Вы всё в одну строку печатаете, вот она у Вас с экрана и уехала.
Спасибо, помогло.