ESP32 Arduino开发之路(4)— 使用模拟输入引脚检测电压
一、前言
ESP32 内置了 2 个 12 位的逐次逼近数字模拟转换器,由 5 个专用转换器控制器管理,可测量来自 18 个管脚的 模拟信号。
二、编写程序
编写程序如下所示,测量IO35引脚上的电压
/*
* ESP32使用adc输入引脚获取模拟电压值
* 通过模拟电压值设置led引脚的亮度
*/
/* 设置led输出引脚号 */
uint8_t led_pin = 2;
uint8_t led_ch = 1;
void setup()
{
Serial.begin(115200);
delay(10);
/* 1. 使用ledc通道1,设置频率为1kHz,分辨率为12位 */
double f = ledcSetup(led_ch, 1000, 12);
Serial.print("F=");Serial.println(f); /* 打印实际设置的频率*/
/* 2. 将LED引脚绑定到ledc通道1 */
ledcAttachPin(led_pin, led_ch);
}
uint32_t adc_val = 0;
double voltage = 0;
void loop()
{
adc_val = analogRead(35);
voltage = (((double)adc_val)/4095)*3.3;
Serial.printf("adc_val:%d, voltage:%lfV.\r\n", adc_val, voltage);
ledcWrite(led_ch, adc_val);
delay(100);
}
三、功能实现
编译上传到开发板,可以看到可以成功测量到电压
四、附录
版权声明:本文为CSDN博主「Willliam_william」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38113006/article/details/120057407
暂无评论