Подключение TFT-дисплея 1.8 к Arduino
В этой статье, расскажу как подключить TFT дисплеи с диагональю 1.8 дюйма к плате Arduino. А так же, расскажу как выводить текст, рисовать разные фигуры и отображать изображения.
Технические параметры
► Напряжение питания: 3.3 В – 5 В
► Диагональ: 1.8 дюйма
► Разрешение: 128×160 пикселей
► Цветность: 65 тысяч цветов в формате RGB
► Интерфейс: SPI
► Габариты: 35 мм х 57 мм х 7 мм
Общие сведения
TFT дисплей цветной с диагональю 1.8 дюйма и расширением 128 на 160 точек, за обработку данный отвечает контроллер ST7735R, который может отобразить до 18-бит цвета (262144 оттенков), работает данный контроллер (дисплей) от 3.3В и для работы от плат arduino предусмотрен стабилизатор напряжения на 3.3В, но если необходимо работать от 3.3В просто замыкаем перемычку (как показывает опыт, модуль может работать и от 5В логики). Так-же, на модуле установлен держатель карты SD для хранения и загрузки изображения на TFT дисплей. Подключение осуществляется по SPI интерфейсу (4-х проводному), все выводы выведены на боковую группу контактов, на другой стороне платы, выведены вывода SD карты.
Группа контактов 1
► LED — управление подсветкой, напряжение не более 3.3 В
► SCK — линия синхронизации
► SDA — линия данных (Serial Data)
► A0
► RESET — сброс
► CS — выбор устройства
► GND — «-» питание модуля
► VCC — «+» питание модуля
Группа контактов 2
► SD_CS — выбор устройства
► SD_MOSI — прием данных
► SD_MISO — передача данных
► SD_SCK — линия синхронизации
Подключение TFT дисплея к Arduino
Необходимые детали:
► Цветной TFT-дисплей 1.8, 128×160, SPI x 1 шт.
► Arduino UNO R3 (DCCduino, CH340G) x 1 шт.
► Провод DuPont 10x, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.
Подключение:
В данном примере используем дисплей TFT и плату Arduino UNO R3, передача данный осуществляется по интерфейсу SPI. Так как контроллер дисплея ST7735R работает на 3.3В (включая логику), необходимо добавить пять резистор в цепь SPI на 1 кОм и один на 150 Ом для защиты светодиодов в подсветки. Но все подключают без резисторов и контроллер не сгорает. Собираем схему по рисунку ниже, так же для удобства выложил таблицу подключения.
Таблица подключения TFT дисплея
Как говорил выше, дисплей работает по интерфейсу SPI, поэтому необходимо включить в проект библиотеку SPI, а так же библиотеку TFT, все они входят в стандартные библиотеки среды разработки IDE Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* Тестировалось на Arduino IDE 1.8.0 Дата тестирования 29.08.2017г. */ #include <TFT.h> // Подключаем библиотеку TFT #include <SPI.h> // Подключаем библиотеку SPI #define cs 10 // Указываем пины cs #define dc 9 // Указываем пины dc (A0) #define rst 8 // Указываем пины reset TFT TFTscreen = TFT(cs, dc, rst); void setup() { TFTscreen.begin(); TFTscreen.background(0, 0, 0); // Очистим экран дисплея TFTscreen.setTextSize(2); // Устанавливаем размер шрифта } void loop() { /* * Установка цвета фона TFTscreen.background ( r , g , b ) * где, r, g и b являются значениями RGB для заданного цвета */ TFTscreen.background ( 0 , 0 , 0 ); /* * Команда установки цвета фона TFTscreen.stroke ( r , g , b ) * где, r, g и b являются значениями RGB для заданного цвета */ TFTscreen.stroke(255, 0, 0); /* * Вывод текста на дисплей TFTscreen.text("Hello, World!", x, y); * где x и y координаты. */ TFTscreen.text("Hello, World!", 6, 47); TFTscreen.text("RobotChip", 30, 67); delay(500); } |
Так же, в библиотеке доступны полезные функции, которые позволяют отобразить фигуры
► TFTscreen. point (x, y) — отображает точку в координате (x, y)
► TFTscreen. line (xStart, yStart, xEnd, yEnd) — рисует строку , начинающуюся с (xStart, yStart) и заканчивается на (xEnd, yEnd)
► TFTscreen. rect (xStart, yStart, width, height) — рисует прямоугольник с верхним левым углом (xStart, yStart) с заданной шириной и высотой
► TFTscreen .circle (x, y, radius) — рисует круг с центром в точке (x, y) с заданным радиусом
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Цветной TFT-дисплей 1.8, 128×160, SPI
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Цветной TFT-дисплей 1.8, 128×160, SPI
Монтажная схема не верна. Верхний контакт платы дисплея на монтаже — это VCC. Посмотрите внимательно распиновку платы дисплея!
Спасибо, поправлю
У кого как, у моего дисплея сначало земля, потом питание, и все остальное…
Всем кто пытается подключить на MEGA или MEGA2560 — 11 и 13 пины перенесены на 51 и 52 соотв
Этот дисплей работает при 5V спокойно без резисторов!
Да, полная глупость эти резисторы по 1 кОм. Что они делают? Ограничивают ток? Если речь про согласование ТТЛ и 3,3 В логики — используется делитель напряжения, а не последовательное включение. Ограничение тока подсветки мне кажется перестраховкой, хотя вдруг она окажется слишком прожорливой для GPIO Arduino и будет кушать больше 40 мА — так что сойдёт. Но можно было этот ток измерить, раз уж модуль в руках автора и по результату сделать вывод. А довод «все так делают и всё ОК» — может и не сработать.
Вопрос в том, как долго и счастливо он будет так работать? Существуют точно такие же дисплеи с установленым конвертором TTL уровней по типу 74HC245D, вот они специально заточены под 5В. Наверное их делают зря.
А можно без 1КоМ резисторов?(ато хочу подключить а резисторов нет)
Без каких резисторов?ты про которые 1 КоМ?
У меня не работает белым горит и всё
У меня тоже просто белым светился, пока все контакты не подключил как надо.
Была такая же проблема меге. Оказалось, dc на 9 пине обязательно. Ну и 51 и 52 вместо 11 и 13 (если мега, опять же)
значит сломон