67| 7
|
[项目] 【花雕学编程】Arduino动手做(249)---GC9A01随机变化文本 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目之五十八:GC9A01园屏之颜色、位置和字号都随机变化的文本”OK“ 实验开源代码
|
代码解读: 1. 头部:包含库文件
SPI.h:用于支持 TFT 显示屏与 Arduino 之间的 SPI 通信。 Adafruit_GFX.h:Adafruit 提供的 图形库,用于绘制文本、图形、形状等。 Adafruit_GC9A01A.h:GC9A01A 屏幕的 驱动库,使 Arduino 可以正确控制该 圆形 TFT 屏幕。 2. 设定屏幕连接引脚
这些 #define 定义了 与 TFT 屏幕连接的 Arduino 引脚: TFT_CS(Chip Select):用于 选择该屏幕 进行 SPI 通信。 TFT_DC(Data/Command):用于 区分是发送数据还是命令。 TFT_RST(Reset):用于 硬件复位屏幕(这里未使用,设为 -1)。 3. 初始化 TFT 屏幕对象
创建 GC9A01A 显示屏对象,用之前定义的引脚初始化它,使 Arduino 可以控制它。 4. 定义关键参数
定义屏幕的宽度和高度: GC9A01A 屏幕是 圆形的,但实际可用区域是 240×240 像素。 5. 颜色数组
color565(r, g, b):使用 RGB565 格式 定义颜色。 颜色数组包含: 红色 (255, 0, 0) 蓝色 (0, 0, 255) 绿色 (0, 255, 0) 在后续代码中,将随机选择这些颜色来显示文本。 6. setup() 初始化
Serial.begin(115200);:初始化 串口通信,用于调试。 tft.begin();:初始化 TFT 屏幕,使其可以使用。 tft.setRotation(1);:设置横屏模式(适用于 GC9A01A 屏幕)。 tft.fillScreen(tft.color565(0, 0, 0));: 清屏,填充 黑色背景,避免显示残影。 7. loop():随机显示 3 个 "OK"
功能分析 清屏
每次循环都清屏,确保不会重叠显示,避免视觉混乱。 循环显示 3 个 "OK" for (int i = 0; i < 3; i++) {...}:循环 3 次,即 同时显示 3 个 "OK"。 随机化参数 random(0, SCREEN_WIDTH - 50); → X 位置随机 random(0, SCREEN_HEIGHT - 50); → Y 位置随机 random(1, 9); → 字号随机(范围 1-8) colors[random(0, 3)]; → 颜色随机(红、蓝、绿) 设置文本 tft.setTextColor(color); → 设置颜色 tft.setTextSize(size); → 设置字号 tft.setCursor(x, y); → 设置位置 tft.print("OK"); → 在屏幕上打印 "OK" 屏幕刷新 delay(500); → 每 500 毫秒刷新一次,形成动态效果。 最终效果 随机位置显示 3 个 "OK" 文本颜色随机(红、蓝、绿) 随机字号(1-8),增强视觉动态感 每 500 毫秒自动刷新,形成动态变化。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed