模板: ESP32-C6-LCD-1.69-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-C6-LCD-1.69 库文件存放于示例程序中,点击此处跳转:ESP32-C6-LCD-1.69示例程序
- 库安装教程,详见:Arduino 库管理教程
| 库名称 | 说明 | 版本 | 库安装要求 |
|---|---|---|---|
| lvgl | LVGL图形化库 | v8.4.0 或 v9.2.2 | “在线”安装 |
| GFX_Library_for_Arduino | GFX图形化库 | v1.6.0 | “在线”安装 |
| U8g2 | 图形显示库 | v2.35.30 | “在线”安装 |
| SensorLib | 传感器库 | v0.3.1 | “在线”安装 |
| OneButton | 按键库 | v2.6.1 | “在线”安装 |
运行第一个 Arduino 程序
如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!
示例程序
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_audio_out | 通过 I2S 接口播放 PCM 数据音频 | --- |
| 02_button_example | 屏幕上显示电池电压 | OneButton |
| 03_battery_example | BOOT按键单击、双击、长按等 | OneButton |
| 04_es8311_example | 扬声器实时播放麦克风采集的声音 | --- |
| 05_gfx_helloworld | 屏幕上显示HelloWorld | GFX_Library_for_Arduino |
| 06_gfx_pdq_graphicstest | 进行图形测试,并显示分数 | GFX_Library_for_Arduino |
| 07_gfx_clock | 屏幕上显示一个模拟时钟表盘 | GFX_Library_for_Arduino |
| 08_gfx_u8g2_font | 通过加载字库,实现各国文字显示 | GFX_Library_for_Arduino 、U8g2 |
| 09_gfx_image | 屏幕显示图片 | GFX_Library_for_Arduino |
| 10_esp_wifi_analyzer | 屏幕显示WiFi频段信号强度 | GFX_Library_for_Arduino |
| 11_pcf85063_example | 屏幕显示RTC时间 | GFX_Library_for_Arduino、SensorLib |
| 12_qmi8658_example | 屏幕显示IMU数据 | GFX_Library_for_Arduino、SensorLib |
| 13_lvgl_arduino_v8 | lvgl v8版本示例程序 | lvgl(v8.4.0)、GFX_Library_for_Arduino、SensorLib |
| 14_lvgl_arduino_v9 | lvgl v9版本示例程序 | lvgl(v9.3.0)、GFX_Library_for_Arduino、SensorLib |
- ESP32-C6-LCD-1.69 Arduino 工程参数设置
01_audio_out
【程序说明】
本示例演示ESP32-C6-LCD-1.69播放PCM音频数据。
【代码分析】
- 设置播放的音频数据
i2s.write((uint8_t *)audio_data, AUDIO_SAMPLES * 2);
【运行效果】
- 播放音频文件,屏幕无现象
02_button_example
【程序说明】
03_battery_example
04_es8311_example
【程序说明】
本示例演示使用ESP32-C6-LCD-1.69驱动ES8311音频编解码器,实现扬声器实时播放麦克风采集的声音。
【代码分析】
- 收到开始信号后循环读取音频数据并播放,收到停止信号后结束播放并等待下一次启动。
void es8311_test_task(void *arg)
{
const int limit_size_max = 1600;
uint8_t data[limit_size_max];
while (1)
{
if (xSemaphoreTake(es8311_recording_BinarySemaphore, portMAX_DELAY) == pdTRUE)
{
while (1)
{
i2s.readBytes((char *)data, limit_size_max);
i2s.write(data, limit_size_max);
if (xSemaphoreTake(es8311_stop_BinarySemaphore, 0) == pdTRUE)
break;
}
}
}
}
【运行效果】
- 屏幕无现象
- 长按BOOT按键不松手,扬声器实时播放麦克风采集的声音。
05_gfx_helloworld
【程序说明】
本示例演示 ESP32-C6-LCD-1.69 使用GFX_Library_for_Arduino库驱动屏幕并在屏幕上显示HelloWorld
【代码分析】
- 配置屏幕接口以及屏幕的分辨率等
Arduino_DataBus *bus = new Arduino_HWSPI(LCD_DC, LCD_CS, LCD_SCK, LCD_DIN); Arduino_GFX *gfx = new Arduino_ST7789( bus, LCD_RST, 0 /* rotation */, true /* IPS */, 240 /* width */, 280 /* height */, 0 /* col offset 1 */, 20 /* row offset 1 */, 0 /* col offset 2 */, 20 /* row offset 2 */);
06_gfx_pdq_graphicstest
07_gfx_clock
08_gfx_u8g2_font
09_gfx_image
【程序说明】
本示例演示了 ESP32-C6-LCD-1.69 使用GFX_Library_for_Arduino库在屏幕上显示图片。
【硬件连接】
- 将板子接入电脑
【准备工作】
- 打开汉字取模软件
- 导入图片 images/image_1.jpg 并转换,会生成 image_1.h 文件
- 将 image_1.h 拷贝到本工程
- 设置要显示的图片
gfx->draw16bitBeRGBBitmap(0, 0, (uint16_t *)gImage_img, 240, 280);
10_esp_wifi_analyzer
11_pcf85063_example
12_qmi8658_example







