Подключение дисплеев к Ардуино

Arduino – это удобная и простая платформа для разработки электронных устройств. Часто в проектах требуется отображать информацию, например, данные с датчиков, состояние системы или простые интерфейсы управления. Для этого используются различные типы дисплеев, которые можно подключить к Ардуино.

Тип дисплея Разрешение Интерфейс Питание Примечания
LCD 1602 16×2 Параллельный (или I2C) 5V Популярен для вывода текста, доступен в вариантах с и без I2C интерфейса
OLED 128×64 128×64 I2C, SPI 3.3V/5V Отличается высокой контрастностью, подходит для текстов и простых изображений
TFT 2.4″ (ILI9341) 240×320 SPI 3.3V Цветной дисплей для графики, изображений и интерфейсов
Nokia 5110 84×48 SPI 3.3V Маленький монохромный дисплей, часто используется для простых графических интерфейсов
ТFT 1.8″ (ST7735) 128×160 SPI 3.3V Компактный дисплей для небольших графических проектов
7-сегментный дисплей 4-7 цифр Параллельный (или с драйвером, например TM1637) 5V Подходит для отображения чисел, используется в счетчиках и индикаторах
LCD 128×64 (ST7920) 128×64 SPI, Параллельный 5V Для графических проектов с большей плотностью пикселей, поддерживает SPI
TFT 3.5″ (ILI9486) 320×480 SPI 3.3V/5V Высококачественные дисплеи с большим разрешением для сложных графических интерфейсов

Предлагаем рассмотреть разные виды дисплеев, их схемы подключения и примеры программного кода. Будут рассмотрены как популярные модули, такие как LCD 1602, OLED 128×64, TFT 2.4″, семисегментные индикаторы, так и более сложные, включая графические экраны от мобильных телефонов.

Подключение LCD-дисплея

Жидкокристаллические экраны, сокращенно LCD, являются одними из самых распространенных дисплеев для работы с Arduino. Они отличаются доступностью, малым потреблением энергии и простотой в управлении.

Подключение LCD 1602 без интерфейса I2C

LCD 1602 – это дисплей с двумя строками по 16 символов каждая. Он использует контроллер HD44780, который требует как минимум 6 цифровых пинов Ардуино для управления.

Необходимые компоненты:

  • Arduino Uno, Nano или Mega
  • Дисплей LCD 1602
  • Резистор 10 кОм (для регулировки контрастности)
  • Перемычки

Схема подключения:

  • GND → GND
  • VCC → 5V Arduino
  • V0 → Средний вывод потенциометра (управление контрастностью)
  • RS → 12 пин
  • RW → GND
  • E → 11 пин
  • D4 → 5 пин
  • D5 → 4 пин
  • D6 → 3 пин
  • D7 → 2 пин
  • A → 5V (подсветка)
  • K → GND (подсветка)

Пример кода:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
lcd.print(«Hello, Arduino!»);
}

void loop() {
}

Этот код инициализирует дисплей и выводит строку «Hello, Arduino!» в первой строке дисплея.

Подключение LCD 1602 с интерфейсом I2C

Подключение LCD через I2C значительно упрощает схему, так как вместо 6-8 проводов требуется всего 2. Для этого используется модуль PCF8574, который позволяет управлять дисплеем через шину I2C.

Схема подключения:

  • GND → GND
  • VCC → 5V Arduino
  • SDA → A4
  • SCL → A5

Пример кода для I2C:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
lcd.init();
lcd.backlight();
lcd.print(«I2C LCD ready!»);
}

void loop() {
}

Если дисплей не работает, попробуйте изменить адрес 0x27 на 0x3F, так как у разных моделей может быть разный I2C-адрес.

Подключение LCD 1602 к Arduino Nano

Для Arduino Nano схема подключения аналогична Arduino Uno, однако следует учитывать, что некоторые модели Nano работают от 3.3V, и в этом случае LCD 1602 может работать нестабильно.

Подключение OLED-дисплея

OLED-дисплеи работают по технологии органических светодиодов, благодаря чему они обладают высокой контрастностью и низким энергопотреблением.

