Как подключить и использовать экраны для Arduino в проектах
Экраны для Arduino подключаются через I2C или SPI. Популярные модели: OLED 0.96 (SSD1306), LCD 1602 (HD44780) и TFT (ST7735). Выберите модуль, соедините провода по схеме и загрузите скетч.
Оглавление
Популярные типы экранов и контроллеры
Именно контроллер диктует выбор библиотеки. Самые ходовые варианты для старта:
| Тип экрана | Разрешение | Контроллер | Интерфейс |
|---|---|---|---|
| OLED | 0.96", 128x64 | SSD1306 (Solomon Systech) | I2C или SPI |
| LCD (символьный) | 1602 (16×2) / 2004 (20×4) | HD44780 (Hitachi / клоны) | 4-битный параллельный или I2C (PCF8574) |
| TFT | 1.8", 128x160 | ST7735 (Sitronix) | SPI |
| TFT | 2.4", 240x320 | ILI9341 (Ilitek) | SPI |
Подключение и настройка OLED (SSD1306)
Подача 5V на модуль OLED, рассчитанный только на 3.3V (без onboard-регулятора), приведёт к сгоранию экрана. Короткое замыкание SDA/SCL или перепутанные VCC/GND сожгут порт микроконтроллера или экран. Внимательно читайте маркировку на плате модуля, а не на самой вставке дисплея.
Схема подключения по I2C к Arduino Uno/Nano:
- VCC → 5V (или 3.3V, зависит от модуля — смотрите маркировку регулятора на плате)
- GND → GND
- SDA → A4
- SCL → A5
I2C-адрес OLED SSD1306 по умолчанию: 0x3C (реже 0x3D на модулях 128x32).
Библиотека: Adafruit_SSD1306 + Adafruit_GFX. Устанавливаются через Менеджер библиотек Arduino IDE (Инструменты → Управлять библиотеками…).
Если OLED не показывает изображение, первым делом запустите скетч I2C_Scanner (File → Examples → Wire → I2C_Scanner) и сверьте найденный адрес с тем, что прописан в коде (в Adafruit_SSD1306 адрес задаётся в методе begin(0x3C)).
Подключение и настройка LCD (HD44780)
Без I2C-адаптера: используется встроенная библиотека LiquidCrystal. Режим 4-битный, пины по умолчанию из примеров библиотеки: RS=12, E=11, D4=5, D5=4, D6=3, D7=2.
С I2C-адаптером (PCF8574): используется библиотека LiquidCrystal_I2C (автор Frank de Brabander, форк marcoschwartz). Адрес по умолчанию обычно 0x27 или 0x3F — определяется сканером I2C. Перемычки адреса A0/A1/A2 на плате адаптера меняют младшие биты адреса: если сканер показывает не 0x27, проверьте их положение.
На LCD 1602 с параллельным подключением нет картинки — крутите подстроечный резистор на плате (контраст), пока не появятся квадратики в верхней строке. Без этого «не работает» в 90% случаев у новичков.
Подключение и настройка TFT (ST7735 / ILI9341)
SPI-экраны работают быстрее I2C, но требуют больше проводов (MOSI, MISO, SCK, CS, DC, RST). Для Uno/Nano пин MISO можно не подключать, если экран только принимает данные.
- Основной вариант: библиотека
TFT_eSPIот Bodmer. Самая быстрая и гибкая, но требует правки файлаUser_Setup.hпод конкретный контроллер и пины. - Альтернатива «из коробки»:
Adafruit_ST7735/Adafruit_ILI9341. Проще в настройке, но работают медленнее.
Если TFT_eSPI не компилируется — в 99% случаев не отредактирован User_Setup.h: нужно раскомментировать одну строку с моделью контроллера и корректно задать пины.
Где купить экраны для Arduino в России
Arduino.cc и GitHub доступны, блокировок нет, библиотеки скачиваются штатно через Arduino IDE.
Основные каналы покупки: AliExpress (aliexpress.ru, оплата российскими картами работает), Ozon, Wildberries, Чип и Дип, Амперка.
Покупка «no-name» TFT без документации несёт риск потери денег: без схемы распиновки и точного названия контроллера подобрать рабочую библиотеку практически невозможно.
Частые ошибки
- Выгорание OLED: OLED-дисплеи выгорают на статической картинке за месяцы или год. Не оставляйте одно и то же изображение включённым постоянно.
- Неверные пины на Arduino Mega: Для Arduino Mega пины I2C другие: 20 (SDA), 21 (SCL), а не A4/A5.
FAQ
Какой адрес I2C у моего экрана, если сканер ничего не находит?
Проверьте качество пайки, наличие подтягивающих резисторов и правильность подключения SDA/SCL. Для LCD с I2C-адаптером обязательно проверьте положение перемычек A0/A1/A2 на плате адаптера.
Можно ли питать OLED 0.96" от 5V?
Только если на плате модуля есть маркировка, указывающая на наличие регулятора напряжения. Если модуль маркирован строго как «VCC 3.3V», подключение к 5V сожжёт регулятор или сам экран.
Почему TFT-экран работает очень медленно?
Скорее всего, вы используете библиотеку Adafruit вместо TFT_eSPI, либо не настроили SPI-интерфейс на максимальную частоту в конфигурационном файле библиотеки.