90浏览
查看: 90|回复: 3

[项目] 【花雕学编程】Arduino动手做(238)--ESP32 CYD展示字体效果

[复制链接]
【花雕学编程】Arduino动手做(238)--ESP32 CYD展示字体效果图2

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展示字体效果图1

驴友花雕  中级技神
 楼主|

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

【花雕学编程】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 <SPI.h>
  7. #include <TFT_eSPI.h>
  8. TFT_eSPI tft = TFT_eSPI();
  9. void setup(void) {
  10.   // 初始化彩屏
  11.   tft.init();
  12.   tft.fillScreen(TFT_BLACK);
  13.   
  14.   // 设置起始坐标(20, 10),4 号字体
  15.   tft.setCursor(20, 10, 4);
  16.   // 设置文本颜色为白色,黑色文本背景
  17.   tft.setTextColor(TFT_WHITE, TFT_BLACK);
  18.   // 设置显示的文字,注意这里有个换行符 \n 产生的效果
  19.   tft.println("White Text\n");
  20.   tft.println("Next White Text");
  21.   
  22.   // 设置起始坐标(10, 100),2 号字体,文本颜色红色,白色文本背景
  23.   tft.setCursor(10, 100);
  24.   tft.setTextFont(2);
  25.   tft.setTextColor(TFT_RED, TFT_WHITE);
  26.   tft.println("Red Text, White Background");
  27.   
  28.   // 设置起始坐标(10, 140),4 号字体,文本颜色绿色,无背景设置
  29.   tft.setCursor(10, 140, 4);
  30.   tft.setTextColor(TFT_GREEN);
  31.   tft.println("Green text");
  32.   
  33.   // 设置起始坐标(70, 180),字体不变,文本颜色蓝色,黄色文本背景
  34.   tft.setCursor(70, 180);
  35.   tft.setTextColor(TFT_BLUE, TFT_YELLOW);
  36.   tft.println("Blue text");
  37.   // 设置起始坐标(50, 220),4 号字体,文本颜色黄色,无背景设置
  38.   tft.setCursor(50, 220);
  39.   tft.setTextFont(4);
  40.   tft.setTextColor(TFT_YELLOW);
  41.   tft.println("2024-11-05");
  42.   // 设置起始坐标(50, 260),7 号字体,文本颜色粉色,无背景设置
  43.   tft.setCursor(50, 260);
  44.   tft.setTextFont(7);
  45.   tft.setTextColor(TFT_PINK);
  46.   tft.println("18:58");
  47. }
  48. void loop() {
  49. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 19:02:50

【花雕学编程】Arduino动手做(238)--ESP32 CYD展示字体效果

代码解读:

1、初始化彩屏和设置背景:

  1. tft.init();
  2. tft.fillScreen(TFT_BLACK);
复制代码

使用TFT_eSPI库初始化TFT屏幕,并使用fillScreen()函数将整个屏幕填充为黑色背景。这是设置屏幕初始状态的重要步骤。

2、设置文本的起始坐标、字体和颜色:

  1. tft.setCursor(20, 10, 4);
  2. tft.setTextColor(TFT_WHITE, TFT_BLACK);
  3. tft.println("White Text\n");
  4. tft.println("Next White Text");
复制代码

使用setCursor()函数设置文本的起始坐标和字体大小。使用setTextColor()函数设置文本颜色和文本背景颜色。通过println()函数显示文本内容。注意\n用于换行。

3、不同位置和颜色的文本显示:

  1. tft.setCursor(10, 100);
  2. tft.setTextFont(2);
  3. tft.setTextColor(TFT_RED, TFT_WHITE);
  4. tft.println("Red Text, White Background");
  5. tft.setCursor(10, 140, 4);
  6. tft.setTextColor(TFT_GREEN);
  7. tft.println("Green text");
  8. tft.setCursor(70, 180);
  9. tft.setTextColor(TFT_BLUE, TFT_YELLOW);
  10. tft.println("Blue text");
复制代码

代码中多次使用setCursor()、setTextFont()和setTextColor()函数,设置不同位置、字体和颜色的文本显示,实现多样化的文本效果。

4、设置时间和日期显示:

  1. tft.setCursor(50, 220);
  2. tft.setTextFont(4);
  3. tft.setTextColor(TFT_YELLOW);
  4. tft.println("2024-11-05");
  5. tft.setCursor(50, 260);
  6. tft.setTextFont(7);
  7. tft.setTextColor(TFT_PINK);
  8. tft.println("18:58");
复制代码

代码中显示了日期和时间,分别设置了不同的起始坐标、字体大小和颜色,确保信息清晰易读。

5、主循环:

  1. void loop() {
  2. }
复制代码

由于所有的绘制操作都在setup()函数中完成,loop()函数为空。这意味着这些显示内容只在初始化时设置一次,不会在主循环中重复刷新。

通过这些要点的解读,我们可以看到该代码通过初始化TFT屏幕、设置文本的坐标、字体和颜色,实现了多样化的文本显示效果。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-11-5 19:04:25

【花雕学编程】Arduino动手做(238)--ESP32 CYD展示字体效果

实验场景图

【花雕学编程】Arduino动手做(238)--ESP32 CYD展示字体效果图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail