







2,8" TFT дисплей 320*240 SPI
Арт. 16150
1,240 ₽
менее 50 шт.
Описание
2,8" TFT дисплей 320*240 SPI
Технические характеристки:
- тип матрицы: TFT
- диагональ: 2.8"
- разрешение : 240x320 пикселей
- напряжение питания: 3.3 вольт
- кол-во цветов: 65 тысяч
- углы обзора: 60°
- активная область: 43.2*57.6мм.
- графический контроллер: ILI9431
- интерфейс обмена данными с дисплеем: SPI, 4-проводной, лог. уровень 3,3 вольт
- тачскрин: резистивный
- контроллер тачскрин: XPT2046
- интерфейс обмена данными с контроллером тачскрина: SPI, 4-проводной, лог. уровень 3,3 вольт
- встроенный картридер: SD карта
- интерфейс обмена данными с картой памяти: SPI, 4-проводной, лог. уровень 3,3 вольт
- размер: 51х82.1х5.8 мм
- рабочая температура: -20...+70°С
Расположение и назначение выводов:
- T-IRQ - выход прерывания с контроллера тачскрина XPT2046
- T_DO - выход данный (MISO) с контроллера тачскрина XPT2046
- T_DIN - вход данных (MOSI) с контроллера тачскрина XPT2046
- T_CS - выбор ведомого устройства при обмене данными с контроллером тачскрина XPT2046
- T_CLK - вход тактирующих импульсов контроллера тачскрина XPT2046
- SDO (MISO) - выход данный с контроллера дисплея ILI9431
- LED - включение подсветки дисплея
- SCK - вход тактирующих импульсов на контроллер дисплея ILI9431
- SDI (MOSI) - вход данных на контроллер дисплея ILI9431
- DC - выбор данные/команда контроллера дисплея ILI9431
- RESET - сброс контроллера дисплея ILI9431
- CS - выбор ведомого устройства контроллера дисплея ILI9431
- GND - общий полюс питания
- VCC - положительный полюс питания 3,3 вольт
- SD_CS - выбор ведомого устройства карты памяти SD
- SD_MOSI - вход данных карты памяти SD
- SD_MISO - выход данный карты памяти SD
- SD_SCK - вход тактирующих импульсов карты памяти SD
Пример исходного кода для ArduinoIDE с применением библиотеки Adafruit_ILI9341
//This example implements a simple sliding On/Off button. The example
// demonstrates drawing and touch operations.
//
//Thanks to Adafruit forums member Asteroid for the original sketch!
//
#include <Adafruit_GFX.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_ILI9341.h>
#include <Adafruit_STMPE610.h>
// This is calibration data for the raw touch data to the screen coordinates
#define TS_MINX 150
#define TS_MINY 130
#define TS_MAXX 3800
#define TS_MAXY 4000
#define STMPE_CS 8
Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS);
#define TFT_CS 10
#define TFT_DC 9
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
boolean RecordOn = false;
#define FRAME_X 210
#define FRAME_Y 180
#define FRAME_W 100
#define FRAME_H 50
#define REDBUTTON_X FRAME_X
#define REDBUTTON_Y FRAME_Y
#define REDBUTTON_W (FRAME_W/2)
#define REDBUTTON_H FRAME_H
#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W)
#define GREENBUTTON_Y FRAME_Y
#define GREENBUTTON_W (FRAME_W/2)
#define GREENBUTTON_H FRAME_H
void drawFrame()
{
tft.drawRect(FRAME_X, FRAME_Y, FRAME_W, FRAME_H, ILI9341_BLACK);
}
void redBtn()
{
tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_RED);
tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_BLUE);
drawFrame();
tft.setCursor(GREENBUTTON_X + 6 , GREENBUTTON_Y + (GREENBUTTON_H/2));
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("ON");
RecordOn = false;
}
void greenBtn()
{
tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_GREEN);
tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_BLUE);
drawFrame();
tft.setCursor(REDBUTTON_X + 6 , REDBUTTON_Y + (REDBUTTON_H/2));
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("OFF");
RecordOn = true;
}
void setup(void)
{
Serial.begin(9600);
tft.begin();
if (!ts.begin()) {
Serial.println("Unable to start touchscreen.");
}
else {
Serial.println("Touchscreen started.");
}
tft.fillScreen(ILI9341_BLUE);
// origin = left,top landscape (USB left upper)
tft.setRotation(1);
redBtn();
}
void loop()
{
// See if there's any touch data for us
if (!ts.bufferEmpty())
{
// Retrieve a point
TS_Point p = ts.getPoint();
// Scale using the calibration #'s
// and rotate coordinate system
p.x = map(p.x, TS_MINY, TS_MAXY, 0, tft.height());
p.y = map(p.y, TS_MINX, TS_MAXX, 0, tft.width());
int y = tft.height() - p.x;
int x = p.y;
if (RecordOn)
{
if((x > REDBUTTON_X) && (x < (REDBUTTON_X + REDBUTTON_W))) {
if ((y > REDBUTTON_Y) && (y <= (REDBUTTON_Y + REDBUTTON_H))) {
Serial.println("Red btn hit");
redBtn();
}
}
}
else //Record is off (RecordOn == false)
{
if((x > GREENBUTTON_X) && (x < (GREENBUTTON_X + GREENBUTTON_W))) {
if ((y > GREENBUTTON_Y) && (y <= (GREENBUTTON_Y + GREENBUTTON_H))) {
Serial.println("Green btn hit");
greenBtn();
}
}
}
Serial.println(RecordOn);
}
}