Arduino Nano 专用 2.8 英寸 TFT 扩展板 – 320×240 SPI 显示屏
项目概述
本项目介绍一款专为 Arduino Nano 设计的紧凑型 TFT 扩展板,支持 2.8/2.4/3.2 英寸 320×240 分辨率 SPI 接口彩屏(含触摸),集成 microSD 卡槽、蓝牙模块接口 (HC-06) 与 OV7670 摄像头接口。板载电平转换电路解决 5V/3.3V 兼容问题,体积仅 64×49 mm,适合便携式嵌入式图形界面开发。
扩展板核心特性
| 接口/功能 | 规格 |
|---|---|
| 板载尺寸 | 64 × 49 mm |
| Arduino Nano 接口 | 30Pin 母座 (兼容 Nano R3) |
| TFT 显示屏接口 | 14Pin SPI + 触摸 (兼容 ILI9341 等驱动) |
| microSD 卡槽 | SPI 共享总线,存储图片/字体/数据 |
| 蓝牙模块接口 | 预留 HC-06 蓝牙串口透传引脚 |
| 摄像头接口 | 20Pin OV7670 (支持摄像头预览/拍照) |
| 供电接口 | Mini USB + 独立 2Pin 5V 供电座 |
| 电平转换 | 板载双向电平转换,兼容 5V Nano 与 3.3V 外设 |
组装指南
两种屏幕安装方式
扩展板设计双面均可安装屏幕,方式 1:屏幕在元件面(元件侧);方式 2:屏幕在焊盘面(背面)。两者功能相同,根据外壳设计选择。组装步骤:
- 将 Arduino Nano 插入 30Pin 母座(注意缺口方向)
- 将 TFT 屏幕 14Pin 排针插入扩展板对应插座(两面任选一)
- 通过 Mini USB 或 2Pin 端子供电
- 可选:插入 microSD 卡、HC-06 蓝牙模块、OV7670 摄像头
软件库与开发环境
- 核心库:YATFT2 (硬件驱动) +
Adafruit_GFX(图形原语) +Adafruit_Fonts(字体) - 触摸库:
XPT2046_Touchscreen - 安装方式:Arduino IDE → 草图 → 包含库 → 管理库 搜索安装,或手动添加 ZIP
示例程序详解
Demo 1:图形与文本绘制
展示字体渲染、几何图形(圆、矩形、圆弧、斜角矩形)、随机线条、全屏填充刷新速度测试。关键 API:
tft.begin()初始化tft.SetColor()/tft.SetFont()设置颜色/字体tft.OutTextXY(x, y, str)绘制文本tft.DrawCirc/FillCirc, DrawRect/FillRect, DrawArc, DrawFillBevel图形绘制tft.ClearDevice()全屏清屏GetMaxX()/GetMaxY()获取屏幕尺寸 (320, 240)
Demo 2:触摸屏交互
实现触摸画板:顶部色条选择颜色,触摸屏幕绘制 3×3 像素色块,右下角 "Clear screen" 清屏。关键点:
- SPI 总线共享:触摸读取时
SPI.begin(),显示驱动时SPI.end()释放 SS 引脚 - ADC 坐标校准:原始触摸 ADC 值 → 屏幕像素坐标的线性映射公式
- 四次采样平均滤波消抖
Demo 3:经典游戏 "Columns" (类俄罗斯方块)
完整游戏逻辑:三连消除、等级加速、分数/最高分记录、触摸/按键控制(左/右/下落/旋转)。代码结构:
- 状态机:
Demo演示模式 ↔Arbeiten游戏运行态 - 核心函数:
figmove()移动/旋转、FindFull()消行检测、MyScore()计分、Touch()触摸按键映射 - 显示刷新:
ViewStacan()仅重绘变化格子,优化流畅度
性能与优化提示
- SPI 频率:YATFT2 默认高速 SPI,确保接线短、完好,避免信号完整性问题
- 字体存储:大字体占用 Flash 大,按需引用
Fonts/FreeSans24pt7b.h等 - 图片显示:配合 microSD 读取 BMP/RAW 格式,需转换为屏幕原生色序 (RGB565)
- 触摸校准:不同批次屏幕 ADC 范围差异大,需在代码中调整映射系数
系列文章与后续规划
- Unique TFT Shield for Arduino Uno - 起步篇
- Unique TFT Shield for Arduino Uno - OV7670 摄像头实时预览
- Unique TFT Shield for Arduino Uno - Arduino 蓝牙相机 (ABC)
- 本文:Nano 版轻量级扩展板
- 计划:TFT SPI 显示照片与 RGB 视频
更新 (2021-04-01):统一库 EkaTFT 支持 4 种硬件版本、MegaAVR 与 ESP32,含更多例程。
资源链接
制造工艺
- ILI9341 2.4 英寸 TFT 触摸屏扩展板位图动画专业指南
- 基于 Web 控制的 DMX 灯光系统 – Arduino 主控制器
- DIY 蓝牙控制 Arduino 间谍小车
- Arduino Nano 智能礼服:心率感应 LED 装饰,融合 CrazyCircuits 与 DFRobot 传感器
- Arduino Nano + 摇杆控制双步进电机:Visuino 图形化教程
- START:集成 PS2 键盘、LCD、以太网与远程 Shell 的独立 Arduino 终端
- Arduino Nano 手持盖革计数器:DIY 核辐射检测仪
- 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
- Arduino 8 位并行 IO 端口库:一行代码实现 8 位数字读写
- 无线Arduino编程盾:HC-05蓝牙模块实现免USB线烧录
- Arduino 64 键原型键盘矩阵:用移位寄存器打造全自定义键盘
- Arduino GPS与TFT触摸屏扩展板:实时定位显示项目