Как подключить tft дисплей к компьютеру

Обновлено: 07.07.2024

В качестве примера подключим дисплей к управляющей плате Arduino Uno.

Подключение к Arduino

Вывод Обозначение Пин Arduino Uno
1 GND GND
2 VCC 5V
3 VO GND
4 RS 11
5 R/W GND
6 E 12
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4 5
12 DB5 4
13 DB6 3
14 DB7 2
15 VCC 5V
16 GND GND

Для упрощения работы с LCD-дисплеем используйте встроенную библиотеку Liquid Crystal. В ней вы найдёте примеры кода с подробными комментариями.

Вывод текста

Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:

Кириллица

Существует два способа вывода кириллицы на текстовые дисплеи:

Рассмотрим оба способа более подробно.

Таблица знакогенератора

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

Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.

Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0-9 и A-F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две записанные рядом строки склеиваются.

Сравните две строки кода для вывода надписи «Яeee»:

Переключение страниц знакогенератора

Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:

Дисплей не может одновременно отображать символы разных страниц.

Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.

Полную таблицу символов с кодами можно найти в документации к экрану.

Использование библиотеки LiquidCrystalRus

Совсем не обязательно мучатся со знакогенератором, чтобы вывести русский символ. Для решения проблемы скачайте и установите библиотеку LiquidCrystalRus.

Это копия оригинальной библиотеки LiquidCrystal с добавлением русского языка. Добавленный в библиотеку код трансформирует русские символы UTF8 в правильные коды для текстового экрана.

В качестве примера выведем фразу «Привет от Амперки» на дисплей.

Примеры работы для Espruino

В качестве примера подключим дисплей к управляющей плате Iskra JS.

Подключение к Iskra JS

Вывод Обозначение Пин Iskra JS
1 GND GND
2 VCC 5V
3 VO GND
4 RS P11
5 R/W GND
6 E P12
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4 P5
12 DB5 P4
13 DB6 P3
14 DB7 P2
15 VCC 5V
16 GND GND

Для работы с LCD-дисплеем из среды Espruino существует библиотека HD44780.

Вывод текста

Для вывода программы приветствия, воспользуйтесь скриптом:

Кирилица

Вывод кирилицы на дисплей с помощью платформы Iskra JS доступен через встроенную в дисплей таблицу знакогенератора.

Таблица знакогенератора

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

Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.

Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность \x , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона 0–9 и A–F следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются.

Сравните две строки кода для вывода надписи «Яeee»:

Переключение страниц знакогенератора

Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:

Дисплей не может одновременно отображать символы разных страниц.

Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.

Полную таблицу символов с кодами можно найти в документации к экрану.

Комнатный термометр

Дисплей удобен для отображения показаний модулей и сенсоров. Сделаем задатки «Умного Дома», а именно «комнатный термометр».


Используйте цветной графический TFT-дисплей для отображения текста и графических элементов: иконок, картинок, графиков, кадров анимации.

Видеообзор

Подключение и настройка


Внимание! Дисплей работает от источника питания 5 вольт, а работа логики — 3,3 вольта. Если вы используете Arduino c 5-вольтовой логикой, то подключайте управляющие пины дисплея к Arduino через резистивные делители. В противном случае TFT-экран может выйти из строя. Для плат с 3,3 вольтовой логикой резистивные делители не нужны.


В качестве примера возьмём управляющую платформу Arduino Uno. Общение с TFT-экраном происходит через шину SPI. Подключаем управляющие пины к Arduino через делители напряжения, чтобы не повредить дисплей. Руководствуйтесь схемой ниже: Для облегчения работы с TFT-экраном используйте библиотеку UTFT, которая включает в себя разнообразные готовые примеры. Библиотека подходит как для работы с контроллерами, основанными на AVR-платформе, так и с контроллерами на ARM-платформе.

Работа с дисплеем

Вывод текста

