@kesha15614

Почему мерцает экран?

Всем привет. Я пытаюсь вывести температуру на экран lcd 1602 i2c с датчика bme280, но при попытке это сделать экран начинает мерцать. Как только я убирают строчку коду с выводом температуры все начинает работать нормально.

вот код
#include <iarduino_RTC.h>
iarduino_RTC time(RTC_DS1307);       
#include <Wire.h>                             
#include <LiquidCrystal_I2C.h>      
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;
LiquidCrystal_I2C LCD(0x27,16,2); 

void setup() {
   delay(300);
   LCD.init();            
   LCD.backlight();  
   time.begin();
   time.settime(0, 30, 18, 12, 6, 20, 5); 
}

void loop() {
   if (millis() % 1000 == 0) {
      LCD.setCursor(0,0);
      LCD.print(bme.readTemperature());
      LCD.setCursor(4,1);
      LCD.print(time.gettime("H:i:s"));
      
      delay(1);
   }
  • Вопрос задан
  • 694 просмотра
Пригласить эксперта
Ответы на вопрос 2
bme.readTemperature() выполняется некоторое время, достаточное, чтобы глаз заметил задержку. Попробуй читать температуру в переменную, а уже ее выводить на экран:
float temp = bme.readTemperature();
LCD.setCursor(0,0);
LCD.print(temp );
LCD.setCursor(4,1);
LCD.print(time.gettime("H:i:s"));
Ответ написан
@kalapanga
У Вас два устройства на шине I2C. Какие у них адреса? Скорее всего конфликтуют они.
BME280 вроде ещё и по SPI должен работать. Попробуйте так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы