2.8" TFT Touch Shield with 4MB Flash for Arduino and mbed
<img alt="105屏.png" src="http://images.ncnynl.com/arduino/2016/400px-105屏.png" width="400" height="315" class="thumbimage" /> <img src="http://images.ncnynl.com/arduino/2016/magnify-clip.png" width="15" height="11" alt="" />
目录
1 概 述
2 性能描述
3 引脚以及结构
4 基本应用
4.1 库文件实例应用下载
4.2 基本显示应用
4.3 触屏应用
4.4 从SD卡显示图片应用
5 相关产品的应用
概 述
此液晶显示模块基于SPI通讯接口,提供2.8" TFT液晶显示, 电阻触摸屏,内置Flash闪存和SD卡外部扩展存储。
性能描述
产品型号: DM-TFT28-105
屏幕尺寸: 2.8"
工作电压: 3.3V和 5V
屏幕分辨率: 240x320
通信接口: SPI
闪存: 4MB
工作温度: -10~70℃
支持 micro-SD卡
尺寸: 5570 (WH)mm
可视域:43.257.6 (WH)mm
重量: 40g
支持 Arduino 和 mbed
引脚以及结构
1.引脚布局:该显示器采用TFT触摸,SPI接口,SD卡和外部FLASH存储器
2.引脚功能:该TFT面板直接连接在一个Arduino引脚兼容的设备
3.电气特性
4.绝对最大额定值
基本应用
库文件实例应用下载
下面是下载样例代码步骤。
1.首先下载库文件 dmtftlibrary
2.解压缩到你的Arduino库文件夹中。在Windows里,通常位于Documents\Arduino\libraries。如果你想知道更多关于如何用Libraries,请关注Arduino的官方指南
3.打开Arduino的IDE,你可以找到现成的可运行实例。File--> Examples-> DmTftLibraries,然后选择相对应模块使用(这一款是DM-TFT28-105)。
4.打开范例和上传到你的Arduino电路板。
基本显示应用
基本显示应用,可以显示字符、线条、图形等基本操作。先从库中找到libraries\DmTftLibrary\DmTftBase.h文件,调用基本函数。
#include <SPI.h>
#include <DmTftIli9341.h>
DmTftIli9341 tft = DmTftIli9341(10, 9);//定义实体函数
void setup ()
{
tft.init();
tft.drawString(5, 10," Romantic cabin");//显示字符串
int x=100,y=100;
tft.drawLine (x, y, x-80, y+30, YELLOW );//画线
delay(1000);
tft.drawLine (x, y, x+80, y+30, YELLOW );
delay(1000);
tft.drawLine (x-60, y+25, x-60, y+160, BLUE );
delay(1000);
tft.drawLine (x+60, y+25, x+60, y+160, BLUE );
delay(1000);
tft.drawLine (x-60, y+160, x+60, y+160,0x07e0 );
delay(1000);
tft.drawRectangle(x-40, y+50,x-20, y+70, 0x8418);//显示方形
delay(1000);
tft.drawRectangle(x+40, y+50,x+20, y+70, 0x07ff);
delay(1000);
tft.fillRectangle(x-20, y+100, x+20, y+160, BRIGHT_RED);//显示充满的方形
delay(1000);
tft.drawLine (x, y+100, x, y+160, WHITE );
delay(1000);
tft.fillCircle(x+100, y-30, 20, RED );
delay(1000);
}
void loop(){}
触屏应用
触屏应用既是能够获取到触点的位置,同时显示不同的内容。
#include <SPI.h>
#include <DmTftIli9341.h>
#include <DmTouch.h>
#include <utility/DmTouchCalibration.h>
DmTftIli9341 tft = DmTftIli9341(10,9);
DmTouch dmTouch = DmTouch(DmTouch::DM_TFT28_105);
DmTouchCalibration calibration = DmTouchCalibration(&tft, &dmTouch);
bool calibrated = false;
uint16_t x=0, y=0 ;
void setup() {
dmTouch.setCalibrationMatrix(calibration.getDefaultCalibrationData((int)DmTouch::DM_TFT28_105));
tft.init();
dmTouch.init();
}
void loop() {
bool touched = true;
if (dmTouch.isTouched()) {
dmTouch.readTouchData(x,y,touched);//读取触点坐标(x,y)
calibration.drawCalibPoint(x, y);//在(x,y)点显示
}
}
从SD卡显示图片应用
1.在arduino上请使用这个转换软件把原bmp图片转换成16bit 565格式bmp图片才能正常显示,再把图片放到SD卡中,也可以直接用库里的图片(arduino-1.0.6\libraries\DmTftLibrary\examples\DM-TFT28-105)
2.把SD卡装到TFT屏上[注意有的SD卡读不了(不显示或只能读取一部分),换一个知名厂家出的SD卡]
3.再按照1-4基本步骤(库文件实例应用下载)把SD卡相应的程序下载到控制器中,或者下载下面的程序(注意要改相应的图片名称)。
#include <SPI.h>
#include <SPIFlash.h>
#include <SD.h>
#include <DmTftIli9341.h>
#include <DmDrawBmpFromSdCard.h>
#define TFT_CS 10
#define SD_CS 8
#define F_CS 6
#define T_CS 4
DmTftIli9341 tft = DmTftIli9341(10, 9);
DmDrawBmpFromSdCard drawImage = DmDrawBmpFromSdCard();
void setup()
{
// Set CS SPI pin HIGH for all SPI units, so they don't interfere
pinMode(TFT_CS, OUTPUT);
digitalWrite(TFT_CS, HIGH);
pinMode(T_CS, OUTPUT);
digitalWrite(T_CS, HIGH);
pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH);
pinMode(F_CS, OUTPUT);
digitalWrite(F_CS, HIGH);
Serial.begin(9600);
tft.init();
SD.begin(SD_CS);
drawImage.drawImage("logop565.bmp", tft, 0, 0);//显示图片
tft.clearScreen();
delay(2000);
drawImage.drawImage("logop888.bmp", tft, 0, 0);
}
void loop() { }
购买2.8" TFT触摸显示屏 (SKU:DFR0347)