回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(238)---ESP32 CYD液晶2.8寸开发板循环显示不同字号英文字符“HELLO” 简单

头像 驴友花雕 2024.11.07 17 0

0.jpg

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中进行开发。

 

00.jpg

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
 项目实验之十二:ESP32 CYD液晶2.8寸开发板循环显示不同字号英文字符“HELLO”

实验开源代码

 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十八:ESP32 CYD开发板WiFi蓝牙2.8寸240*320智能液晶显示屏带触摸屏TFT模块
  项目实验之十二:ESP32 CYD液晶2.8寸开发板循环显示不同字号英文字符“HELLO”
*/

#include <Arduino.h>
#include <TFT_eSPI.h>

TFT_eSPI tft = TFT_eSPI();

void setup(void) {
  // 初始化彩屏
  tft.init();
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE, TFT_BLACK);
  tft.setRotation(1); // 设置屏幕旋转90度
}

void loop() {
  // 定义不同的字体
  const GFXfont* fonts[] = {
    &FreeMono9pt7b, 
    &FreeSans12pt7b, 
    &FreeSerif18pt7b, 
    &FreeMono24pt7b
  };
  int numFonts = sizeof(fonts) / sizeof(fonts[0]);

  for (int i = 0; i < numFonts; i++) {
    tft.fillScreen(TFT_BLACK); // 清空屏幕
    tft.setFreeFont(fonts[i]);
    int16_t x, y;
    int16_t width = tft.textWidth("HELLO");
    int16_t height = tft.fontHeight();
    x = (tft.width() - width) / 2; // 计算文本居中的起始x坐标
    y = (tft.height() - height) / 2; // 计算文本居中的起始y坐标

    tft.setCursor(x, y);
    tft.println("HELLO");
    delay(1000); // 间隔1秒
  }
}

实验场景图  动态图

 

00019.gif

实验场景图  

 

02-19.jpg

代码解读:

1、初始化TFT屏幕:在setup()函数中,通过tft.init()初始化TFT屏幕,并使用tft.fillScreen(TFT_BLACK)清空屏幕并设置背景颜色为黑色。

 

2、设置文本颜色:通过tft.setTextColor(TFT_WHITE, TFT_BLACK)设置文本颜色为白色,背景颜色为黑色。

 

3、屏幕旋转:使用tft.setRotation(1)函数将屏幕旋转90度,调整显示方向。

 

4、加载内置GFX字体:使用内置的GFX字体,如FreeMono9pt7b、FreeSans12pt7b等,而不是Free_Fonts库。

 

5、循环显示不同字体:在loop()函数中,通过一个循环从预定义的GFX字体数组中逐一显示文本,每次显示后延迟1秒。

评论

user-avatar
icon 他的勋章
    展开更多