Цветной TFT дисплей 2.4", разрешением 240х320 точек и глубиной цвета 65 тысяч цветов на пиксель. TFT дисплей построен на базе чипа ILI9341, который позволяет выводить цветную графическую информацию на матрицу дисплея. Помимо матрицы, на обратной стороне модуля расположен слот под microSD карту память, на которой можно хранить графические данные. Управление осуществляется по SPI интерфейсу.
Для вывода информации на дисплей с микроконтроллера используются следующие выводы
5V — для подачи внешнего питанющего напржения +5V
3.3V — выход от установленного на плате стабилизатора +3.3V 300мА. (Можно использовать для питания внешних потребителей)
LCD_MOSI — вывод интерфейса SPI дисплея (вывод SPI из разъема для программатора)
LCD_SCK — вывод интерфейса SPI дисплея (вывод SPI из разъема для программатора)
LCD_SS — выбор устройства
LCD_WR — отправить данные на дисплей
LCD_DC — команда/данные
LCD_RES — сброс информации на дисплее
LCD_LED — подсветка дисплея
GND — земля (общий)
Чтобы запустить дисплей и вывести на него данные, его необходимо подключить к микроконтроллеру по схеме ниже.
Для работы с дисплеем мы написали свою библиотеку, её можно загрузить отсюда: https://github.com/geegrow/GeeGrow_ILI9341. Как скачивать и устанавливать библиотеки описано в нашем разделе: https://geegrow.ru/wiki/programming/libraries/manual-setup/lib-setup/. После этого необходимо загрузить в микроконтроллер следующую программу, исходный код которой можно также найти в примерах к библиотеке.
#include "geegrow_ili9341.h" #define LED A0 #define RESET A3 #define DC A1 #define WR A4 #define SS A2 GeeGrow_ILI9341 *display = new GeeGrow_ILI9341(); GeeGrow_ILI9341_objectCircle *circle = display->createCircleObj(); void setup() { // put your setup code here, to run once: display->init(LED, RESET, DC, WR, CS); display->setRotation(ROTATION_UP); display->attachLibs(LIB_NUMBERS_ASCII | LIB_LETTERS_ASCII | LIB_SYMBOLS_ASCII | LIB_LETTERS_CYRILLIC); circle->setColorBG(BLACK); } void loop() { // put your main code here, to run repeatedly: display->fillDisplay(BLACK); uint8_t inc = 5; for (uint16_t i = 0; i < 160; i += inc) display->drawLine(i, 0, 320 - i, 239, RED); for (uint16_t i = 160; i < 320; i += inc) display->drawLine(i, 0, 320 - i, 239, GREEN); for (uint16_t i = 0; i < 120; i += inc) display->drawLine(319, i, 0, 240 - i, YELLOW); for (uint16_t i = 120; i < 240; i += inc) display->drawLine(319, i, 0, 240 - i, BLUE); display->fillDisplay(WHITE); display->printStr("GEEGROW", 104, 104, 2, RED); delay(2000); display->printStr("Дисплей ILI9341.", 100, 150, 1, BLUE); display->printStr("Приятного использования!", 65, 170, 1, PURPLE); delay(5000); display->fillDisplay(BLACK); display->fillRect(0, 0, 40, 180, BLUE); display->fillRect(0, 230, 320, 10, BLUE); display->fillRect(40, 0, 200, 80, BLUE); display->fillRect(290, 0, 30, 240, BLUE); display->fillRect(90, 130, 150, 50, BLUE); circle->moveTo(25, 205, 20, YELLOW); for (uint16_t i = 0; i < 240/inc; i++) circle->moveRight(inc); for (uint16_t i = 0; i < 100/inc; i++) circle->moveUp(inc); for (uint16_t i = 0; i < 200/inc; i++) circle->moveLeft(inc); for (uint16_t i = 0; i < 100/inc; i++) circle->moveDown(inc); for (uint16_t i = 0; i < 200/inc; i++) circle->moveRight(inc); for (uint16_t i = 0; i < 180/inc; i++) circle->moveUp(inc); }