ESP32 Arduino开发之路(4)— 使用模拟输入引脚检测电压

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

生成海报
点赞 0

Willliam_william

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

ESP32学习记录<四>ADC和DAC

ESP32学习记录ADC和DAC 前言 ADC和DAC是单片机比较常用的,ESP32具有12位的ADC和8位的DAC。今天我就简单地记录它们的使用。 一、ADC ADC也就是我们通常所说的模数转换,模拟信号