Меню Рубрики

Tft 320qvt 9341 подключение к ардуино

Содержание

Для Arduino есть очень много модулей , датчиков. Но все это скучно без дисплея )) В этой статье мы с вами подключим TFT дисплей с драйвером ILI9341 к контролеру.

В руки мне попал Китайский брат с маркировкой KMRTM24024-SPI. Это TFT дисплей с диагональю 2.4″ и SPI интерфейсом.

Характеристики :

  • Диагональ: 2,4 .
  • Цвет: 18-бит, 262 000 оттенков.
  • Разрешение: 320 х 240.
  • Соотношение сторон экрана: 4 : 3 .
  • Питание : 3.3В/5 В.
  • Интерфейс : SPI .

Самое интересное, что логика работы драйвера 3.3 В . По этому нам потребуется согласовать наше Arduino с логикой 5 В и дисплей.

Выводы :

  • VCC = +5v (+5 вольт).
  • GND = GND (земля).
  • LED = +3.3v (подсветка дисплея).
  • SCK = SPI.
  • SDI/SD (MOSI) = SPI.
  • SDO(MISO) = SPI.
  • CS = выбор устройства.
  • D/C = Команда/Данные.

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

Так как логика работу у дисплея и контролера разная нам надо их согласовать. Тут есть два варианта:

  • Использовать делитель напряжения на резисторах, нам потребуется резисторы 20 кОм и 10 кОм.Соединение дисплея с Arduino Nano:

    SCK —— pin D8 ( через делитель ).
    SDI (MOSI) —— pin D9 ( через делитель ).
    D/C —— pin D10 ( через делитель ).
    RESET —— pinD 11 ( через делитель ).
    CS —— pin D12 ( через делитель ).
    VCC —— +5v (+5 вольт, ВНИМАНИЕ ваш дисплей может питаться 3.3В)
    GND —— GND (земля).
    LED —— +3.3v (подсветка дисплея).

    Кодинг :

    Для работы с дисплеем есть много разных библиотек. Я использую библиотеку UTFT которую скачаем с GitHab или с нашего сайта. Загрузим готовый скетч из примеров с нашим разрешение :

    Этот пример поможет вам с конвертацией типа float в string:

    Вот собственно и все . Дальше все ограничено только вашей фантазией.

    Для Arduino есть очень много модулей , датчиков. Но все это скучно без дисплея )) В этой статье мы с вами подключим TFT дисплей с драйвером ILI9341 к контролеру.

    В руки мне попал Китайский брат с маркировкой KMRTM24024-SPI. Это TFT дисплей с диагональю 2.4″ и SPI интерфейсом.

    Характеристики :

    • Диагональ: 2,4 .
    • Цвет: 18-бит, 262 000 оттенков.
    • Разрешение: 320 х 240.
    • Соотношение сторон экрана: 4 : 3 .
    • Питание : 3.3В/5 В.
    • Интерфейс : SPI .

    Самое интересное, что логика работы драйвера 3.3 В . По этому нам потребуется согласовать наше Arduino с логикой 5 В и дисплей.

    Выводы :

    • VCC = +5v (+5 вольт).
    • GND = GND (земля).
    • LED = +3.3v (подсветка дисплея).
    • SCK = SPI.
    • SDI/SD (MOSI) = SPI.
    • SDO(MISO) = SPI.
    • CS = выбор устройства.
    • D/C = Команда/Данные.

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

    Так как логика работу у дисплея и контролера разная нам надо их согласовать. Тут есть два варианта:

    • Использовать делитель напряжения на резисторах, нам потребуется резисторы 20 кОм и 10 кОм.Соединение дисплея с Arduino Nano:

      SCK —— pin D8 ( через делитель ).
      SDI (MOSI) —— pin D9 ( через делитель ).
      D/C —— pin D10 ( через делитель ).
      RESET —— pinD 11 ( через делитель ).
      CS —— pin D12 ( через делитель ).
      VCC —— +5v (+5 вольт, ВНИМАНИЕ ваш дисплей может питаться 3.3В)
      GND —— GND (земля).
      LED —— +3.3v (подсветка дисплея).

      Читайте также:  Желтые стены белый потолок

      Кодинг :

      Для работы с дисплеем есть много разных библиотек. Я использую библиотеку UTFT которую скачаем с GitHab или с нашего сайта. Загрузим готовый скетч из примеров с нашим разрешение :

      Этот пример поможет вам с конвертацией типа float в string:

      Вот собственно и все . Дальше все ограничено только вашей фантазией.

      Библиотека

      Поддерживаемые дисплеи

      Дисплеи Инициализация
      Цветной графический дисплей 2.8 TFT 320х240   Данный дисплей совместим с любыми Arduino.

      UTFT myGLCD(TFT01_24SP, 6, 5, 4, 3, 2);

      Дисплей можно подключать к любым выводам Arduino указав № выводов при объявлении объекта myGLCD библиотеки UTFT:
      UTFT myGLCD(TFT01_24SP, SDI/MOSI, SCK, CS, RESET, DC/RS);

      На дисплее установлен преобразователь уровней, так что его можно подключать и к 3В и к 5В логике.

      Описание работы с сенсорным экраном находится в разделе Wiki работа с TouchScreen

      Данный дисплей совместим только с Arduino Mega.

      UTFT myGLCD(TFT32MEGA, 38, 39, 40, 41); // дисплей на чипе ILI9341.
      или
      UTFT myGLCD(TFT32MEGA_2, 38, 39, 40, 41); // дисплей на чипе HX8357C.

      Дисплеи поставляются на базе чипа ILI9341 или HX8357C. Если изображение на дисплее отображается зеркально, то измените тип дисплея: укажите либо TFT32MEGA, либо TFT32MEGA_2.

      Если Вы не планируете использовать SD карту, то выводы 50-53 можно использовать для подключения других модулей.

      Выводы не подписанные на рисунке, не используются дисплеем.

      Цветной графический дисплей 2.8 TFT 320×240 UNO
      Данный дисплей совместим только с Arduino Uno.

      UTFT myGLCD(TFT28UNO, A2, A1, A3, A4, A0);

      Если Вы не планируете использовать SD карту, то выводы 10-13 можно использовать для подключения других модулей.

      Выводы не подписанные на рисунке, не используются дисплеем.

      Описание работы с сенсорным экраном находится в разделе Wiki работа с TouchScreen

      Цветной графический дисплей 2.4 TFT 240×320
      Данный дисплей совместим с любыми Arduino.

      UTFT myGLCD(TFT01_24SP, 5, 4, 8, 7, 6);

      Дисплей можно подключать к любым выводам Arduino указав № выводов при объявлении объекта myGLCD библиотеки UTFT:
      UTFT myGLCD(TFT01_24SP, SDI/MOSI, SCK, CS, RESET, DC/RS);

      Уровень логической «1» на входах дисплея ≤ 3,3 В.
      Если Вы используете 5 В логику, то подключайте входы дисплея через делители:

      При питании от 3,3 В необходимо замкнуть перемычку J1 на обратной стороне платы дисплея.

      Если Вы желаете использовать SD-карту, то выводы SD_CS, SD_MOSI, SD_MISO и SD_SCK необходимо подключить к Arduino по аппаратной шине SPI:

      Если аппаратный вывод CS(SS) Arduino занят, то вывод SD_CS можно подключить к любому другому выводу Arduino, указав его номер в скетче (см пример в файле image_SD библиотеки UTFT).

      TouchScreen можно подключать к любым выводам Arduino указав № выводов при объявлении объекта myTouch библиотеки URTouch:
      URTouch myTouch( T_CLK, T_CS, T_DIN, T_OUT, T_IRQ);
      Например: URTouch myTouch(13, 12, 11, 10, 9);

      Указанные в примере выводы Arduino для подключения TouchScreen пересекаются с выводами аппаратной шины SPI на платах Arduino Uno, Pro Mini, Nano и т.д. Если Вы желаете использовать на этих платах и TouchScreen, и SD-карту , то для TouchScreen нужно выбрать другие выводы Arduino, например, аналоговые выводы A0-A4, указав их в скетче при объявлении объекта:
      URTouch myTouch(A0, A1, A2, A3, A4);

      Описание работы с сенсорным экраном со встроенным контроллером функций TouchScreen находится в разделе Wiki работа с TouchScreen по последовательной шине данных.

      Данный дисплей совместим с любыми Arduino.

      Читайте также:  Душевые кабины со стеклянными дверьми

      UTFT myGLCD(TFT01_22SP, 5, 4, 8, 7, 6);

      UTFT myGLCD(TFT18SHLD, 5, 4, 8, 7, 6);

      Дисплей можно подключать к любым выводам Arduino указав № выводов при объявлении объекта myGLCD библиотеки UTFT:
      UTFT myGLCD(TFT01_22SP, SDI/MOSI, SCK, CS, RESET, DC/RS);

      Уровень логической «1» на входах дисплея ≤ 3,3 В.
      Если Вы используете 5 В логику, то подключайте входы дисплея через делители:

      Если Вы желаете использовать SD-карту, то выводы SD_CS, SD_MOSI, SD_MISO и SD_SCK необходимо подключить к Arduino по аппаратной шине SPI:

      Если аппаратный вывод CS(SS) Arduino занят, то вывод SD_CS можно подключить к любому другому выводу Arduino, указав его номер в скетче (см пример в файле image_SD библиотеки UTFT).

      Если Вы собираетесь использовать библиотеку UTFT для работы с другими дисплеями, то закомментируйте строку с названием Вашего дисплея в файле «memorysaver.h». А для экономии памяти, раскомментируйте остальные строки кода файла «memorysaver.h».

      #1 Пример

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

      #2 Пример

      Заливаем весь дисплей различными цветами:

      #3 Пример

      Рисуем различные графические элементы:

      Базовые функции:

      Все функции:

      • InitLCD([положение]); – Инициирует начало работы с дисплеем. Необязательный параметр может принимать одно из двух значений: PORTRAIT (вертикальная ориентация) или LANDSCAPE (горизонтальная ориентация – по умолчанию).
      • clrScr(); – Очищает дисплей, стирая всю отображаемую на дисплее информацию и заливая дисплей черным цветом.
      • fillScr(color); – Очищает дисплей, стирая всю отображаемую на дисплее информацию и заливая его указанным в качестве параметра цветом фона.
      • getDisplayXSize(); – Возвращает количество пикселей дисплея по горизонтали, число типа int.
      • getDisplayYSize(); – Возвращает количество пикселей дисплея по вертикали, число типа int.
      • setColor(color); – Выбор цвета для текста и фигур, выводимых после данной функции.
      • getColor(); – Возвращает установленный цвет для текста и фигур в формате RGB565, число типа word.
      • setBackColor(color); – Выбор цвета для фона текста, выводимого после данной функции.
      • getBackColor(); – Возвращает установленный цвет для фона текста в формате RGB565, число типа word.
      • setFont(fontName); – Выбор шрифта для текста выводимого после данной функции.
      • getFont(); – Возвращает указатель на выбранный шрифт.
      • getFontXsize(); – Возвращает количество пикселей в одном символе шрифта, по ширине.
      • getFontYsize(); – Возвращает количество пикселей в одном символе шрифта, по высоте.
      • print(str,x,y[,r]); – Вывод на дисплей строк или содержимого строковых переменных.
      • printNumI(int,x,y[,len[,sym]]); – Вывод на дисплей целого числа или содержимого целочисленной переменной.
      • printNumF(float,dec,x,y[,sym1[,len[,sym2]]]); – Вывод на дисплей вещественного числа или содержимого переменной вещественного типа
      • drawPixel(x,y); – Вывод на дисплей точки. Цвет точки определяется текущим значением цвета, устанавливаемым командой setColor().
      • drawLine(x1,y1,x2,y2); – Вывод на дисплей линии, заданной координатами двух точек.
      • drawRect(x1,y1,x2,y2); – Вывод на дисплей прямоугольника, противоположные углы которого заданы координатами двух точек.
      • drawRoundRect(x1,y1,x2,y2); – Вывод на дисплей прямоугольника со скругленными углами.
      • fillRect(x1,y1,x2,y2); – Вывод на дисплей закрашенного прямоугольника.
      • drawCircle(x,y,R); – Вывод на дисплей окружности, определяемую координатами центра и радиусом.
      • fillCircle(x,y,R); – Вывод на дисплей закрашенной окружности.
      • drawBitmap(x1,y1,x2,y2,data[,scale]); – Вывод на дисплей картинки из массива.
      • Для вывода на дисплей картинки из файла с SD-карты нужно вызвать функцию load(x1,y1,x2,y2,data); объекта библиотеки UTFT_SdRaw.
        Для работы функции load, нужно установить и подключить библиотеки: UTFT_SdRaw и SdFat.
      Читайте также:  Декор стены в зале своими руками фото

      Инициализация работы с дисплеем:

      InitLCD( [положение] );
      Инициализация работы с дисплеем, с указанием его положения.

      InitLCD(PORTRAIT); // инициализация (вертикальное положение)

      Параметр:

        Положение может быть горизонтальным или вертикальным:

      • положение: PORTRAIT – вертикальное
      • положение: LANDSCAPE – горизонтальное (по умолчанию)

      Очистка экрана:

      clrScr();
      Очистка экрана с заливкой дисплея чёрным цветом
      Параметр: Без параметров.
      fillScr( color );
      Очистка экрана с заливкой заданным цветом.

      fillScr(VGA_RED); // красный цвет

      Параметр:

        Цет можно задать тремя способами:

      • color: По названию цвета – VGA_RED
      • color: В формате RGB565 – 0x001F
      • color: В формате RGB – 255,100,0

      Выбор цвета:

      setColor( color );
      Выбор цвета для текста и фигур, выводимых после данной функции.

      setColor(0,0,255); // синий цвет

      Параметр:

        Цет можно задать тремя способами:

      • color: По названию цвета – VGA_RED
      • color: В формате RGB565 – 0x001F
      • color: В формате RGB – 255,100,0
      setBackColor( color );
      Выбор цвета для фона текста, выводимого после данной функции.

      setBackColor(2016); // зелёный цвет

      Параметр:

        Цет можно задать тремя способами:

      • color: По названию цвета – VGA_RED
      • color: В формате RGB565 – 0x001F
      • color: В формате RGB – 255,100,0

      Удобнее всего устанавливать цвет по его названию:
      Полный перечень цветов: VGA_BLACK, VGA_WHITE, VGA_RED, VGA_GREEN, VGA_BLUE, VGA_SILVER, VGA_GRAY, VGA_MAROON, VGA_YELLOW, VGA_OLIVE, VGA_LIME, VGA_AQUA, VGA_TEAL, VGA_NAVY, VGA_FUCHSIA, VGA_PURPLE, VGA_TRANSPARENT.

      Выбор шрифта:

      setFont( fontName );
      Выбор шрифта для текста выводимого после данной функции.

      setFont(SmallFont); // маленький шрифт

      Параметр:

        По умолчанию в библиотеке есть 3 шрифта:

      • fontName: SmallFont – маленький шрифт
      • fontName: BigFont – большой шрифт
      • fontName: SevenSegNumFont – шрифт имитирующий семисегментный индикатор

      Вывод текста:

      print( str , x , y [, r] );
      Выводит на дисплей строки или содержимое строковых переменных.

      print("iarduino", 50, 50); // текст "iarduino" горизонтально
      print("iarduino", 50, 50, 90); // текст "iarduino" вертикально

      Параметры:

      • str: строка или содержимое строковой переменной
      • x: координата X
      • y: координата Y координаты верхнего левого угла области печати
        (x можно указать как число или LEFT / RIGHT / CENTER)
      • r: поворот текста в градусах, вокруг точки x,y
        r – необязательный параметр
      printNumI( int , x , y [, len [, sym ] ] );
      Выводит на дисплей целые числа или содержимое целочисленных переменных.

      printNumI(2000,50,50); // результат: "2000"
      printNumI(2000,50,50,0); // результат: "2000"
      printNumI(2000,50,50,5); // результат: " 2000"
      printNumI(2000,50,50,6,’0′); // результат: "002000"

      Параметры:

      • int: целое число или содержимое целочисленной переменной
      • x: координата X
      • y: координата Y координаты верхнего левого угла области печати
        (x можно указать как число или LEFT / RIGHT / CENTER)
      • len: количество выводимых разрядов числа int.
        игнорируется если len меньше количества разрядов int.
        необязательный параметр, по умолчанию: 0
      • sym: символ заменяющий недостающие разряды.
        необязательный параметр, по умолчанию: ‘ ‘
        (если len больше чем количество разрядов числа int, то недостающие разряды перед числом будут заменены на sym.)
      printNumF( float , dec, x , y [, sym1 [, len [, sym2 ] ] ] );
      Выводит на дисплей вещественные числа или содержимое переменных вещественного типа.

      printNumF(-234.3442,2,50,50); // результат "-234.34"
      printNumF(-234.3442,3,50,50); // результат "-234.344"
      printNumF(-234.3442,4,50,50,’*’); // результат "-234*3442"
      printNumF(-234.3442,1,50,50,’,’,1); // результат "-234,3"
      printNumF(-234.3442,1,50,50,’,’,7); // результат " -234,3"
      printNumF(-234.3442,1,50,50,’,’,7,’0′); // результат "-0234,3"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *