Arduino к ILI9486: код, библиотека и схема подключения

Содержание

Сводка

Дисплей ILI9486 — это яркий и многофункциональный TFT LCD экран, который обладает высоким разрешением и яркостью цветов. Он часто используется в различных проектах Arduino для вывода информации и визуализации данных.

Краткое описание дисплея ILI9486

ILI9486 — это 3.5-дюймовый TFT LCD дисплей с разрешением 480×320 пикселей. Он поддерживает 65 тысяч цветов и обеспечивает яркое и насыщенное изображение. Дисплей ILI9486 прост в управлении и отлично подходит для создания интерфейсов и графических элементов в Arduino проектах.

Краткое описание библиотек

  1. Arduino.h — это стандартная библиотека Arduino, которая содержит основные функции для работы с платформой Arduino. Она предоставляет возможности для инициализации, ввода-вывода, работы с памятью и другими базовыми операциями.
  2. SPI.h — библиотека SPI (Serial Peripheral Interface) используется для работы с периферийными устройствами через последовательный интерфейс. Она позволяет обмениваться данными между Arduino и другими устройствами по шине SPI.
  3. Adafruit_GFX.h — это графическая библиотека, разработанная компанией Adafruit, которая предоставляет набор функций и методов для работы с графикой на дисплеях. Она поддерживает рисование геометрических фигур, текста, изображений и других элементов.
  4. MCUFRIEND_kbv.h — библиотека предназначена для работы с TFT-дисплеями на основе контроллеров серии ILI9320 и совместимых, которая включает популярные модели, такие как ILI9341 и ILI9486. Она предоставляет упрощенный интерфейс для управления дисплеем, а также позволяет пользователям легко создавать графические интерфейсы, отображать текст, изображения и анимации. MCUFRIEND_kbv.h включает функции для оптимизации работы с памятью и повышения производительности при отрисовке, которые обеспечивая гладкое и быстрое отображение графики.

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

Для работы с дисплеем ILI9486 подойдет ЛЮБАЯ плата Arduino. Платы дисплеев от разных производителей питается разными напряжениями. В проекте мы используем плату Arduino Uno, пины соединения, которые совпадают с Arduino Nano. Например, для Arduino Mega надо чуть поменять соединение.

Таблица 1. Подключения дисплея ILI9486 к разным платам Arduino

Пин ILI9486ОписаниеПин Arduino UnoПин Arduino Mega
LCD_RSTСигнал сброса ЖК-шины1010
LCD_CSМикросхема ЖК-шины выбирает сигнал99
LCD_RSСигнал команды ЖК-шины / выбора данных88
LCD_WRСигнал записи на ЖК-шину77
LCD_RDСигнал считывания с ЖК-шины66
GNDЗаземление питанияGNDGND
5VПотребляемая мощность 5 В5V5V
3V3Потребляемая мощность 3,3 В (отключаем)Не подключенНе подключен
LCD_D08-битный бит данных на ЖК-дисплее -055
LCD_D18-битный бит данных на ЖК-дисплее -144
LCD_D28-битный бит данных на ЖК-дисплее -233
LCD_D38-битный бит данных на ЖК-дисплее -322
LCD_D48-разрядный бит данных на ЖК-дисплее -4A0A0
LCD_D58-разрядный бит данных на ЖК-дисплее -5A1A1
LCD_D68-разрядный бит данных на ЖК-дисплее -6A2A2
LCD_D78-битный бит данных на ЖК-дисплее -7A3A3
SD_SSВыбор сигнала чипом шины SPI SD-картыНе подключенНе подключен
SD_DIСигнал шины MOSI SPI SD-картыНе подключенНе подключен
SD_DOСигнал MISO шины SPI SD-картыНе подключенНе подключен
SD_SCKТактовый сигнал шины SPI SD-картыНе подключенНе подключен

Объяснения подключения:

  • LCD_RST, LCD_CS, LCD_RS, LCD_WR, LCD_RD: Эти пины управляют работой дисплея, и их нужно подключить к цифровым пинам Arduino.
  • GND и 5V: Подключите к земле и 5 вольт соответственно для питания дисплея.
  • LCD_D0 — LCD_D7: Эти пины используются для передачи данных и могут быть подключены к любым доступным пинам Arduino, а в данном случае я предложил использовать пины 2-5 и A0-A3.
  • 3V3: Этот пин можно оставить не подключенным. Он не нужен для работы с Arduino Uno.

Для дисплеев ILI9486 с 3.5 inch(дюйма) дисплей накладывается сверху, как показано на рисунке:

Наложение Arduino Uno с ILI9486
Рисунок 1. Наложения сверху платы Arduino Uno дисплея ILI9486

Инициализация дисплея и код для Arduino

Для успешной работы с дисплеем ILI9486 в Arduino проекте необходимо:

  1. Подключить его к плате Arduino по SPI интерфейсу
  2. Инициализировать библиотеку MCUFRIEND_kbv.h и использовать функции из Adafruit_GFX.h для отображения графики.
Написанная программа на языке С/C++ сначала инициализирует необходимые параметры для работы с экраном дисплея ILI9486. В начале программы отображаются два прямоугольника красным и зеленным цветами. После выводится текст «DocsTech.ru» с продолжительностью 1 секунды белым цветом на черном фоне.
#include "Adafruit_GFX.h" #include "MCUFRIEND_kbv.h" #define BLACK 0x0000 #define RED 0xF800 #define GREEN 0x07E0 #define WHITE 0xFFFF MCUFRIEND_kbv tft; void setup() { // Reading TFT ID: uint16_t ID = tft.readID(); Serial.begin(9600); Serial.println(ID); //Initializing TFT display: tft.begin(ID); } void loop() { // Fill TFT Screen with a color: tft.fillScreen(BLACK); delay(500); // Fill a rectangle: tft.fillRect(11, 11, 298, 48, RED); delay(500); //Draw a rectangle: tft.drawRect(10, 10, 300, 50, GREEN); delay(500); //Set cursor: tft.setCursor(80, 25); //Set text color: tft.setTextColor(WHITE); //Set text size: tft.setTextSize(2); //Print text to TFT display: tft.println("DocsTech.ru"); delay(2000); }

Заключение

Arduino и дисплей ILI9486 — отличная комбинация для создания разнообразных проектов с графическим интерфейсом. С помощью библиотек и правильной схемы подключения вы легко сможете реализовать свои идеи и воплотить их в жизнь на ярком TFT LCD экране.