Библиотека LiquidCrystal
- В менеджере библиотек
- LiquidCrystal by Arduino, Adafruit
- Версия
- 1.0.7 · всего 7 версий, первая — 1.0.0
- Платы
- любые — автор не ограничивал
Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.
Символьные дисплеи 1602 и 2004 на контроллере HD44780, подключённые напрямую шестью проводами.
Это библиотека для дисплея без переходника I2C: сам модуль 1602 подключается к плате шестью сигнальными выводами — RS, E и четыре линии данных. Если на обороте дисплея припаяна маленькая плата с подстроечником и четырьмя выводами, нужна другая библиотека, LiquidCrystal I2C.
Дисплей — это объект класса Print, поэтому на него работает всё то же, что для Serial: print() с числами, строками и точностью для дробных.
Как скачать и установить
- Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите
LiquidCrystalи найдите в списке строку «LiquidCrystal by Arduino, Adafruit» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить». - Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
- Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте ZIP выше, затем Скетч → Подключить библиотеку → Добавить .ZIP библиотеку и укажите файл. Распаковывать не нужно.
Файл LiquidCrystal.h отдельно не скачивают: он внутри библиотеки и появляется после установки. Если среда пишет LiquidCrystal.h: No such file or directory — библиотека не установлена или установлена не та. Как устроен менеджер и куда складываются файлы — в общей статье про библиотеки.
Строка подключения:
#include <LiquidCrystal.h>Создание объекта — обычно до setup():
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 — выводы платы
lcd.begin(16, 2); // в setup(): столбцов и строкМетоды
Только то, что нужно в обычном скетче. Сигнатуры сверены с версией 1.0.7.
begin(uint8_t cols, uint8_t rows)- Инициализация: размер дисплея. 16×2 или 20×4.
print(...)- Вывести текст или число с текущей позиции курсора. Как у Serial: print(3.14159, 2) даст 3.14.
setCursor(uint8_t col, uint8_t row)- Поставить курсор: столбец и строка с нуля. setCursor(0, 1) — начало второй строки.
clear()- Очистить экран и вернуть курсор в начало. Медленная операция, около 2 мс.
home()- Курсор в начало без очистки.
cursor() / noCursor()- Показать или спрятать подчёркивание под курсором.
blink() / noBlink()- Мигающий курсор.
display() / noDisplay()- Выключить показ, не стирая содержимое, и включить обратно.
scrollDisplayLeft() / scrollDisplayRight()- Сдвинуть всё содержимое на один символ.
autoscroll() / noAutoscroll()- Автоматически сдвигать текст при выводе за край.
createChar(uint8_t n, uint8_t map[8])- Задать свой символ 5×8 точек под номером 0–7; выводится как write(n).
write(uint8_t c)- Вывести один символ по коду, в том числе свой из createChar().
Пример
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Привет? Нет: Hello"); // кириллицы в HD44780 нет
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis() / 1000);
lcd.print(" s "); // пробелы затирают хвост от длинного числа
delay(500);
}Контраст крутится подстроечником на выводе V0. Если видны только чёрные прямоугольники или ничего — крутите его, прежде чем искать ошибку в коде.
На чём попадаются
Два ряда чёрных квадратов
Дисплей не инициализировался: перепутаны RS и E или неверные номера выводов в конструкторе. Порядок — RS, E, D4, D5, D6, D7.
Кириллица выводится как мусор
В обычных модулях знакогенератор без русских букв. Либо латиница, либо свои символы через createChar(), либо модуль с русской прошивкой.
Старое число не стирается
print() не чистит строку. Дописывайте пробелы после короткого значения или печатайте поле фиксированной ширины.
Мерцает при обновлении
clear() каждый цикл — плохая идея. Перерисовывайте только изменившиеся позиции через setCursor().