Прошейте Arduino скетчем приведённым ниже. В результате на экране вы должны увидеть надпись «HelloWorld».

Метод InitLCD – инициализирует дисплей и задает горизонтальную или вертикальную ориентацию. В качестве параметра указывается идентификатор ориентации. Будучи заданной без параметров команда устанавливает горизонтальную ориентацию. Если указать параметр PORTRAIT или 0 – будет выбрана вертикальная ориентация, если указать LANDSCAPE или 1 – горизонтальная.

Метод clrScr – очищает дисплей, стирая всю отображаемую на дисплее информацию и заливает его черным цветом. Параметров не имеет.

Метод print – выводит на дисплей текст, содержимое символьной переменной или объекта типа String. В качестве параметров передаются выводимый текст, координаты верхнего левого угла области печати. Эта команда предназначена для вывода текстовой информации. Координаты печати X и Y задаются в пикселях и могут быть переданы как явно, так и через целочисленные переменные или выражения. Существуют также три предопределенных идентификатора, предназначенные для использования в качестве координаты X :

LEFT – текст выравнивается по левой границе дисплея RIGHT – текст выравнивается по правой границе дисплея

Встроенные шрифты

Библиотека UTFT позволяет работать с подгружаемыми шрифтами. Шрифты хранятся в виде массивов данных, которые размещаются в отдельных файлах и подключаются к тексту программы. Исходная библиотека включает 3 шрифта.

Выводим текст с разными шрифтами и изменяем их ориентацию на дисплее:

Система кодирования цветов

У каждого метода, отвечающего за цветность, есть три параметра: R, G, B. Допустимые значения для параметров – от 0 до 255. Задавайте уровень каждого цвета вручную или используйте готовые идентификаторы:

Идентификатор цвета Цвет
VGA_SILVER серебряный
VGA_GRAY серый
VGA_WHITE белый
VGA_MAROON красно-коричневый
VGA_RED красный
VGA_PURPLE пурпурный
VGA_FUCHSIA фуксия
VGA_GREEN зеленый
VGA_LIME лайм
VGA_NAVY темно-синий
VGA_BLUE синий
VGA_TEAL сине-зеленый
VGA_AQUA морская волна

Добавим красок в строку «HelloWorld» и выведем несколько цветовых вариантов.

Поворот строки

Опциональный параметр метода print позволяет печатать строки под углом от 0 до 359 градусов. Вращение задается относительно координат печати (левый верхний угол). Нулевое значение угла приводит к горизонтальной печати, далее, по мере увеличения угла, происходит вращение текста по часовой стрелке на заданный угол. Приведенный ниже пример позволяет получить необычный графический эффект:

Методы печати не определяют выход за пределы дисплея. Так что за максимальной длиной строки придется следить самостоятельно. Если строка окажется слишком длинной, её «хвост» будет выводится поверх уже напечатанного текста.

Вывод геометрических фигур

Программно вывод геометрических фигур реализован через методы библиотеки UTFT , которые используют попиксельный вывод, массив 240x320 точек.

Метод Описание Параметры
drawPixel(x, y) Вывод пикселя x, y координата пикселя
drawLine(x1, y1 ,x2 ,y2) Вывод линии x1, y1 и x2, y2 координаты начальной и конечной точки линии
drawRect(x1, y1 ,x2 ,y2) Вывод прямоугольника x1, y1 и x2, y2 координаты двух противоположных углов
drawFillRect(x1, y1 ,x2 ,y2) Вывод закрашенного прямоугольника x1, y1 и x2, y2 координаты двух противоположных углов
drawCircle(x, y, r) Вывод окружности x, y координаты центра окружности, r радиус
drawfillCircle(x, y, r) Вывод закрашенной окружности x, y координаты центра окружности, r радиус

Выведем их на экран.

Мы рассмотрели команды рисования графических примитивов. Кстати, для библиотеки UTFT существует дополнение UTFT_Geometry, которое позволяет выводить на дисплей треугольники (контурные и заполненные), дуги окружностей и сектора кругов.

