同步操作将从 马志良/easyio-lib-for-esp32 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
介绍ESP32的DAC
的使用,初始化DAC channel1
,生成三角波
,并用ADC测量端口电压值。
使用 FreeRTOS
的 Task
,创建两个任务:
led_task ,控制LED闪烁
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输入电压。
使用示波器能观察到三角波波形
。
DAC的使用。
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,且在电流较大时有较大误差,不能直接带大电流负载。如需对外做信号输出,建议在硬件电路中增加跟随器。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。