1 Star 0 Fork 18

bcsvr.com/easyio-lib-for-esp32

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

12_DAC

例程简介

介绍ESP32的DAC的使用,初始化DAC channel1,生成三角波,并用ADC测量端口电压值。

使用 FreeRTOSTask,创建两个任务:

  1. led_task ,控制LED闪烁

  2. dac_output_task ,初始化DAC_CHANNEL_1;并生成三角波,并用ADC1-CH6测量输出电压

使用 dac_output.c.h 驱动模块,来对ESP32的 DAC 进行配置。

ESP32的DAC较为简单,常用的也就2个API,不可更改输出GPIO,仅对原有ESP-IDF的API进行了简单的封装。

硬件连接

LED DAC
ESP32 GPIO33 GPIO25

DAC通道 与 Pin 对照表,可见 dac_output.h 文件。

【注意】:因开发板上ADC引脚已有 电池电压测量环境光敏测量,不便于对外共用,且因ESP32的GPIO资源紧张,导致没有可外接使用的ADC去测量DAC的输出,还请谅解。

建议额外用示波器测量DAC引脚的输出。因DAC引脚的电流微弱,额外串接LED的演示效果并不理想。

运行现象

  • DAC channel1(GPIO25)生成三角波,ADC-CH6与DAC直连测量其输出电压值。

  • 串口打印输出 DAC输出电压、ADC输入电压。

  • 使用示波器能观察到三角波波形

学习内容

  1. DAC的使用。

  2. easyIO最多支持2路DAC的输出,且不支持任意GPIO映射,引脚映射表在dac_output.c.h文件中。

关键函数

// DAC输出通道x初始化
void dac_channel_init(dac_channel_t channel);

// DAC通道x输出电压xxmV(供电电源为3.3V时)
void dac_output_0_3V3_voltage_int_mV(dac_channel_t channel, int voltage);

// DAC通道x输出电压xxV(供电电源为3.3V时)
void dac_output_0_3V3_voltage_float_V(dac_channel_t channel, float voltage);

注意事项

  • easyIO最多支持2路DAC的输出,且不支持任意GPIO映射,引脚映射表在dac_output.c.h文件中。

  • DAC端口的输出电流很微弱,一般只有几mA,且在电流较大时有较大误差,不能直接带大电流负载。如需对外做信号输出,建议在硬件电路中增加跟随器。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bcsvr/easyio-lib-for-esp32.git
git@gitee.com:bcsvr/easyio-lib-for-esp32.git
bcsvr
easyio-lib-for-esp32
easyio-lib-for-esp32
master

搜索帮助