Вывод изображений

Метод drawBitmap позволяет выводить на дисплей специально подготовленное растровое изображение. В качестве параметров задаются координаты верхнего левого угла изображения, его размеры и имя массива, в котором хранится закодированное изображение. Опциональный параметр scale позволяет управлять масштабированием изображения при выводе на дисплей.

Подготовим изображение для вывода на дисплей. Нам понадобиться графический редактор GIMP и утилита ImageConverter565 , которая поставляется вместе с библиотекой и располагается в папке Tools.

В графическом редакторе GIMP откройте картинку, которую хотите отобразить на дисплее. Преобразуйте картинку до размеров дисплея, не больше чем 240x320. Советуем изменить только один параметр, второй автоматически откалибруется сам. Это позволит сохранить пропорции изображения. Теперь выставьте размер холста 240x320. Если всё сделано правильно, картинка не должна выходить за пределы холста. Сохраните изображение в формате .jpg и откройте в программе ImageConverter565. Изображение размером 240x320 пикселей займет непозволительно много места в памяти контроллера, поэтому мы уменьшим его в 2 раза (120x160 пикселей) и воспользуемся масштабированием. Для этого установите флаг «Reduce size to» и задайте требуемые размеры картинки (120x160). Для AVR-платформы, в переключателе «Target Board» выберем «AVR», для ARM-платформу — «ARM/PIC32» В поле «Array Name» задайте имя картинки и нажмите «Save».

В результате работы конвертера вы получите файл с расширением «.c», в котором будет храниться информация о картинке и закодированное изображение. Поместите этот файл в папку Вашего проекта и объявите в программе массив при помощи спецификатора extern так же, как мы это делали для шрифтов. Только в квадратных скобках обязательно нужно указать размер массива в 16-ричном формате. Это значение находится в первом элементе массива, его можно посмотреть открыв полученный в результате конвертирования файл в любом текстовом редакторе. Не забудьте после копирования и подключения массива закрыть и снова открыть файл программы. При этом файл массива откроется на соседней вкладке рядом с текстом программы.

Цветной TFT-экран пригодится для вывода яркого текста, информативных графиков и живых анимаций.


Подключение и настройка

Дисплей общается с управляющей платформой через последовательную шину SPI c дополнительными пинами управления. В микроконтроллерах есть два способа реализации шины SPI: аппаратная и программная.

При использовании аппаратного интерфейса, скорость отрисовки экрана будет значительно выше в сравнении с программной.

Аппаратный SPI

На платах Arduino шина «SPI» разведена на ICSP-разъёме. В качестве примера подключим дисплей к платформе Arduino Uno через макетную плату.


Программный SPI

Если контакты аппаратного интерфейса SPI используются другими модулями — воспользуйтесь программной реализацией протокола SPI. Софтовая эмуляция шины позволяет использовать сигналы данных на всех пинах управляющей платы. В качестве примера подключим дисплей к платформе Arduino Uno через макетную плату.


Элементы платы


Экран

Дисплей модуля выполнен по технологии TFT с диагональю 1,8 дюйма. Разрешение экрана составляет 128×160 точек с глубиной 65536 цветов.

Матрица экрана подключена к встроенному чипу ST7735, который выполняет роль моста между экраном и микроконтроллером.

Систему координат дисплея удобно представить в виде сетки, каждая ячейка которой является отдельным пикселем. Местоположение пикселя задается парой координат «x» и «y».

Контактные пины

На плате дисплейного модуля расположена гребёнка из восьми контактов для питания экрана и взаимодействия с управляющей электроникой.

