События‎ > ‎

Дисплей TFT 1.8 SPI и Arduino

1.8 SPI TFT дисплей
Сегодня я поведаю о том, как подключить к Arduino настоящий TFT дисплейВ качестве последнего будем использовать 1.8-дюймовый TFT с SPI интерфейсом, который был куплен мной на ebay за $5.65. 

Китайский экранчик имеет разрешение 128х160, и (скорее всего) управляется драйвером ST7735R, который обеспечивает отображение 18-битного цвета (262144 оттенков). На плате устройства также размещается регулятор напряжения 5->3.3 и слот для SD карт, который можно использовать для хранения изображений и последующего их вывода на дисплей.

Подключение

На плате имеется 16 выводов, три из которых не используются. Выводы 11-14 подключены к разъему SD карты.

 Вывод Описание
 GND земля
 VCC питание +5В
 NC -
 NC -
 NC -
 RESET сброс
 A0 линия команд
 SDA линия данных
 SCK тактовый сигнал
 CS выбор устройства
 SCK такт. SD
 MISO данные вых. SD
 MOSI данные вх. SD
 CS выбор устр. SD
 LED+ подсветка +5В
 LED- подсветка земля

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

Существует два основных варианта подключения Arduino и дисплея через SPI. В первом случае, можно использовать любые из GPIO выводов Arduino, но при этом будет использован медленный программный SPI драйвер. Пример такой схемы подключения представлен ниже.

 TFT Arduino
 GND GND
 VCC +5В
 RESET 8
 A0 7
 SDA 5
 SCK 4
 CS 6

Аппаратный SPI

Как известно, Arduino имеет встроенный аппаратный SPI. На Arduino Nano для этого используются выводы с 10 по 13. 

 TFT Arduino
 GND GND
 VCC +5В
 RESET 8
 A0 9
 SDA 11
 SCK 13
 CS 10

Аппаратный SPI + SD карта

Как я уже написал, на плате дисплея есть слот для SD карт. Чтобы была возможность выводить с карты битмапы, слот, также как и сам дисплей, необходимо подключить к SPI шине.

 TFT Arduino
 GND GND
 VCC +5В
 RESET 8
 A0 9
 SDA 11
 SCK 13
 CS 10
 SCK 13
 MISO 12
 MOSI 11
 CS 4

Программа

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

Для установки этих библиотек, потребуется скачать соответствующие архивы о указанным ссылкам, распаковать их в папку с установленным Arduino IDE: .../arduino/libraries. И не забыть переименовать их, убрав из названия символ "-" (иначе либы не подключатся).

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


Скетч "graphicstest" использует первый вариант подключения - программный SPI. Второй скетч "graphicstest_highspeed" использует аппаратный SPI и выполняется гораздо быстрее первого варианта. Наконец, третья программа "spitftbitmap" выводит на дисплей картинку, заранее сохраненную на SD карточку. Картинка должна быть битмапом (.bmp) с глубиной цвета 24бит и с разрешением, ясен пень, 128х160 пикселей.

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