Подключение OLED 128×64 по I2C

Один из самых популярных OLED-дисплеев – это SSD1306 128×64, который можно подключить через интерфейс I2C.

Схема подключения:

  • VCC → 5V Arduino
  • GND → GND
  • SDA → A4
  • SCL → A5

Пример кода для OLED 128×64:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
display.println(«Hello, OLED!»);
display.display();
}

void loop() {
}

Если дисплей не работает, проверьте адрес 0x3C, иногда используется 0x3D.

Подключение OLED-дисплея к Arduino Nano

Для Arduino Nano схема аналогична Arduino Uno, но стоит учитывать, что OLED-дисплеи могут работать как от 3.3V, так и от 5V.

Подключение TFT-дисплея

TFT-дисплеи позволяют отображать графику и текст в цвете, они используются для более сложных проектов.

Подключение TFT 2.4″ по SPI

Для подключения TFT-дисплея 2.4″ часто используется интерфейс SPI.

Схема подключения:

  • VCC → 5V Arduino
  • GND → GND
  • CS → 10 пин
  • RST → 9 пин
  • DC → 8 пин
  • MOSI → 11 пин
  • SCK → 13 пин

Пример кода для TFT-дисплея:

#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>

#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

void setup() {
tft.begin();
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println(«Hello, TFT!»);
}

void loop() {
}

TFT-дисплеи потребляют больше энергии, чем LCD и OLED, поэтому могут требовать отдельного источника питания.

Подключение 7-сегментного LED

Семисегментные индикаторы используются для вывода чисел и символов.

Подключение с драйвером TM1637

Для подключения 4-значного 7-сегментного дисплея удобно использовать TM1637.

Схема подключения:

  • CLK → D3 Arduino
  • DIO → D2 Arduino

Пример кода:

#include <TM1637Display.h>

#define CLK 3
#define DIO 2

TM1637Display display(CLK, DIO);

void setup() {
display.setBrightness(7);
display.showNumberDec(1234);
}

void loop() {
}

Подключение экрана Nokia 5110

Дисплей Nokia 5110 – это монохромный графический LCD-экран с разрешением 84×48 пикселей. Он использует контроллер PCD8544, который позволяет управлять дисплеем через SPI-интерфейс.

Схема подключения Nokia 5110 к Arduino

  • VCC → 3.3V Arduino (важно, так как дисплей не работает от 5V)
  • GND → GND Arduino
  • CLK (SCK) → D13
  • DIN (MOSI) → D11
  • DC → D9
  • CE (CS) → D10
  • RST → D8
  • LED → 3.3V (или через резистор 330 Ом на GND для регулировки подсветки)

Пример кода для Nokia 5110

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

#define CLK 13
#define DIN 11
#define DC 9
#define CE 10
#define RST 8

Adafruit_PCD8544 display = Adafruit_PCD8544(CLK, DIN, DC, CE, RST);

void setup() {
display.begin();
display.setContrast(50);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0, 10);
display.println(«Hello, Nokia 5110!»);
display.display();
}

void loop() {
}

Дисплей Nokia 5110 потребляет мало энергии и идеально подходит для проектов с питанием от батарей.

Подключение дисплея 128×64

Графический дисплей 128×64 чаще всего использует контроллер ST7920 или KS0108, который может работать в SPI или параллельном режиме.

Схема подключения дисплея 128×64 по SPI

  • VCC → 5V Arduino
  • GND → GND
  • CS → D10
  • RST → D9
  • RS (D/C) → D8
  • SCLK → D13
  • SID (MOSI) → D11

Пример кода для дисплея 128×64:

#include <U8g2lib.h>

U8G2_ST7920_128X64_F_HW_SPI display(U8G2_R0, 10, 9, 8);

void setup() {
display.begin();
display.clearBuffer();
display.setFont(u8g2_font_ncenB08_tr);
display.drawStr(10, 10, «128×64 Display!»);
display.sendBuffer();
}

void loop() {
}

Другие дисплеи от телефонов

