|
[项目] 【花雕学编程】Arduino动手做(249)--GC9A01屏39个特色案例 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之十三:彩色随机字母平流屏 实验开源代码
|
代码解读 1、库文件导入
SPI.h:提供支持SPI(串行外设接口)通信的功能。这是用于Arduino与GC9A01A驱动芯片之间的数据传输的高速协议。 Adafruit_GFX.h:通用图形库,提供绘制基本图形和文本(如矩形、圆形、文字)的功能。 Adafruit_GC9A01A.h:GC9A01A显示屏驱动库,用于特定型号的屏幕初始化和控制功能。 2、定义与创建显示屏对象
TFT_DC:定义屏幕的数据/命令引脚,用于区分传输的是图像数据还是命令。 TFT_CS:定义屏幕的片选引脚,用于启动与GC9A01A设备的通信。 tft:通过Adafruit_GC9A01A库创建显示屏控制对象,用于后续操作屏幕。 3、初始化设置 (setup())
串口初始化: Serial.begin(9600) 设置串口通信的波特率为9600,便于调试。 Serial.println() 打印调试信息到串口监视器。 显示屏初始化: tft.begin() 进行硬件初始化,使屏幕准备好接受指令。 tft.setRotation(3) 设置显示屏的旋转方向。 屏幕清空: 使用tft.fillScreen(GC9A01A_BLACK)填充黑色背景,清空屏幕内容。 随机数种子: 使用randomSeed(analogRead(0))生成随机数种子,使随机数函数结果更加随机。 4、主循环逻辑 (loop()) 清屏 tft.fillScreen(GC9A01A_BLACK); 功能:在每次绘制字符之前,清空屏幕内容,确保字符不重叠。如果希望保持残影效果,可以注释掉此行。 绘制字符
多列字符绘制: 使用for循环对屏幕中的每列进行绘制。 通过positions[col]确定当前列字符的Y坐标,形成滚动效果。 随机颜色生成: 使用random(0x0000, 0xFFFF)生成随机颜色值。颜色采用RGB565格式,能够覆盖所有颜色范围。 字符绘制: tft.setCursor()设置字符绘制的起始位置。 使用tft.print("i")绘制字母“i”。 更新滚动位置
功能:更新每列的字符滚动位置。 逻辑: 每次滚动后,Y坐标增加一个字符高度(CHAR_HEIGHT)。 当滚动超出屏幕底部时,将位置重置为顶部(0),形成循环滚动效果。 延迟
功能:通过延迟控制滚动速度。 设置:延迟时间为100毫秒,滚动效果较为流畅。 5、总结 这段代码实现了一个多列随机颜色字母流的动态效果: 随机生成字母颜色,形成生动的动态视觉体验。 每列独立滚动,字符在屏幕顶部与底部循环显示。 通过清屏或残影设置,灵活调整视觉样式。 代码结构清晰,功能强大。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之十四:随机彩色字母流星雨 实验开源代码
|
代码功能解读 1、随机字母颜色生成
功能:通过random(0x0000, 0xFFFF)生成RGB565格式的随机颜色,每个字母都会呈现不同的颜色。 效果:字母颜色多样化,使屏幕更加生动。 2、全屏流动
功能:计算每列字符的当前坐标,逐列绘制字母。 效果:全屏覆盖流动的动态字母流效果。 3、滚动循环
功能:更新字符的位置,使其从顶部到底部循环滚动。 效果:形成无限循环滚动的动态效果。 4、滚动速度调整
功能:设置滚动延迟时间为100毫秒。 效果:调整滚动速度以实现平滑流动。 5、视觉效果描述 字母“i”会以随机颜色覆盖屏幕,形成彩色字母流。 每个字符的颜色动态变化,显示效果更加丰富多彩。 滚动流畅且视觉冲击力强,非常适合模拟动态特效。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之十五:旋转、随机色彩的十字字母动画 实验开源代码
|
代码功能说明 1、屏幕初始化: 使用tft.begin()和tft.setRotation()进行屏幕硬件初始化并设置默认旋转方向。 屏幕清屏操作由tft.fillScreen(GC9A01A_BLACK)实现。 2、随机颜色生成: 使用random(0x0000, 0xFFFF)生成RGB565格式的随机颜色,使每次动画展现不同的色彩。 3、文本绘制: 使用tft.setTextSize(TEXT_SIZE)将字体大小设置为3号。 tft.setCursor()动态调整文本绘制的位置,使文本保持居中。 4、四面旋转: 通过for循环设置屏幕的旋转角度,分别为0°、90°、180°和270°。 每个方向都显示随机颜色的“Hello world”文本,形成旋转效果。 5、动画节奏: 使用delay(DELAY_TIME)设置每次动画的间隔时间为300毫秒,使旋转效果舒适流畅。 6、效果描述 屏幕中心显示3号字母“Hello world”,随机生成字体颜色。 文本以屏幕为基准,在四个方向(0°、90°、180°、270°)进行旋转。 颜色动态变化,旋转效果流畅,适合展示炫酷的视觉动画。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之十六:实现文本在屏幕中心进行360度旋转的效果 实验开源代码
|
代码功能说明 1、旋转逻辑 360度循环: 使用for (int angle = 0; angle < 360; angle += 10)实现完整的360度旋转,每次增量为10度。 可以通过修改增量值调整旋转的平滑度(例如每次增加5度会更加平滑)。 弧度计算: 角度转换为弧度公式:radian = angle * π / 180。 弧度用于计算字母的X和Y坐标,保证字母沿圆轨迹运动。 2、字母位置计算
功能:根据给定的半径RADIUS和旋转角度计算字母的X和Y坐标。 效果:字母沿以屏幕中心为圆心、半径为RADIUS的圆形轨迹运动。 3、颜色动态变化
功能:每次旋转时随机生成一个颜色,使显示效果更加丰富多彩。 4、动画控制
功能:延迟1毫秒控制动画节奏,增加旋转平滑感。 5、效果描述 屏幕中心显示“Hello”,以半径为80像素绕圆轨迹旋转。 每次旋转10度,360度完整一圈,动态效果流畅。 字母颜色随机变化,增加视觉冲击力和趣味性。 |
【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 项目实验之十七:实现文本正反旋转与随机中心文字 实验开源代码
|
代码说明 1、中心文字“OK”保持屏幕中央: 中心文字计算仅依赖屏幕中心坐标SCREEN_CENTER_X和SCREEN_CENTER_Y:
2、“Hello”文字左偏移: 在旋转逻辑中对“Hello”文字的 X 坐标进行左移偏移:
3、旋转逻辑保持不变: “Hello”文字继续完成正转一圈、反转一圈的旋转,动画效果自然流畅。 4、随机字体大小: 中心文字“OK”的字体大小仍然随机,范围为1至4号。 5、效果描述 “Hello”文字沿圆形轨迹旋转一圈,并整体向左偏移25像素,颜色动态变化。 中心文字“OK”始终位于屏幕正中心,字体大小随机,颜色固定为白色。 动画顺畅,视觉效果更加生动。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed