模板: ESP32-Touch-LCD-3.5-Aruidno-Demo
来自Waveshare Wiki
Arduino开发
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
环境搭建
下载和安装 Arduino IDE
- 点击访问Arduino官网,选择对应的系统和系统位数下载。

- 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考
安装 ESP32 开发板
- ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”开发板的软件包
- 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装”
- 安装教程,详见:Arduino 板管理教程
| 板名称 | 板安装要求 | 版本号要求 |
|---|---|---|
| esp32 by Espressif Systems | “离线”安装/“在线”安装 | ≥3.2.0 |
安装库
- 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装。若库安装要求离线安装,则必须使用提供的库文件
对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。 - ESP32-Touch-LCD-3.5 库文件存放于示例程序中,点击此处跳转:ESP32-Touch-LCD-3.5示例程序
- 库安装教程,详见:Arduino 库管理教程
| 库名称 | 说明 | 版本 | 库安装要求 |
|---|---|---|---|
| lvgl | LVGL图形化库 | v8.4.0 或 v9.3.0 | “在线”安装 |
| GFX_Library_for_Arduino | GFX图形化库 | v1.6.0 | “在线”安装 |
| XPowersLib | 电源管理库 | v0.2.9 | “在线”安装 |
| SensorLib | 传感器驱动库 | v0.3.1 | “在线”安装 |
| ESP32-audioI2S-master | 音频处理库 | v3.4.0 | “在线”安装 |
| TCA9554 | 扩展IO库 | v0.1.2 | “在线”安装 |
| OneButton | 按键库 | v2.6.1 | “在线”安装 |
运行第一个 Arduino 程序
如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!
示例程序
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_i2s_audio | 读取SD卡的音频文件,并播放 | ESP32-audioI2S-master |
| 02_axp2101_example | 打印电源管理芯片的数据 | XPowersLib |
| 03_button_example | 按键测试 | OneButton |
| 04_es8311_example | 录音一段时间,并播放 | es8311 |
| 05_pcf85063_example | 打印RTC获取的数据 | SensorLib |
| 06_tca9554_example | 扩展io测试 | TCA9554 |
| 07_sd_card_test | 测试SD卡的读写 | --- |
| 08_gfx_helloworld | 屏幕上显示HelloWorld | GFX_Library_for_Arduino、TCA9554 |
| 09_lvgl_arduino_v8 | lvgl v8.4.0 示例程序 | GFX_Library_for_Arduino、TCA9554、lvgl、SensorLib |
| 10_lvgl_arduino_v9 | lvgl v9.3.0 示例程序 | GFX_Library_for_Arduino、TCA9554、lvgl、SensorLib |
| 11_bt_music_receiver_arduino_i2s | 蓝牙音乐播放示例 | ESP32-A2DP、GFX_Library_for_Arduino、TCA9554、OneButton |
- ESP32-Touch-LCD-3.5 Arduino 工程参数设置
01_i2s_audio
【程序说明】
本示例演示ESP32-Touch-LCD-3.5读取SD卡的音频文件并使用喇叭播放,支持MP3、AAC、WAV等格式。
【准备工作】
- 将SD卡插入电脑
- 在SD卡根目录新建文件夹 music
- 把本工程下data文件夹里面的1.mp3拷贝到SD卡的music文件夹里
- 将SD卡插入 ESP32-Touch-LCD-3.5
【代码分析】
- 初始化
es8311_codec_init();
SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI, SD_CS);
if (!SD.begin(SD_CS)) {
esp_rom_printf("Card Mount Failed\n");
while (1) {
};
}
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(21); // 0...21
- 设置播放的音频文件
audio.connecttoFS(SD, "music/1.mp3");
【运行效果】
- 播放音频文件,屏幕无现象
02_axp2101_example
【程序说明】
03_button_example
【程序说明】
本示例演示如何使用 OneButton 库读取 BOOT、PWM、PLUS按键的单击、双击和长按等状态,并通过串口打印。
【代码分析】
- 绑定回调函数
button1.attachClick(click1); button1.attachDoubleClick(doubleclick1); button1.attachLongPressStart(longPressStart1); button1.attachLongPressStop(longPressStop1); button1.attachDuringLongPress(longPress1);
04_es8311_example
【程序说明】
本示例演示使用ESP32-Touch-LCD-3.5驱动ES8311音频编解码器,实现音频录制及回放功能。
【代码分析】
- 初始化
Wire.begin(I2C_SDA, I2C_SCL); es8311_codec_init(); setupI2S();
- 音频录制5s,并播放录制的内容
wav_buffer = i2s.recordWAV(5, &wav_size);
delay(1000);
Serial.println("I2S playWAV");
i2s.playWAV(wav_buffer, wav_size);
【运行效果】
- 屏幕无现象
- 按下ESP32-Touch-LCD-3.5的RST按键进入音频录制状态,5s后播放录制的内容。
05_pcf85063_example
【程序说明】
本实例演示ESP32-Touch-LCD-3.5驱动PCF85063,时间和日期的设置与获取。
【代码分析】
- 初始化
// Try to initialize the RTC module using I2C with specified SDA and SCL pins
if (!rtc.begin(Wire, SENSOR_SDA, SENSOR_SCL)) {
Serial.println("Failed to find PCF85063 - check your wiring!");
// Enter an infinite loop to halt the program
while (1) {
delay(1000);
}
}
- 设置时间、日期
rtc.setDateTime(year, month, day, hour, minute, second);
- 获取时间、日期
RTC_DateTime datetime = rtc.getDateTime();
06_tca9554_example
【程序说明】
07_sd_card_test
【程序说明】
08_gfx_helloworld
【程序说明】
本示例演示 ESP32-Touch-LCD-3.5 使用GFX_Library_for_Arduino库驱动屏幕并在屏幕上显示HelloWorld
【代码分析】
- 配置屏幕接口以及屏幕的分辨率等
Arduino_DataBus *bus = new Arduino_ESP32SPI(27 /* DC */, 5 /* CS */, 18 /* SCK */, 23 /* MOSI */, 19 /* MISO */); Arduino_GFX *gfx = new Arduino_ST7796(bus, GFX_NOT_DEFINED /* RST */, 0 /* rotation */, true /* IPS */);
09_lvgl_example_v8
【程序说明】
10_lvgl_example_v9
【程序说明】







