LiquidCrystal и LiquidCrystal_I2C
Символьные LCD 16x2 и 20x4, параллельный и I2C интерфейс
Выводим текст на LCD: подключение по 4 битам и по I2C, custom-символы, курсор, подсветка, борьба с контрастностью.
Прогресс раздела0/66 · 0%
- LCD 16x2: что внутри символьного дисплеяРазбираем устройство LCD 16x2: контроллер HD44780 и клоны KS0066, знакогенератор 5x8, памяти CGROM, CGRAM и DDRAM, скрытые адреса за краем экрана.15 мин
- Подключение LCD 16x2 по 4 битам: схема и проводаПолная распиновка LCD 16x2: RS, E, RW, D4–D7, потенциометр контраста на V0 и подсветка.16 мин
- LiquidCrystal: lcd.begin, setCursor и printПервый текст через библиотеку LiquidCrystal: lcd.begin(16, 2), координаты setCursor, печать чисел с точностью, затирание пробелами и две строки без мерцания.14 мин
- Обновление по тику таймера: дисплей и многозадачностьЭкран LCD мигает, кнопка срабатывает через раз?15 мин
- Диагностика LCD: чёрная строка, пустой экран, кракозябрыЧёрная первая строка на LCD, пустой экран или кракозябры: таблица симптомов, порядок проверки от питания до lcd.init() и тренажёр диагностики в симуляторе.15 мин
- Итоговый проект: метеостанция на LCD с менюИтоговый проект: метеостанция на DHT11 и LCD 16x2 с меню из двух экранов, минимумом и максимумом за сессию и светодиодом комфорта.16 мин
- Библиотека TM1637Display: методы, яркость и свои знакиУстановка TM1637Display, конструктор с CLK и DIO, яркость 0-7, showNumberDec с длиной и позицией, байтовый потолок showNumberHex, свои знаки через setSegments.16 мин
- Часы на TM1637: millis, двоеточие и две кнопки подстройкиЧасы MM:SS на TM1637 из millis(): двоеточие мигает раз в секунду, время правят две кнопки через offset, loop() без delay — кнопки ловят каждое нажатие.16 мин
- Термометр на TM1637: DHT, минус и обновление без delayТермометр на TM1637 и DHT: температура с минусом через showNumberDec, градус через setSegments, обновление раз в две секунды по millis и прочерк вместо NAN.16 мин
- Вольтметр 0-30 В на LCD: делитель и калибровкаВольтметр 0-30 В на LCD 16x2: делитель 100 кОм/10 кОм с K=11, честный шаг АЦП, вывод «U = 12.34 V» и калибровка одним коэффициентом с поправкой в EEPROM.16 мин
- Амперметр на ACS712: ток через эффект ХоллаАмперметр на ACS712 и LCD: датчик в разрыв цепи, 185 мВ/А у версии 5A, ноль на середине 2.5 В, формула (raw-512), шунт против Холла и защита от минуса.16 мин
- Итоговый проект: измерительный блок U/I на LCDИтоговый измерительный блок U/I на LCD: два экрана по кнопке, усреднение 16 замеров против шума, пик-холд максимумов и замер питания USB-устройства.15 мин
- Свои символы байтами: стрелка, градус и колокольчикВосемь ячеек CGRAM под значки: рисуем стрелку, градус и колокольчик байтами, анимируем звонок двумя кадрами и раскладываем слоты без конфликтов.16 мин
- Прогресс-бар с анимацией: спиннер и счётчик процентовПрогресс-бар на 16x2 без блокировки loop: сегменты заливки из createChar, спиннер из четырёх кадров, счётчик процентов на millis и точечная перерисовка.15 мин
- Индикатор уровня: столбики, пороги и сглаживаниеСтолбики из своих глифов по потенциометру: сглаживание EMA с делением на 8, пороги с гистерезисом 700 и 650, сырой сигнал против фильтра в Serial.16 мин
- createChar под лупой: типы массивов и слот-хамелеонСинтаксис глифов createChar: byte против int, char и PROGMEM, пять колонок из восьми бит, ловушка 00100 и колонка загрузки с перезаписью одного слота CGRAM.16 мин
- Точечная перерисовка: обновляем только изменённые ячейкиПанель бара и статуса без мерцания: кэш прошлого кадра, поля фиксированной ширины, цена ячейки и clear по даташиту, точечный дифф и счётчик записей за кадр.16 мин
- Шилд с кнопками: пять кнопок на одном аналоговом входеЛестница резисторов LCD Keypad Shield: физика делителя, паспортные отсчёты 0-131-306-478-719, калибровка клона, аналоговый дебаунс и меню на пяти кнопках.16 мин
- Часы-будильник без RTC: millis, уход и сверка кнопкойЧасы-будильник на 1602 без модуля RTC: время из millis, цена кварца в ppm и уход за сутки, компенсация раз в час, сверка кнопкой и звонок со сном и отбоем.16 мин
- Меню из трёх пунктов на одной кнопкеМеню на 1602 одной кнопкой: короткое нажатие листает, длинное входит в правку, автомат состояний без delay, автоповтор с разгоном, таймаут и запись в EEPROM.16 мин
- Прогресс долгой операции: проценты без миганияПрогресс долгой операции на 16 символах: статичный заголовок и окно перерисовки, проценты фиксированной ширины, бар по одной клетке — ноль миганий без clear.16 мин
- Свои символы на LCD: createChar, градус, стрелки, домикКомплект глифов для термометра: решётка 5x8 и массивы byte[8], ловушка write(byte(0)), стрелки тренда температуры, домик и полоса загрузки из своих блоков.16 мин
- LCD 2004: четыре строки, когда 16x2 малоМетео-экран на LCD 2004: раскладка по строке на метрику, ловушка забытых размеров, адреса 0x27 и 0x3F у разных партий, ток подсветки и когда хватает 16x2.15 мин
- Подсветка LCD: управление яркостью и батарейная экономикаНастоящая яркость подсветки LCD: транзисторный ключ на аноде, ШИМ-пины и их ловушки, ночная яркость по LDR и по часам, арифметика батарейного бюджета с числами.16 мин
- LCD молчит: диагностика от питания до контрастаЭкран молчит: алгоритм из шести шагов — подсветка, контраст, адрес 0x27 и 0x3F, SDA/SCL, 5 В на VCC, begin до печати.16 мин
- Счётчик на LCD с EEPROM: одометр, который помнит всёОдометр на LCD: счётчик наработки в EEPROM, запись по команде и раз в N минут вместо loop, ведущие нули, сброс удержанием 3 с и арифметика износа ячейки.16 мин
- Два LCD на одной шине I2C: адреса A0-A2Два экрана на двух проводах: перемычки A0, A1, A2 и сетка адресов 0x20-0x27 у PCF8574T и 0x38-0x3F у PCF8574A, ловушка двух одинаковых 0x27 и когда один 20x.16 мин
- Переезд с параллельного на I2C: освобождаем пиныПереезд LCD с шести сигнальных проводов на шину I2C: конструктор, init вместо begin, подсветка за битом шины, форки библиотеки и честная арифметика пинов.16 мин
- Часы на LCD с DS3231: точное время по I2CЧасы на LCD 16x2 с DS3231: begin, lostPower и adjust без откатов, печать по смене секунды без мигания, батарейка и два адреса сканера — 0x68 и 0x57.16 мин
- Энкодер на LCD: крутилка значений без кнопокЭнкодер KY-040 как крутилка значений на LCD: фронт CLK и направление DT, разгон шага при быстрой крутке и пропущенные щелчки из-за печати по шине.16 мин
- Прогресс-бар и гистограмма на кастомных символах: проценты загрузки и шкала датчикаШкала датчика из частичных заливок и гистограмма распределения на LCD 16x2: бюджет восьми слотов CGRAM, маркер пика, проценты фиксированной ширины.16 мин
- LCD 20x4 против 16x2: перенос длинных строк, страницы экрана, что влезаетПеренос длинных строк по словам и страницы текста на LCD 20x4: 80 знакомест против 32, невидимая зона DDRAM, пейджер на кнопке и таблица, что влезает.16 мин
- Светостойкость и контраст: чёрные квадраты, регулировка, питание подсветкиПочему LCD бледнеет на холоде и слепнет на солнце: дрейф контраста с температурой, уставка ШИМ на V0, партии панелей NT и WT, ток подсветки.16 мин
- Контрастность LCD: пустой экран и чёрные квадратыПочему LCD показывает пустоту или квадраты: пин V0, потенциометр 10 кОм, рабочее напряжение 0,4–1 В, таблица диагнозов и PWM-контраст как продвинутый вариант.15 мин
- LCD 20x4: больше строк, тот же кодПереходим с 16x2 на четырёхстрочный LCD: begin(20,4), конструктор I2C, 80 знакомест и DDRAM-ловушка — строка перетекает не на соседнюю строку, а через одну.14 мин
- Свои символы на LCD: createChar и значок градусаЗнакогенератор HD44780 изнутри: 8 слотов CGRAM 5×8, createChar с массивом байтов, ловушка lcd.print(0), готовый градус под кодом 223 и иконки для меню.16 мин
- LCD и второе устройство на шине: адреса, конфликты, разведениеВторой датчик рядом с LCD 0x27 на шине I2C: скан адресов, подтяжки 4,7 кОм параллельно, длина линии и клоны с одинаковым адресом на переходнике PCF8574.16 мин
- Статусная строка связи: LCD как индикатор MQTT/сетиВерхняя строка LCD как панель связи: поле OK/OFF/RC, символ-антенна, мигание при обрыве в millis-окне и обновление статуса только при смене, без мерцания.16 мин
- Автоподсветка по освещённости: LDR управляет анодом LCDФоторезистор на A1 управляет подсветкой LCD: транзистор в катоде, ШИМ вместо прямого привода, ток 20-30 мА и гистерезис порогов против строба в сумерках.16 мин
- Три глифа для прибора: стрелка, градус, смайликТри рабочих глифа для LCD 1602: стрелка-курсор для меню, знак градуса для термометра и смайлик статуса; байты 5x8, слоты CGRAM и вывод через write с cast.14 мин
- Прогресс-бар на LCD: пять блоков и процентыПолоса загрузки на 16 колонок из пяти блоков плотности: арифметика 100% на 16 ячеек, хвостовой глиф по остатку и проценты в верхней строке без мерцания.14 мин
- Меню на LCD одной кнопкой: три пунктаМеню из трёх пунктов на 16x2: одна кнопка листает по кругу, стрелка-курсор в нулевой колонке, долгое нажатие отмечает выбор; фронты и антидребезг на millis.15 мин
- Прогресс-бар на LCD: свои символы в делеПрогресс-бар на LCD 16x2 из своих символов: 80 столбцов точности, пять слотов CGRAM, полный блок 255 из ROM, алгоритм частичной заливки и бар без мерцания.16 мин
- I2C-модуль PCF8574 для LCD: два провода вместо шестиЧто внутри переходника I2C для LCD: 8 выходов PCF8574, карта P0–P7, адреса 0x27 и 0x3F, перемычки A0–A2, лимиты тока и сканер шины для поиска адреса дисплея.15 мин
- LiquidCrystal_I2C: подключение дисплея по I2CБиблиотека LiquidCrystal_I2C целиком: установка через Library Manager, init против begin, адрес 0x27/0x3F, таблица всех методов и чек-лист тёмного экрана.17 мин
- Адрес I2C-дисплея: 0x27 или 0x3FДисплей I2C молчит при верном коде?15 мин
- Подсветка и сон дисплея: экономим питаниеLCD на батарейках жил трое суток?16 мин
- Числа на LCD: дроби, выравнивание, ведущие нулиЧисла на LCD съезжают и оставляют хвосты?15 мин
- setCursor и прокрутка: текст длиннее экранаДлинный текст на LCD 16x2 обрезается?15 мин
- Меню на LCD 16x2: кнопки вверх и внизМеню на LCD 16x2 с двумя кнопками: массивы пунктов, курсор, фронт нажатия, дребезг 10–20 мс и перерисовка по событию.16 мин
- Вложенное меню: настройки внутри пунктовНастройки внутри пунктов меню: автомат из двух состояний, курсор = в редакторе, границы min и max, сохранение при выходе.16 мин
- Счётчик на LCD: кнопки плюс-минус с антидребезгомСчётчик на LCD 16x2 с двумя кнопками: почему контакт дребезжит 5–20 мс, чем плох delay(200), окно тишины на millis и счёт по фронту в тренажёре.16 мин
- Часы на LCD: таймер millis и формат времениЧасы на LCD 16x2 без модуля RTC: секунды из millis(), ведущие нули и формат 09:07:05, перерисовка раз в секунду и честные пределы точности кварца.17 мин
- Термометр на LCD: показания без мерцанияТермометр на LCD с DHT11: почему цифры дрожат, чтение раз в секунду по таймеру, порог смены 0,3 °C против шума и затирание старых значений.15 мин
- Мерцание LCD: почему экран моргает и как лечитьLCD 16x2 моргает при выводе показаний?16 мин
- Змейка на LCD 16x2: игра из своих символовЗмейка на LCD 16x2: поле из 32 клеток, тело в двух массивах, перерисовка трёх ячеек без clear, кнопки D2/D3/D4 и скорость, растущая с длиной.17 мин
- LCD и Serial: команды превращаются в текст на экранеУправляем LCD 16x2 из монитора порта: протокол 0:текст, 1:текст, cls, bl1 — посимвольное чтение строки, эхо ok=, вспышка светодиода на команду.15 мин
- Бегущая строка на LCD: реклама на дисплееБегущая строка на LCD 1602 с Arduino: почему scrollDisplayLeft гонит обе строки, оконный скроллинг через substring, темп по millis и пауза кнопкой в симуляторе.16 мин
- Кириллица на LCD: русский текст в знакогенератореЧто лежит в ROM знакогенератора HD44780: кириллица в русских прошивках, сканер кодов кнопкой и LED и печать русского текста байтами через lcd.write.15 мин
- Кириллица на I2C-LCD: UTF-8 и свои глифыПочему UTF-8 превращает «Привет» в кракозябры на I2C-LCD: два байта на букву, библиотеки-перекодировщики, свои глифы createChar и проверка в симуляторе.16 мин
- Меню 20x4: многострочный интерфейс устройстваМногострочное меню на LCD 20x4: окно из трёх пунктов и заголовок с режимом, курсор-стрелка, правка значения ручкой и перерисовка без мерцания — с тренажёром.16 мин
- Внутри HD44780: команды дисплею без библиотекиОбщаемся с HD44780 без библиотеки: сигналы RS и E, полубайты, старт 0x33 и 0x32, таблица команд с паузами и тренажёр шины дисплея в симуляторе.17 мин
- Питание LCD от пина: гасим дисплей целикомПитаем LCD от цифрового пина: токи логики и подсветки, пределы ATmega328P, транзисторный ключ, обязательный lcd.init() после сна и прибор с засыпающим экраном.16 мин
- LCD 16x2 по I2C: текст за пять минутПодключаем LCD 16x2 к Arduino по I2C четырьмя проводами: адреса 0x27 и 0x3F, lcd.init() и backlight, потенциометр контраста и первый текст в симуляторе.15 мин
- LiquidCrystal без I2C: классика по 4 проводамПодключаем LCD напрямую: RS, E, D4–D7, LiquidCrystal(12, 11, 5, 4, 3, 2), потенциометр на V0 и случаи, когда параллельная схема объективно лучше шины I2C.14 мин
- Мини-меню и курсор на LCD: делаем интерфейсМеню из трёх пунктов на LCD 16x2: setCursor как координаты, курсор-стрелка, кнопка без дребезга и точечная перерисовка значений — интерфейс без мерцания экрана.16 мин
Гайды по теме раздела
- Экран LCD 2004 I2C: подключение к ArduinoКак подключить LCD 2004 по I2C к Arduino: таблица проводов, адрес 0x27 или 0x3F, контраст, библиотека LiquidCrystal_I2C, скетч 20×4 и лечение пустого экрана.
- LiquidCrystal_I2C: библиотека для LCD 1602 — скачать, адреса, первый скетчКак скачать LiquidCrystal_I2C для LCD 1602 по I2C: адреса 0x27 и 0x3F, сканер шины, минимальный скетч с lcd.init() и print(), контраст подстроечником.
- Эмулятор LCD 1602 онлайн: проверьте текст и I2C без железаЭмулятор LCD 1602 в браузере: сетка 16×2, подсветка и курсор, кириллица и бегущая строка без железа.
- Симулятор TM1637 онлайн: индикатор без железаСимулятор TM1637 онлайн: карточка дисплея из палитры «Макетка», скетч с TM1637Display, showNumberDec и showNumberDecEx с двоеточием, таймер 25:00 в браузере.
- Светодиодная матрица 8x8 MAX7219: подключение к ArduinoСветодиодная матрица 8x8 MAX7219 на Arduino: пять проводов DIN, CS, CLK, ток и яркость, каскад 4-в-1, скетч змейки на LedControl и узор в симуляторе.
- Симулятор MAX7219 онлайн: матрица 8x8 и бегущая строкаОнлайн-симулятор MAX7219: 64 пикселя 8x8, SPI на D10-D13, бегущая строка и собственный узор.