86浏览
查看: 86|回复: 5

[项目] 【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

[复制链接]
【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图1

ESP32-CYD(2432S028)液晶2.8寸屏开发板使用ESP32-WROOM-32模块作为主控,主控是一款双核MCU,集成了Wi-Fi和蓝牙功能,主频可达240MHz,具有520KB的SRAM、448KB的ROM,闪存容量为4MB+4MB,显示分辨率为240x320,采用电阻式触控式屏幕。该模块包括LCD显示器、背光控制电路、触控式屏幕控制电路、扬声器驱动电路、光敏电路和RGB LED控制电路。支持TF卡界面、序列界面、温湿度感测器界面(DHT11界面)和保留的IO口界面,该模块支持在Arduino IDE、ESP IDE、MicroPython和Mixly中进行开发。

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图2

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 18:16:23

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
  项目实验之八:ESP32 CYD液晶2.8寸开发板随机显示红蓝绿方形、三角形和圆形

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
  4.   项目实验之八:ESP32 CYD液晶2.8寸开发板随机显示红蓝绿方形、三角形和圆形
  5. */
  6. #include <TFT_eSPI.h>  // 引入 TFT_eSPI 库
  7. TFT_eSPI tft = TFT_eSPI();  // 创建 TFT_eSPI 对象
  8. void setup() {
  9.   tft.init();  // 初始化 TFT 屏幕
  10.   tft.setRotation(1);  // 设置屏幕旋转方向,顺时针旋转 90 度
  11.   randomSeed(analogRead(0));  // 设置随机数种子
  12. }
  13. void loop() {
  14.   drawShapes(TFT_RED);
  15.   delay(1000);  // 延迟 1 秒
  16.   drawShapes(TFT_GREEN);
  17.   delay(1000);  // 延迟 1 秒
  18.   drawShapes(TFT_BLUE);
  19.   delay(1000);  // 延迟 1 秒
  20. }
  21. void drawShapes(uint16_t color) {
  22.   tft.fillScreen(TFT_BLACK);  // 清空屏幕,填充黑色
  23.   // 绘制随机大小和位置的方形
  24.   int squareSize = random(20, 100);
  25.   int xSquare = random(0, tft.width() - squareSize);
  26.   int ySquare = random(0, tft.height() - squareSize);
  27.   tft.fillRect(xSquare, ySquare, squareSize, squareSize, color);
  28.   // 绘制随机大小和位置的三角形
  29.   int triangleSize = random(20, 100);
  30.   int x0 = random(0, tft.width());
  31.   int y0 = random(0, tft.height());
  32.   int x1 = x0 + random(-triangleSize, triangleSize);
  33.   int y1 = y0 + random(-triangleSize, triangleSize);
  34.   int x2 = x0 + random(-triangleSize, triangleSize);
  35.   int y2 = y0 + random(-triangleSize, triangleSize);
  36.   tft.fillTriangle(x0, y0, x1, y1, x2, y2, color);
  37.   // 绘制随机大小和位置的圆形
  38.   int circleRadius = random(10, 50);
  39.   int xCircle = random(circleRadius, tft.width() - circleRadius);
  40.   int yCircle = random(circleRadius, tft.height() - circleRadius);
  41.   tft.fillCircle(xCircle, yCircle, circleRadius, color);
  42. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 18:25:01

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

代码解读:
1、初始化屏幕和设置方向:

使用TFT_eSPI库初始化TFT屏幕,并通过setRotation()函数设置屏幕的显示方向。确保显示的内容按照预期的方向呈现。

2、生成随机位置和大小:

在每次绘制形状时,使用random()函数生成随机的位置和大小。这可以确保每次显示的形状都是不同的,使屏幕内容更加丰富多彩和动态。

3、绘制形状:

使用fillRect()、fillTriangle()和fillCircle()函数分别绘制随机位置和大小的方形、三角形和圆形。通过传递随机生成的参数,实现形状的随机显示。

4、颜色循环变换:

通过定义颜色数组或直接在循环中切换颜色,使绘制的形状颜色不断变换。可以使用TFT_RED、TFT_GREEN、TFT_BLUE等预定义颜色,或者自定义颜色值。

5、延时和刷新屏幕:

使用delay()函数在每次绘制后暂停一段时间,使用户能够看到每个形状的显示效果。通过fillScreen()函数清空屏幕,确保每次绘制的新形状不会与之前的形状重叠。

通过这些步骤,你可以实现一个不断在随机位置和大小显示多彩方形、三角形和圆形的动态屏幕展示效果。


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 18:27:30

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

实验场景图  动态图

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 18:28:44

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

实验场景图

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 18:30:17

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图1

【花雕学编程】Arduino动手做(238)--ESP32 CYD随机显示图形图2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail