描述
探索Adafruit 2.8"和3.2"彩色TFT触摸屏开发板v2:功能、使用与调试
作为电子工程师,我们经常在项目中寻找能够提升用户体验的组件,而彩色触摸屏LCD无疑是其中的佼佼者。今天,我们就来深入探讨一下Adafruit 2.8"和3.2"彩色TFT触摸屏开发板v2。
文件下载:1743.pdf
一、产品概述
这款TFT显示屏尺寸较大,有2.8英寸和3.2英寸对角线可选,亮度高(配备4或6个白色LED背光),色彩丰富。拥有240x320像素的分辨率,且能对单个RGB像素进行控制,比黑白128x64显示屏的分辨率高得多。它还附带了电阻式或电容式触摸屏,可检测屏幕上任意位置的手指按压。
显示屏内置了带RAM缓冲的控制器,大大减轻了微控制器的工作负担。支持两种工作模式:8位模式和SPI模式。8位模式下,需要8条数字数据线和4或5条数字控制线,共12条线来读写显示屏;SPI模式总共只需5个引脚,但速度比8位模式慢。
二、引脚布局
该开发板上的2.8英寸和3.2英寸TFT显示屏支持多种模式,显示屏本身有50个引脚。不过,大多数人常用的是“SPI”模式或8位模式(包括6800和8080)。显示屏的每一侧都有对应模式所需的所有引脚,可通过重新布线在两种模式之间切换,但不能同时使用两种模式。
(一)SPI模式
当对速度要求不是极高时,SPI模式会是一个受欢迎的选择。它使用的引脚较少(若跳过MISO引脚,仅需4个引脚即可在TFT上进行绘制),灵活性较高,且易于移植到各种微控制器上。同时,还允许在同一SPI总线上使用microSD卡插槽。但由于每次只能发送一位数据,其速度比并行8位模式慢。以下是SPI模式下的主要引脚及其功能:
- GND:电源和信号接地引脚。
- 3 - 5V / Vin:电源引脚,连接到3 - 5VDC,具有反极性保护。
- 3.3Vout:板载稳压器的3.3V输出。
- CLK:SPI时钟输入引脚。
- MISO:SPI微控制器输入串行输出引脚,主要用于SD卡和调试TFT显示屏,使用TFT显示屏时(仅写操作)并非必需。
- MOSI:SPI微控制器输出串行输入引脚,用于将数据从微控制器发送到SD卡和/或TFT。
- CS:TFT SPI芯片选择引脚。
- D / C:TFT SPI数据或命令选择引脚。
- RST:TFT复位引脚。开发板上有自动复位电路,该引脚不是必需的,但在某些情况下有助于复位TFT。
- Lite:背光控制的PWM输入引脚,默认上拉(背光开启),可进行PWM控制或下拉关闭背光。
- IM3 IM2 IM1 IM0:接口控制设置引脚,一般使用板载跳线将接口固定为SPI或8位模式,这些引脚用于高级应用和测试程序。
- Card CS / CCS:SD卡芯片选择引脚,用于读取SD卡。
- Card Detect / CD:SD卡检测引脚,插入卡时浮空,未插入时接地,可作为开关检测SD卡是否插入。
- 电阻式触摸引脚(Y +、X +、Y -、X -):用于电阻式触摸屏,可通过模拟引脚读取以确定触摸点,与TFT在电气上完全分离。
- 电容式触摸引脚(SDA、SCL、IRQ):SDA是电容触摸芯片的I2C数据引脚,SCL是I2C时钟引脚,两者都有电平转换和10K上拉电阻;IRQ是电容触摸中断引脚,检测到触摸时引脚变为低电平。
(二)8位模式
当微控制器有足够的引脚且需要更高的速度时,可以选择8位模式。在这种模式下,每次发送8位数据,因此需要更多的引脚,大约12个(8位数据线加上4个控制引脚)。不过,大多数微控制器的引脚数量有限,而且我们的库针对SPI模式进行了优化,所以不太推荐使用8位模式。以下是8位模式下的主要引脚及其功能:
- GND:电源和信号接地引脚。
- 3 - 5V (Vin):电源引脚,连接到3 - 5VDC,具有反极性保护。
- CS:TFT 8位芯片选择引脚,也与SPI模式的CS引脚相连。
- C / D:TFT 8位数据或命令选择引脚,与SPI的D / C引脚不同,与SPI的CLK引脚相同。
- WR:TFT 8位写选通引脚,也连接到SPI的D / C引脚。
- RD:TFT 8位读选通引脚,如果不需要从显示屏读取数据,则可以不使用该引脚。
- RST:TFT复位引脚,开发板上有自动复位电路,该引脚不是必需的。
- Backkite:背光控制的PWM输入引脚,默认上拉(背光开启),可进行PWM控制或下拉关闭背光。
- D0 - D7:8位并行数据线,在8位模式下发送到TFT,D0是最低有效位,D7是最高有效位。
三、接线与测试
(一)8位接线与测试
8位模式的接线比较繁琐,我们建议仅对Uno和Mega使用该模式。以下是具体步骤:
- 电源与背光测试:将3 - 5VDC和GND引脚连接到Arduino的5V和GND,通电后应看到白色背光亮起。
- 数据线连接:将D0和D1分别连接到数字引脚8和9,D2 - D7连接到数字引脚2 - 7。如果使用Mega,将TFT数据引脚D0 - D1连接到Mega引脚22 - 23,D2 - D7连接到Mega引脚24 - 29。
- 控制线连接:将CS连接到模拟引脚3,C / D连接到模拟引脚2,WR连接到模拟引脚1,RD连接到模拟引脚0,RST可连接到Arduino复位线。
- 库安装:需要下载并安装TFTLCD库(https://adafru.it/aHk)和GFX库(https://adafru.it/aJa),可通过Arduino库管理器进行安装。
- 代码上传:重启Arduino软件后,上传Adafruit_TFTLCD文件夹中的graphicstest示例代码,应能在TFT上看到一系列图形测试。
(二)SPI接线与测试
SPI模式的接线相对简单,步骤如下:
- SPI模式跳线设置:将IM1、IM2和IM3引脚连接到3.3V,可通过焊接PCB背面的IMx跳线来实现。
- 接线:将3 - 5V Vin连接到Arduino 5V引脚,GND连接到Arduino接地,CLK、MISO、MOSI分别连接到相应的SPI引脚,CS连接到数字引脚10,D / C连接到数字引脚9。
- 库安装:需要安装Adafruit ILI9341 TFT库(https://adafru.it/d4d)和Adafruit GFX库(https://adafru.it/aJa),可通过Arduino库管理器进行安装。
- 代码上传:重启Arduino软件后,上传Adafruit_ILI9341文件夹中的graphicstest示例代码,应能在TFT上看到一系列图形测试。
四、位图显示(SPI模式)
开发板内置了microSD卡插槽,可用于加载位图图像。此功能仅在SPI模式下支持,具体步骤如下:
- 准备microSD卡:使用格式化为FAT16或FAT32的microSD卡。
- 安装库:安装Adafruit_ImageReader库。
- 复制图片:将24位BMP格式、尺寸小于240x320像素的图片复制到microSD卡的根目录,并插入开发板的microSD插槽。
- 连接引脚:将CCS引脚连接到Arduino的数字引脚4。
- 上传代码:上传File -> examples -> Adafruit ImageReader Library -> ShieldILI9341示例代码,应能在TFT上看到图片。
五、触摸屏使用
(一)电阻式触摸屏
LCD上有一个2.8英寸或3.2英寸的4线电阻式触摸屏,可用于检测手指按压、触控笔等操作。使用时需要4个引脚,至少2个为模拟输入引脚。具体步骤如下:
- 下载库:从Arduino库管理器中下载Adafruit TouchScreen库(https://adafru.it/aT1)。
- SPI模式接线与测试:将Y +连接到Arduino A2,X +连接到Arduino D9(与D / C共享),Y -连接到Arduino D8,X -连接到Arduino A3。加载Adafruit_ILI9341库中的breakoutTouchPaint示例代码,可在屏幕上进行绘制。
- 8位模式接线与测试:将Y -连接到数字引脚9(也为D1),X -连接到模拟引脚2(也为C / D),Y +连接到模拟引脚3(也为CS),X +连接到数字引脚8(也为D0)。加载Adafruit_TFTLCD库中的tftpaint示例代码,可在屏幕上进行绘制。
(二)电容式触摸屏
电容式触摸屏版本采用了更先进的技术,具有硬玻璃盖板,只需轻轻触摸即可使用。它是单触摸电容屏,通过I2C进行通信,具体步骤如下:
- 接线:将SCL连接到Arduino的I2C时钟SCL引脚,SDA连接到Arduino的I2C数据SDA引脚。
- 下载库:下载FT6206控制器库(https://adafru.it/dGG)。
- 上传代码:重启IDE后,从examples -> Adafruit_FT6206菜单中选择CapTouchPaint并上传到Arduino,即可使用触摸屏。
六、CircuitPython使用
若要使用CircuitPython,需准备一块能运行CircuitPython的开发板,如Feather M4 Express。具体步骤如下:
- 准备开发板:对开发板进行组装,焊接引脚或连接电线。
- 接线:将3 - 5V Vin连接到Feather 3V引脚,GND连接到Feather接地,CLK、MISO、MOSI分别连接到相应的SPI引脚,CS连接到数字引脚9,D / C连接到数字引脚10,RST连接到数字引脚6。
- 安装库:确保运行最新版本的Adafruit CircuitPython,安装adafruit_ili9341库。
- 代码示例:提供了一个绘制绿色背景、紫色矩形和黄色文本的代码示例。
七、Python使用
(一)接线
使用Python和Adafruit CircuitPython RGB Display模块可轻松控制显示屏。以下是不同尺寸显示屏与Raspberry Pi的接线方法:
- ILI9341和HX - 8357-based显示屏:CLK连接到SPI时钟,MOSI连接到SPI MOSI,CS连接到CE0,D / C连接到GPIO 25,RST连接到GPIO 24,Vin连接到Raspberry Pi的3V引脚,GND连接到Raspberry Pi的接地。
- ST7789和ST7735-based显示屏:接线方式与上述类似。
(二)设置
需要安装Adafruit_Blinka库,启用SPI,验证运行Python 3。安装必要的库,如adafruit - circuitpython - rgb - display、DejaVu TTF字体和Pillow库。
(三)使用示例
提供了三个Python使用示例,包括显示图像、绘制形状和文本、显示系统信息。
八、资料下载与常见问题解答
(一)资料下载
可下载相关的产品资料,如ILI9341 TFT控制器芯片数据手册、各种尺寸的TFT数据手册、FT6206数据手册及应用笔记、Fritzing对象、EagleCAD文件和原理图等。
(二)常见问题解答
- 视频撕裂问题:如果在高速驱动显示屏时出现“视频撕裂”效果,可使用细硅胶线焊接到TFT的TE焊盘来实现同步。
- 初始上电显示屏不工作问题:显示屏驱动电路在初始上电后需要一定时间才能准备好。如果代码过早尝试写入显示屏,可能会导致其无法正常工作。可在调用tft.begin()之前添加一个小的延迟,如使用Arduino的delay()函数,根据具体情况调整延迟时间。
通过以上介绍,相信大家对Adafruit 2.8"和3.2"彩色TFT触摸屏开发板v2有了更深入的了解。在实际应用中,你是否也遇到过类似的问题呢?你又是如何解决的呢?欢迎在评论区分享你的经验和想法。
打开APP阅读更多精彩内容