#include <LiquidCrystal_I2C.h> // подключаем библиотеку дисплея
LiquidCrystal_I2C lcd1(0x25, 16, 2), lcd2(0x26, 16, 2), lcd3(0x27, 16, 2); // адрес, столбцов, строк
// библиотека для работы с протоколом 1-Wire
#include <OneWire.h>
// библиотека для работы с датчиком DS18B20
#include <DallasTemperature.h>
// создаём объекты для работы с библиотекой OneWire
OneWire oneWire1(12), oneWire2(11), oneWire3(10), oneWire4(9), oneWire5(8), oneWire6(7);
DallasTemperature sensor1(&oneWire1), sensor2(&oneWire2), sensor3(&oneWire3), sensor4(&oneWire4), sensor5(&oneWire5), sensor6(&oneWire6);
// Буква Ц
uint8_t Ch_C[8] = {
0b10010,
0b10010,
0b10010,
0b10010,
0b10010,
0b10010,
0b11111,
0b00001,
};
// создадим объекты для работы с библиотекой DallasTemperature
void setup() {
LCD_Setup(lcd1, "O op: ---", " ap a: ---");
LCD_Setup(lcd2, "Ky : ---", "TCA: ---");
LCD_Setup(lcd3, "Bo a x.: ---", "Bo a x.: ---");
Sensor_Setup(sensor1); Sensor_Setup(sensor2);
Sensor_Setup(sensor3); Sensor_Setup(sensor4);
Sensor_Setup(sensor5); Sensor_Setup(sensor6);
}
void loop() {
Sensors_to_LCD(lcd1, sensor1, 0, "O op:");
Sensors_to_LCD(lcd1, sensor2, 1, " ap a:");
}
void LCD_Setup(LiquidCrystal_I2C lcd, String String1, String String2) {
lcd.init(); // инициализация
lcd.backlight(); // включить подсветку
lcd.setCursor(0, 0); // курсор в 0 строки 0
lcd.print(String1);
lcd.setCursor(0, 1); // курсор в 0 строки 1
lcd.print(String2);
}
void Sensor_Setup(DallasTemperature Sensor) {
// устанавливаем разрешение датчика от 9 до 12 бит
Sensor.begin();
Sensor.setResolution(12);
}
void Sensors_to_LCD(LiquidCrystal_I2C lcd, DallasTemperature Sensor, uint8_t Position, String _String) {
// переменная для чтения температуры
float temperature;
// переменная для хранения температуры
char StrTemp[5];
// отправляем запрос на измерение температуры
Sensor.requestTemperatures();
// считываем данные из регистра датчика
temperature = Sensor.getTempCByIndex(0);
dtostrf(temperature, 5, 1, StrTemp);
lcd.setCursor(0, Position); // курсор в 0 строки Position
lcd.print(_String);
lcd.print(StrTemp); // выводим температуру
lcd.write(223); // символ градуса
lcd.print("C"); // символ градуса и С
}