Дисплей для Arduino: LCD, OLED или TFT — какой выбрать и чем отличаются
Дисплей превращает проект из коробочки с мигающим светодиодом в прибор. Но выбор здесь не сводится к «чем больше и цветнее, тем лучше»: у Arduino UNO всего два килобайта оперативной памяти, и дисплей может съесть половину только под хранение картинки.
Реальных вариантов три, и они закрывают разные задачи. Разберём, чем они отличаются на практике, а не в рекламных характеристиках.
Разборы конкретных моделей
Как подключить символьный дисплей LCD 1602 к Arduino: распиновка шестнадцати выводов, схема в четырёхбитном режиме, контрастность через потенциометр, библиотека LiquidCrystal и переходник I2C.
OLED дисплей SSD1306Как подключить OLED дисплей 0,96 дюйма на контроллере SSD1306 к Arduino по шине I2C: распиновка, интерактивная схема, определение адреса, библиотека Adafruit и готовый скетч вывода текста.
TFT дисплей ILI9341Как подключить цветной TFT дисплей 2,4 дюйма на контроллере ILI9341 к Arduino: распиновка девяти выводов, интерактивная схема, согласование уровней 3,3 В, библиотека Adafruit и готовый скетч.
Три типа дисплеев
Показывает только буквы и цифры: шестнадцать символов в двух строках или двадцать в четырёх. Рисовать графику нельзя, зато потребление памяти почти нулевое, текст читается при ярком солнце, а стоит дисплей копейки. С переходником I2C занимает всего два провода. Идеален, когда нужно вывести температуру, время или пункт меню.
Монохромный графический экран сто двадцать восемь на шестьдесят четыре точки. Каждая точка светится сама, поэтому чёрный по-настоящему чёрный, а угол обзора не ограничен. Подключается по двум проводам I2C. Расплата — библиотека держит весь кадр в памяти платы: это килобайт из двух доступных на UNO.
Двести сорок на триста двадцать точек и шестьдесят пять тысяч цветов. На нём помещается настоящий интерфейс с графиками и иконками. Но проводов до девяти, логика три и три десятых вольта против пяти у UNO, потребление около ста миллиампер из-за подсветки, а библиотека со шрифтами занимает заметную часть флеш-памяти.
Сколько проводов и почему это важно
Символьный LCD в прямом подключении требует шесть проводов, но с переходником I2C — всего два плюс питание. OLED тоже работает по I2C, и это его главное практическое преимущество: два провода на всю шину, сколько бы устройств вы к ней ни повесили.
TFT использует шину SPI, а она быстрее, но требует отдельных линий выбора устройства, сброса и переключения команда-данные. На UNO часть выводов при этом занята жёстко: одиннадцатый и тринадцатый переназначить нельзя. В проекте, где уже задействовано много выводов, это может стать решающим доводом.
Память: главное ограничение UNO
Символьному дисплею память практически не нужна — он хранит символы у себя. Библиотека Adafruit для OLED держит буфер кадра в оперативной памяти платы: сто двадцать восемь на шестьдесят четыре точки — это ровно килобайт из двух доступных. Работает, но места на остальную программу остаётся немного; экономнее ведёт себя библиотека U8g2 в постраничном режиме.
Для TFT буфер в памяти UNO не поместился бы физически, поэтому библиотека рисует напрямую на экране, без промежуточного кадра. Отсюда следствие: перерисовка видна глазом, и сложную анимацию на UNO не сделать. Если нужен полноценный цветной интерфейс, честнее сразу брать плату помощнее — ESP32 или STM32.
Что выбрать под задачу
Вывести показания датчика, время, состояние системы — символьный LCD с I2C. Дёшево, надёжно, читается на солнце.
Компактный прибор с иконками, графиком или крупными цифрами — OLED. Смотрится современно, ест два провода, но следите за памятью.
Полноценный интерфейс с цветом и картинками — TFT, и лучше не на UNO. Заодно многие TFT-модули идут с сенсорным слоем и слотом для карты памяти на той же плате.