Вывод Имя сигнала Альтернативное имя сигнала Описание
1 VIN Питание дисплея напряжением 5 вольт
2 GND Земля
3 RST RESET Аппаратный сброс дисплея. Активный низкий уровень.
4 RS DC/A0 Выбор передачи данных или команд:
команда при низком уровне, данные при высоком уровне.
5 SDA MOSI/DO Данные
6 SCL SCK Синхронизация
7 CS SS Выбор экрана. Используется для подключения нескольких дисплеев параллельно. Активный низкий уровень.
8 VDD33 Напряжение питания 3,3 В. Подключать не обязательно.

Логический буфер

На обратной стороне дисплейного модуля распаян преобразователь логических уровней 74HC365. Буфер служит для согласования напряжения между экраном и управляющей платой. Микросхема даёт совместимость дисплея c 3,3- и 5-вольтовыми управляющими платами.

Регулятор напряжения

Понижающий линейный преобразователь LM1117 с выходом 3,3 вольта обеспечивает питание и подсветку дисплея. Максимальный выходной ток составляет 800 мА.

Один из самых частых вопросов при подключении монитора к компьютеру — это разобраться с многообразием разъемов, сделать правильный выбор кабеля, чтобы все работало (особенно сложно, если на мониторе имеется сразу несколько интерфейсов) .

Вообще, сейчас на мониторах чаще всего можно встретить интерфейсы DVI, Display Port или HDMI. Причем, они все в свою очередь подразделяются еще на несколько видов (если можно так сказать). Еще сложнее обстоит дело, если на мониторе одни интерфейсы, а на ПК совсем другие. Немудрено и запутаться.

В этой статье попробую "разобрать" весь этот клубок, и ответить на типовые и наиболее частые вопросы по этой проблеме.

И так, ближе к делу.

ускорение ПК

Разъемы мониторов для подключения к компьютеру

HDMI (представлены разные виды)

HDMI (представлены разные виды)

Один из самых востребованных и популярных интерфейсов на сегодняшний день. Встречается на подавляющем большинстве ноутбуков и компьютеров (также часто можно встретить на планшетах). Подходит для подключения мониторов, ТВ (и ТВ приставок), проекторов и пр. видео-техники.

  1. передает как аудио- так и видео-сигнал (одновременно). В этом плане это большой плюс интерфейсу: не нужны лишние кабели, чтобы передавать аудио-сигнал;
  2. полная поддержка FullHD (1920x1080) разрешения, с 3D эффектами. Максимальное поддерживаемое разрешение до 3840×2160 (4K);
  3. длина кабеля может достигать 10 метров, что достаточно в большинстве случаев (с использованием усилителей-повторителей - длину кабеля можно увеличить до 30 метров!);
  4. имеет пропускную способность от 4,9 (HDMI 1.0) до 48 (HDMI 2.1) Гбит/с;
  5. в продаже имеются переходники с HDMI на DVI и обратно (очень актуально для совместимости старых и новых устройств между собой);
  6. у HDMI есть несколько тип-разъемов: HDMI (Type A), mini-HDMI (Type C), micro-HDMI (Type D) (см. фото выше). На ноутбуках/ПК чаще всего используется классический тип размера - HDMI (Type A). Micro и Mini встречаются в портативной технике (в планшетах, например).

Если у вас на мониторе и системном блоке (ноутбуке) есть HDMI - то все подключение будет сводиться к покупке кабеля "HDMI-HDMI" (который можно купить в любом компьютерном магазине).

Классический HDMI кабель

Классический HDMI кабель

Display Port

Display Port и Mini Display Port

Display Port и Mini Display Port

Новый и достаточно быстро набирающий популярность интерфейс (конкурент HDMI). Позволяет подключать сразу несколько мониторов, поддерживает 4K разрешение, 3D изображение.

  1. одновременно передается как аудио- так и видео-сигналы;
  2. максимальная длина кабеля Display Port может достигать 15 метров;
  3. скорость передачи данных до 21,6 Гбит/с;
  4. позволяет получить разрешение до 3840 х 2400 при 60 Гц; или 2560 х 1600 точек при 165 Гц; или можно подключать сразу два монитора с разрешением 2560 х 1600 точек и частотой 60 Гц.
  5. обратите внимание, что помимо классического Display Port есть другой форм-фактор: Mini Display Port.
  6. кстати, размер разъёма Mini Display Port примерно в 10 раз меньше, чем у разъёма DVI (о нем ниже в статье) !
  7. у интерфейса есть небольшая "защелка", надежно фиксирующая кабель при подключении к порту.

USB Type-С (Thunderbolt)

Очень и очень интересный интерфейс (активно начал развиваться буквально год назад)!

Позволяет одновременно передавать аудио- и видео-сигналы на монитор, заряжать устройство и копировать данные (т.е. вместо нескольких кабелей - можно использовать только 1!). Это очень удобно при подключении монитора к ноутбукам.

Порт USB-C сверху - для передачи данных, снизу - Thunderbolt 3

Порт USB-C сверху - для передачи данных, снизу - Thunderbolt 3

Кстати! Сразу хочу сделать небольшую ремарку — USB Type-С могут быть "разными":

Thunderbolt - краткая информация

Thunderbolt - краткая информация

DVI интерфейс

Этому интерфейсу уже почти 20 лет, а до сих пор пользуется широкой популярностью (вышел в 1999 г.). В свое время серьезно улучшил качество изображения на экране.

Максимальное разрешение равно 1920 х 1080 пикселям (однако, некоторые дорогие видеокарты могут передавать данные в двухканальном режиме (dual link) и разрешение может достигать 2560 х 1600 пикселей).

  1. через разъем DVI передается только изображение* (аудио-сигнал придется передавать по другим каналам);
  2. разрешение до 1920×1200 точек при длине кабеля до 10,5 м; разрешение 1280×1024 точек при длине кабеля до 18 м; в двухканальном режиме передачи данных - до 2560 х 1600 точек.
  3. есть три вида DVI: DVI-A Single Link — аналоговая передача; DVI-I — аналоговая и цифровая передачи; DVI-D — цифровая передача.
  4. различные разъемы и их конфигурация (DVI-A, DVI-D, DVI-I) — совместимы между собой.
  5. обратите внимание, что у этого стандарта чаще наблюдаются помехи: например, если рядом с кабелем находятся другие приборы, излучающие электромагнитный сигнал (телефон, принтер и пр.). Также подобное может происходить из-за плохого экранирования кабеля;
  6. в продаже есть множество переходников с VGA на DVI и обратные;
  7. разъем DVI достаточно габаритный, больше

* Передача звука возможна, если у вас и видеокарта, и кабель (переходник), и сам монитор поддерживают цифровой стандарт DVI-D.

VGA (D-Sub)

VGA интерфейс

Этот стандарт был разработан уже в далеком 1987 г. Несмотря на это, до сих пор пользуется большой популярностью, используется в основном для простых проекторов, видео-приставок, небольших офисных мониторов (где не требуется высокое разрешение и очень качественное изображение).

Официально поддерживается разрешение до 1280×1024 пикселей (не официально — 1920×1080 обычно без проблем!) , а потому многие "пророчат" скорое затмение этому интерфейсу.

Лично мое мнение : многие рано "хоронят" этот интерфейс, ведь благодаря сотням миллионам устройств, которые были выпущены за эти 30 лет, VGA "переживет" некоторые современные.

  1. передает только видео-сигнал (для аудио необходимо использовать другие каналы);
  2. максимальное разрешение до 1280×1024 пикселей, при частоте обновления кадров 75 Гц (в некоторых случаях удается работать и при большем разрешение, но официально это не гарантируется, к тому же возможно ухудшение качество изображения);
  3. есть множество переходников VGA на HDMI, VGA на Display Port, VGA на DVI и обратные;
  4. несмотря на "моральное" устаревание - интерфейс поддерживается множеством аудио- и видео-техники, и до сих пор еще пользуется широким спросом.