Вообще многие экраны от мобильных телефонов можно подключить к Ардуино, но не все они работают на 5V. Чаще всего встречаются с контроллерами ILI9341, ST7735, SSD1963, работающие по SPI или параллельному интерфейсу.

Подключение TFT-дисплея ILI9341

  • VCC → 3.3V (не подключать к 5V)
  • GND → GND
  • CS → D10 Arduino
  • RST → D9
  • DC → D8
  • MOSI → D11
  • SCLK → D13

Пример кода для дисплея ILI9341:

#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>

#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

void setup() {
tft.begin();
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println(«Phone Display»);
}

void loop() {
}

Для успешного подключения дисплея от телефона иногда требуются логические преобразователи уровня 5V → 3.3V, поскольку большинство мобильных экранов работают от 3.3V.

Цветные экраны

Если вам нужен цветной дисплей, то наилучшим выбором будут TFT-дисплеи. Они работают через SPI или параллельный интерфейс и позволяют выводить изображения, текст и графику.

Подключение TFT-дисплея 2.8″

  • VCC → 5V Arduino
  • GND → GND
  • CS → D10
  • RST → D9
  • DC → D8
  • MOSI → D11
  • SCLK → D13

Пример кода для TFT 2.8″

#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>

#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

void setup() {
tft.begin();
tft.fillScreen(ILI9341_BLUE);
tft.setCursor(10, 10);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println(«Color TFT!»);
}

void loop() {
}

TFT-дисплеи позволяют отображать изображения и анимацию, но требуют больше памяти и питания, чем LCD или OLED.

Думаем, этого достаточно. Мы рассмотрели практически все способы подключения экранов к этой платформе, от простых LCD до цветных TFT и дисплеев от телефонов.

Основные выводы:

  • LCD 1602 удобен для текстовой информации, а с I2C модулем требует всего 2 провода
  • OLED 128×64 – компактный и контрастный, поддерживает I2C и SPI
  • TFT-дисплеи позволяют выводить графику и цветные изображения
  • Nokia 5110 и 128×64 – хорошие варианты для простых графических интерфейсов
  • Экраны от телефонов можно подключать, но требуется 3.3V и логический преобразователь уровня

При выборе дисплея важно учитывать размер, тип интерфейса и поддержку библиотек. Если проект требует простого вывода текста, лучше использовать LCD или OLED. Если же необходимо отображать графику, то стоит обратить внимание на TFT и дисплеи от мобильных устройств. Всем удачи в экспериментах!

Полезные ссылки

Вот несколько популярных сайтов и ресурсов, на которых вы можете найти полезную информацию и литературу по Arduino, а также проекты и инструкции для подключения различных устройств, включая дисплеи:

1. Официальный сайт Arduino

Официальный сайт Arduino является основным источником информации. Здесь вы найдете документацию, примеры кода, форум и магазины для покупки компонентов.

2. Instructables Arduino Projects

На сайте Instructables множество пошаговых руководств по созданию проектов на основе Arduino, включая подключение дисплеев и других компонентов.

3. Adafruit Learning System

Adafruit предлагает множество подробных руководств по использованию Arduino с их компонентами, включая дисплеи и другие сенсоры.

4. SparkFun

SparkFun предлагает большое количество материалов и руководств для начинающих и опытных пользователей Arduino, а также продает различные компоненты, включая дисплеи.

5. Arduino Project Hub

Здесь можно найти проекты, созданные другими пользователями Arduino. Это отличное место для поиска идей для своего проекта и примеров кода.

6. Hackster.io

На Hackster.io собраны проекты и уроки по Arduino. Вы можете найти пошаговые инструкции и идеи для работы с дисплеями, сенсорами и многими другими компонентами.

7. GitHub

GitHub — это большая база репозиториев с открытым исходным кодом. Вы можете найти множество библиотек для работы с Arduino, а также примеры проектов с дисплеями и другими устройствами. Для поиска можно использовать ключевые слова, такие как «Arduino display» или «Arduino projects».

Оцените материал:

4.8 / 5. Рейтинг: 35

Может подскажете что улучшить?