【花雕学编程】Arduino动手做(249)---ESP32驱动1.28寸 TFT GC9A01圆屏之随机位置显示5号红色字母“OK”刷屏0.3秒

2025-03-2546
AI 快速预览详细 收起
本教程介绍了如何使用ESP32驱动1.28寸TFT GC9A01圆屏,并在随机位置显示5号红色字母“OK”。通过详细代码和步骤,展示了如何生成随机坐标、设置字体颜色和大小,并实现每0.3秒刷新一次的效果。适合Arduino爱好者和初学者参考。

00 (1).jpg
00 (2).jpg
02.jpg
10 (1).jpg
10 (2).jpg
12.jpg
13.jpg

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动
 项目实验之十:随机位置显示5号红色字母“OK”刷屏0.3秒

 

实验开源代码

 

 

代码
/*
  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动
  项目实验之十:随机位置显示5号红色字母“OK”刷屏0.3秒
*/

//       GC9A010 -------- ESP32
//       RST ------------ NC(复位引脚,此处未连接)
//       CS ------------- D4(片选引脚,连接到ESP32的D4引脚)
//       DC ------------- D2(数据/命令选择引脚,连接到ESP32的D2引脚)
//       SDA ------------ D23 (green)(主数据输出引脚,连接到ESP32的D23引脚,绿色线)
//       SCL ------------ D18 (yellow)(时钟信号引脚,连接到ESP32的D18引脚,黄色线)
//       GND ------------ GND(接地引脚,连接到ESP32的接地端)
//       VCC -------------3V3(电源引脚,连接到ESP32的3.3V电源)

#include "SPI.h"                   // 引入SPI库
#include "Adafruit_GFX.h"          // 引入Adafruit GFX库
#include "Adafruit_GC9A01A.h"      // 引入GC9A01A显示屏驱动库

#define TFT_DC 2                   // 定义TFT显示屏的DC引脚
#define TFT_CS 4                   // 定义TFT显示屏的CS引脚

Adafruit_GC9A01A tft(TFT_CS, TFT_DC); // 创建GC9A01A对象

void setup() {
    Serial.begin(9600);            // 初始化串口通信
    Serial.println("Random 'OK' Display!");

    tft.begin();                   // 初始化显示屏
    tft.setRotation(2);            // 设置显示屏方向
    tft.fillScreen(GC9A01A_BLACK); // 清屏
    randomSeed(analogRead(0));     // 初始化随机数种子
}

void loop() {
    int screenWidth = tft.width();  // 屏幕宽度
    int screenHeight = tft.height(); // 屏幕高度

    // 随机生成位置
    int randomX = random(0, screenWidth - 30);  // X坐标范围(避免“OK”超出边界)
    int randomY = random(0, screenHeight - 60); // Y坐标范围(避免“OK”超出边界)

    // 清屏
    tft.fillScreen(GC9A01A_BLACK);

    // 显示红色“OK”
    tft.setTextColor(GC9A01A_RED);
    tft.setTextSize(5);            // 设置字体大小为5
    tft.setCursor(randomX, randomY);
    tft.print("OK");

    // 延时0.3秒
    delay(300);
}

代码说明

1、随机位置显示:

使用random()函数生成“OK”的随机X和Y坐标。

坐标范围限制为屏幕宽度和高度减去“OK”字符的像素尺寸,避免字符超出屏幕边界。

2、红色字体:

通过tft.setTextColor(GC9A01A_RED)设置字体颜色为红色。

3、字号设置:

使用tft.setTextSize(5)将字体大小设置为5号,确保“OK”字符足够醒目。

4、屏幕刷新:

每次显示之前调用tft.fillScreen(GC9A01A_BLACK)清屏,避免上次的字符残留。

延时delay(300)设置屏幕刷新间隔为0.3秒。

5、效果描述

屏幕会随机位置刷新显示红色大号的“OK”字符。

“OK”字符每0.3秒出现在不同的位置,动态且富有趣味。

 

实验场景图  动态图

 

26 (1).jpg
26 (2).jpg
26 (3).jpg
00081.gif

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -