【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程) 
  实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动 
  项目之九十七:GC9A01园屏之通过正弦波模拟水波并动态调整颜色 
 
实验开源代码 
 
			
			
			- /*
 -   【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
 -   实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动
 -   项目之九十七:GC9A01园屏之通过正弦波模拟水波并动态调整颜色
 - */
 - 
 - //       GC9A01---------- 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"
 - #include "Adafruit_GFX.h"
 - #include "Adafruit_GC9A01A.h"
 - 
 - #define TFT_CS 4
 - #define TFT_DC 2
 - #define TFT_RST -1
 - 
 - Adafruit_GC9A01A tft = Adafruit_GC9A01A(TFT_CS, TFT_DC, TFT_RST);
 - 
 - #define SCREEN_WIDTH 240
 - #define SCREEN_HEIGHT 240
 - #define WAVE_HEIGHT 100  // **波动幅度**
 - #define SPEED 0.06  // **流体波动速度**
 - float phase = 2;  // **控制波动变化**
 - 
 - void setup() {
 -     Serial.begin(115200);
 -     tft.begin();
 -     tft.setRotation(2);
 - }
 - 
 - void loop() {
 -     tft.fillScreen(tft.color565(0, 0, 0));
 - 
 -     for (int y = 0; y < SCREEN_HEIGHT; y++) {
 -         float wave = WAVE_HEIGHT * sin(y * SPEED + phase);
 -         int color = tft.color565(0, 100 + wave * 5, 255 - wave * 5);
 -         for (int x = 0; x < SCREEN_WIDTH; x++) {
 -             tft.drawPixel(x, y + wave, color);
 -         }
 -     }
 - 
 -     // **更新波动相位**
 -     phase += 0.2;
 -     if (phase >= 2 * M_PI) {
 -         phase = 0;
 -     }
 - 
 -     delay(10);
 - }
 
  复制代码
  
 
 |