125| 6
|
[项目] 【花雕学编程】Arduino动手做(249)---GC9A01旋转的彩虹球 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目之七十一:GC9A01园屏之360度旋转的彩虹球 实验开源代码
|
代码解读 1. 头文件包含 • #include "SPI.h":引入 SPI 库,该库用于实现与 TFT 屏幕的串行通信。 • #include "Adafruit_GFX.h":引入 Adafruit GFX 图形库,提供了一系列基本的图形绘制函数,如绘制点、线、矩形、圆形等。 • #include "Adafruit_GC9A01A.h":引入 GC9A01A 屏幕驱动库,用于控制特定型号的 TFT 屏幕。 2. 引脚定义和屏幕对象创建 • #define TFT_CS 4、#define TFT_DC 2、#define TFT_RST -1:定义了 TFT 屏幕的片选引脚、数据 / 命令选择引脚和复位引脚。 • Adafruit_GC9A01A tft = Adafruit_GC9A01A(TFT_CS, TFT_DC, TFT_RST);:创建了一个 Adafruit_GC9A01A 类的对象 tft,用于操作 TFT 屏幕。 3. 常量和变量定义 • SCREEN_WIDTH 和 SCREEN_HEIGHT:定义了屏幕的宽度和高度。 • CENTER_X 和 CENTER_Y:计算出屏幕的中心点坐标。 • RADIUS:定义了彩虹背景的半径。 • ROTATION_SPEED:定义了彩虹的旋转速度。 • RAINBOW_SEGMENT_ANGLE:定义了彩虹每段的角度。 • rotationAngle:记录当前彩虹的旋转角度。 • rainbowColors:定义了一个包含七种颜色的数组,用于表示彩虹的七种颜色。 4. drawRainbow 函数 该函数用于绘制彩虹,通过循环绘制七个三角形来组成彩虹。每个三角形的顶点分别为屏幕中心点、半径为 RADIUS 且角度为 angleStart 的点和角度为 angleEnd 的点。 5. setup 函数 在程序开始时执行一次,主要完成串口通信初始化、TFT 屏幕初始化、设置屏幕旋转方向和用黑色填充屏幕的操作。 6. loop 函数 程序会不断循环执行该函数,实现彩虹的旋转效果。具体步骤如下: • 用黑色填充屏幕,清除上一帧的内容。 • 调用 drawRainbow 函数绘制彩虹。 • 更新旋转角度,并确保旋转角度在 0 - 360 度范围内。 • 延迟 500 毫秒,控制旋转速度。 通过这种方式,代码实现了一个在 TFT 屏幕上旋转的彩虹效果。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed