// Библиотека для работы с текстовым дисплеем по шине I²C #include // Библиотека для работы с фоторезистором #include // Даём понятное имя пину с фоторезистором constexpr int LDR_PIN = A3; // Создаём объект для работы с дисплеем // В параметрах передаём I²C-адрес дисплея, кол-во строк и символов LiquidCrystal_I2C lcd(0x38, 16, 2); // Создаём объект для работы с фоторезистором TroykaLight ldr(LDR_PIN); void setup() { // Инициализируем дисплей lcd.init(); // Включаем подсветку lcd.backlight(); // Устанавливаем курсор на первом знакоместе в первой строке lcd.setCursor(0, 0); // Выводим строку на дисплей lcd.print(""); } void loop() { // Считываем данные с фоторезистора ldr.read(); // Запрашиваем освещенность у фоторезистора long ldrLight = ldr.getLightLux(); // Создаём динамическую строку класса String, которая содержит шесть символов: // показание освещённости с ведущими нулями String ldrLightStr = longToStr(ldrLight, 6); // Устанавливаем курсор на первом знакоместе во второй строке lcd.setCursor(0, 1); // Выводим показания освещенности на дисплей lcd.print("L = "); lcd.print(ldrLightStr); lcd.print(" Lx"); delay(1000); } // Функция для преобразования переменной типа long в переменную String, // оставляя при этом заданное количество знаков. String longToStr(long value, int countDigits) { String strValue; int lenValue = String(value).length(); for (int i = countDigits; i > lenValue; i--) { strValue += "0"; } strValue += String(value); return strValue; }