Популярные вопросы по подключению и выбору кабеля

Вариант 1: на мониторе и компьютере есть один и тот же интерфейс (HDMI или Display Port)

Пожалуй, это наиболее благоприятный вариант. В общем случае, достаточно купить стандартный HDMI кабель (например), подключить устройства с помощью него и включить их. Никакой дополнительной настройки не требуется: на монитор сразу же подается изображение.

Классический HDMI кабель

Классический HDMI кабель

Важно!


При "горячем" подключение HDMI может сгореть порт! Как этого избежать, и что делать (если не работает монитор/ТВ по HDMI) рассказано в этой инструкции.

Вариант 2: на устройствах разные интерфейсы. Например, на ноутбуке HDMI, на мониторе VGA.

Этот вариант сложнее.

Здесь необходим помимо кабеля, купить специальный переходник (иногда стоимость таких переходников достигает 30% от нового монитора!). Лучше и кабель, и переходник покупать в комплекте (от одного производителя).

Также учтите, что старые ПК/ноутбуки с VGA/DVI разъемами могут просто не "выдать" картинку высокого разрешения, если вы к ним захотите подключить большой монитор/ТВ.

Переходник HDMI - VGA

Переходник HDMI - VGA

Переходник Display Port - HDMI

Переходник Display Port - HDMI

В продаже сейчас достаточно много переходников, которые обеспечивают взаимодействие разных интерфейсов между собой (VGA, Display Port, HDMI, DVI, USB Type-C).

Как к ноутбуку подключить больше одного монитора

Довольно популярный вопрос.

Обычно у большинства ноутбуков есть только один порт HDMI (VGA), и, разумеется, подключить по нему можно только один дисплей. Для подключения второго дисплея — понадобиться спец. адаптер (своего рода аналог внешней видеокарты).

Внешний вид адаптера

Внешний вид адаптера

К ноутбуку подключено 2 монитора!

К ноутбуку подключено 2 монитора!

А что, если я возьму разные версии разъёма HDMI

Если имеется ввиду форм-фактор — т.е. Micro и классический размер разъемов, то, чтобы их соединить нужен спец. кабель (возможно, переходник).

Если речь идет о том, чтобы видеокарту, поддерживающую стандарт HDMI 1.4 (с 3D), скажем, подключить к монитору с HDMI 1.2 — то устройства будут работать по стандарту HDMI 1.2 (без поддержки 3D).

Важна ли длина кабеля? Какому интерфейсу отдать предпочтение?

Да, длина кабеля имеет большое значение. Чем длиннее кабель - тем слабее сигнал, тем больше вероятность появления различных помех и т.д. Скажем, в общем случае нежелательно, чтобы его длина превышала 1,5÷3 м.

Конечно, на длину влияет еще выбранный вами интерфейс. Скажем, интерфейс HDMI позволяет использовать кабель длиной до 10 метров (а с усилителем и до 25-30!). В то время, как тот же VGA — кабель, длиннее 3 м. может существенно "испортить" картинку.

Что насчет качества, то сегодня одну из лучших картинок обеспечивают HDMI и Display Port (разрешение вплоть до 4K, при одновременной передаче аудио-сигнала, и при практически полном отсутствии помех).

klassicheskiy-usb-i-usb-type-c

Классический USB и USB Type C

Кстати, на новых ноутбуках и ПК можно встретить разъем USB Type C . Он, конечно, пока не получил широкого применения, но выглядит многообещающе.

Позволяет на "горячую" подключать монитор к ПК, одновременно передается аудио- видео-сигналы. В некоторых случаях, даже дополнительного питания монитору не требуется — хватает питания от USB-порта.

PS


Возможно, вам будет полезна статья о том, как правильно подключить монитор к ноутбуку (инструкция по шагам).

Читайте также: