Оформи код соответствующим тэгом, см. Правила
Здраствуйте.
Никак не могу понять в чем проблема. Хочу вывести данные с датчика CO2 на дисплей, все скетчи которые только мог найти перепробовал, но всё равно не показывает значения экран лишь мигает и показывает белые квадраты.
В данный момент код(не мой) выглядит следующим образом.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial mhzSerial(10, 11); // Пины для соединения с датчиком MHZ19C
void setup() {
lcd.begin(16, 2);
lcd.backlight();
mhzSerial.begin(9600);
}
void loop() {
if (mhzSerial.available()) {
int response = mhzSerial.read();
if (response == 0xFF) {
int high = mhzSerial.read();
int low = mhzSerial.read();
int ppm = (high * 256) + low;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CO2:");
lcd.setCursor(6, 0);
lcd.print(ppm);
lcd.setCursor(12, 0);
lcd.print("ppm");
}
}
delay(1000);
}
Никак не могу понять в чем проблема. Хочу вывести данные с датчика CO2 на дисплей, все скетчи которые только мог найти перепробовал, но всё равно не показывает значения экран лишь мигает и показывает белые квадраты.
В данный момент код(не мой) выглядит следующим образом.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial mhzSerial(10, 11); // Пины для соединения с датчиком MHZ19C
void setup() {
lcd.begin(16, 2);
lcd.backlight();
mhzSerial.begin(9600);
}
void loop() {
if (mhzSerial.available()) {
int response = mhzSerial.read();
if (response == 0xFF) {
int high = mhzSerial.read();
int low = mhzSerial.read();
int ppm = (high * 256) + low;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CO2:");
lcd.setCursor(6, 0);
lcd.print(ppm);
lcd.setCursor(12, 0);
lcd.print("ppm");
}
}
delay(1000);
}
Изменено: