(三)Arduino系列:NodeMCU ADC使用方法

介绍

模数转换器(ADC)用于将模拟信号转换为数字形式。ESP8266内置10位ADC,只有一个ADC通道,即它只有一个ADC输入引脚,用于从外部器件读取模拟电压。

NodeMCU上的ESP8266 ADC引脚

(三)Arduino系列:NodeMCU ADC使用方法

NodeMCU ADC引脚

ESP8266上的ADC通道与电池电压复用。因此,我们可以将其设置为测量板载系统电压或外部电压。读取外部电压时,ADC引脚的输入电压范围为0-1.0V。

固件的“esp_init_data_default.bin”(0-127字节)的第107个字节中提供了ADC模式的设置,即是否正在测量系统电压或外部电压。

esp_init_data_default.bin(0 – 127字节)的第107个字节是“vdd33_const”。它必须设置为0xFF,即255才能读取系统电压,即ESP8266的VDD引脚上的电压。

要读取ADC引脚上的外部电压,必须将其设置为ESP8266的VDD引脚上的电源电压。ESP8266的工作电源电压范围为1.8V至3.6V,“vdd33_const”的单位为0.1V,因此“vdd33_const”的取值范围为18至36。

请注意,下图所示的NodeMCU Dev Kit具有板载寄存器分配器网络,可从3.3V向ESP8266的ADC引脚提供1.0V电压。因此,对于以下NodeMCU Dev Kit,我们可以将0-3.3V范围用于ADC输入电压。由于ADC具有10位分辨率,因此在Dev Kit上为ADC输入电压0-3.3V提供0-1023值范围。

 

NodeMCU ADC功能

analogRead(A0)

该功能用于读取模块ADC引脚上的外部电压。

ESP.getVcc()

该功能用于读取NodeMCU模块的VCC电压。ADC引脚必须保持未连接状态。

请注意,在读取VCC电源电压之前,应将ADC模式更改为读取系统电压。

要改变ADC模式ADC_MODE(mode),请在#include行之后使用。

模式是ADC_TOUT(对于外部电压),ADC_VCC(对于系统电压)。默认情况下,它读取外部电压。

让我们编写一个Arduino程序,用于读取NodeMCU的ADC引脚上的模拟电压。这里我们使用电位器在Dev Kit的ADC引脚上提供0-3.3V的可变电压。连接如下图所示:

(三)Arduino系列:NodeMCU ADC使用方法

Arduino程序用于读取外部电压

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("ADC Value: ");
  Serial.println(analogRead(A0));
  delay(300);
}

输出结果

下图显示了Arduino IDE串行监视器的输出

(三)Arduino系列:NodeMCU ADC使用方法

 

Arduino 程序用于读取系统电压

隐藏内容,您需要满足以下条件方可查看
End

输出窗口

下图显示了Arduino IDE串行监视器的输出

(三)Arduino系列:NodeMCU ADC使用方法

在这里,我们发现测量值与实际值略有不同。对于外部电压,我们得到5-1007 ADC值变化,0-3.3V应用于Dev Kit上的ADC引脚。对于系统电压(模块上的电压),我们可以达到2790 mV,即大约2.8V。这表明差异大约为0.5V,即3.3V。

关于外部电压测量的问题在ESP8266 github页面的#2672#3168给出。有关系统电压读数的问题,请参见ESP8266 github页面上的#721

根据ESP8266的数据表,TOUT(ESP8266的ADC引脚)引脚必须悬空(浮动),同时通过ADC测量电源电压。但是在NodeMCU开发套件/模块上,为了支持外部电压范围(0-3.3V),它连接到电阻分压器网络(100Kohm和220Kohm),如下图所示。

(三)Arduino系列:NodeMCU ADC使用方法

现在,如果我们移除电阻分压器n / w,并使ADC引脚(TOUT)悬空,那么我们可以获得更好的结果精度,如下面的系统电压读数的输出窗口图像所示,接近3.3V。

(三)Arduino系列:NodeMCU ADC使用方法

本教程完整程序下载:

隐藏内容,您需要满足以下条件方可查看
End

人已赞赏
动态

(二)Arduino系列:NodeMCU GPIO使用

2019-4-28 0:17:36

动态

(四)Arduino系列:NodeMCU PWM占空比学习

2019-5-2 13:08:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索