首页

ESP8266 ADC教程|读取Nodemcu模拟输入

在本教程中,我们将学习如何使用ESP8266 SoC的ADC外设并读取一些模拟值。为了演示本ESP8266 ADC教程,我将使用ESP8266 NodeMCU板,它是基于ESP-12E模块。ESP-01没有ADC引脚。

ESP8266-ADC-Tutorial-LED-PWM

介绍

模拟数字转换器或者简单地说ADC是大多数现代微控制器和soc的一个令人惊叹的特性。模拟到数字转换器,顾名思义,将连续的模拟信号转换成离散的数字值。

这真的很重要,因为所有微控制器都是数字设备,并且仅在逻辑低和逻辑高值上工作。ADC允许微控制器和SOC与模拟设备(如传感器)接口,并在它们周围构建系统。

大多数现代微控制器已经拥有一个内置硅的ADC块,因此您不需要使用外部(和专用)ADC IC。

ADC在ESP8266 SOC中

ESP8266EX SoC是所有ESP8266板的主处理器,具有单通道ADC。ESP8266中的ADC具有10位分辨率,是逐次逼近寄存器(SAR)类型。10位分辨率意味着,输出值将在0到1023的范围内。

如果您指的是ESP8266EX SOC的数据表,则ADC引脚是引脚6,也称为TOUT引脚。ADC可用于基本上两种类型的测量。他们是:

  • 测量引脚3和引脚4处的电源电压。
  • 测量引脚6即TOUT引脚的输入电压。

这些测量都不能同时实现。对于电源电压测量,必须留下TOT引脚。但是,在测量TOUT引脚处的外部电压时,输入电压范围应在0V和1V之间。

如果从SDK构建固件,请参阅数据表和其他相关文档,因为有关ADC及其配置的更多信息。

ADC在ESP-01中

如果您有VanillaESP8266板I.E.ESP-01,那么您还是运气,因为它没有船上的ADC引脚。如果您绝望,那么您可以使用PIN 6作为ADC引脚,但请记住它只能接受0V至1V范围内的电压。

图像2

ADC在ESP8266 Nodemcu

基本上基于ESP-12E Wi-Fi模块的NodeMCU板具有ADC称为A0的PIN。

此外,NodeMCU还考虑了从原始的0V到1V到更方便用户使用的0V到3.3V的输入电压范围限制。

ESP8266-Nodemcu-ADC-PIN

如果您看看Nodemcu的示意图,上述引线图像中的ADC0引脚用作由220kΩ和100kΩ电阻形成的分压器的输入,其输出为ESP8266EX SOC的TOUT引脚输出。

ESP8266-ADC-valum-patmider

重要的提示:ESP8266 SoC中ADC的电压范围为0V ~ 1V。如果你想使用0V到3.3V的ADC,那么你必须使用上面所示的分压器电路。ESP8266EX SoC的引脚6可以焊丝到ESP8266EX SoC的引脚6上,与分压器一起使用。

警告:不要直接向ESP8266EX SoC的ADC引脚(TOUT - pin6)提供超过1V的电压。

使用Nodemcu的ESP8266 ADC演示

如果您有一个ESP8266 Nodemcu板,那么您可以直接使用ADC引脚(A0)进行读取模拟电压,范围为0V至3.3V。让我们现在构建一个小电路来演示ESP8266的ADC功能。

选择10kΩ电位器作为模拟输入装置,其端部端子连接到3.3V和GND,刮水器端子连接到Nodemcu的A0引脚。模拟电压转换为数字值并显示在串行监视器上。

ESP8266-NodeMCU-POT

所需的组件

  • ESP8266 Nodemcu Board.
  • 10kΩ电位器
  • 面包板
  • 连接电线

电路图

以下图像显示了ESP8266 Nodemcu ADC演示的电路图。

Nodemcu-ADC-串行电路

代码

在继续编写代码之前,我强烈建议您仔细阅读开始使用NodeMCU教程,因为它具有设置与Nodemcu板一起使用的Arduino IDE的所有必要信息。

输出

以下图像显示串行监视器上显示的ADC值。

Serial-Monitor-ADC-VACES-Nodemcu-ADC

ESP8266 PWM与ADC

作为ESP8266 ADC教程和ESP8266 PWM教程的扩展,我们现在将使用ESP8266EX SOC的ADC和PWM功能组合,并使用电位器控制LED的亮度。

NodeMCU-ADC-POT-Adjust

LED连接NodeMCU的GPIO4 (D2)引脚,10KΩ电位器连接NodeMCU的ADC0引脚。当我转动10KΩ POT的旋钮时,LED的亮度从最大(满强度)到最小(LED关闭)不等。

我使用ESP-01模块对ESP8266 PWM进行了专用教程。查看更多信息。

重要的提示:ESP8266的ADC分辨率为10位。这意味着ADC的输出将在0到1023的范围内。现在,ESP8266的PWM分辨率也是10位的,即可以接受0(0%占空比)到1023(100%占空比)之间的占空比值。

所需的组件

  • ESP8266 Nodemcu.
  • 5mm LED
  • 330Ω电阻
  • 10kΩ电位器
  • 面包板
  • 连接电线

电路图

下图显示了使用POT模拟输入和ESP8266 NodeMCU的ADC进行PWM LED亮度控制的电路图和所有必要的连接。

Nodemcu-ADC-PWM-Demo-Circuit

代码

如果略微修改上一个ADC演示代码,则可以基于ADC的输入生成PWM信号。ADC的输出被馈送为使用AmplwWrite()函数的PWM信号生成的占空比输入。

结论

ESP8266 ADC功能的简单教程使用Nodemcu板。您了解了ADC中ADC中的一些重要规格,ADC的输入电压范围,如何使用分压器扩展输入电压范围,演示ESP8266 ADC,在串行监视器上印有输出值,并控制亮度使用PWM LED。

留下一个回复

您的电子邮件地址不会被公开。必需的地方已做标记*

电子机器Favicon.
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu