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

在本教程中,我们将学习如何使用ESP8266 SOC的ADC外围设备并读取一些模拟值。为了展示此ESP8266 ADC教程,我将使用基于ESP-12E模块的ESP8266 Nodemcu板。ESP-01没有ADC PIN。

ESP8266-ADC-TutorialDED-PWM

介绍

对数字转换器的模拟或者简单的ADC是大多数现代微控制器和SOC的惊人功能。顾名思义,对数字转换器的模拟将连续的模拟信号转换为离散的数字值。

这确实很重要,因为所有微控制器都是数字设备,并且仅处理逻辑低和逻辑高值。ADC允许微控制器和SOC与模拟设备(如传感器)交互,并围绕它们构建系统。

大多数现代的微控制器已经在其硅中内置了ADC块,因此您无需使用外部(和专用)ADC IC。

ESP8266 SOC中的ADC

ESP8266EX SOC是所有ESP8266董事会中的主要处理器,具有单个通道ADC。ESP8266中的ADC具有10位分辨率,并且具有连续的近似寄存器(SAR)类型。10位分辨率平均值,输出值将在0到1023的范围内。

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

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

这两个测量都不能同时实施。为了进行电源电压测量,必须将tout引脚浮出水面。但是,当测量吹捧引脚处的外部电压时,输入电压范围应在0V和1V之间。

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

ESP-01中的ADC

如果您有Vanilla ESP8266板,即ESP-01,那么您不幸,因为它没有ADC的PINC。如果您是绝望的,则可以将PIN 6用作ADC引脚,但请记住,它只能接受0V至1V的电压。

ESP8266 Arduino图像2

ESP8266 nodemcu中的ADC

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

此外,NodeMCU还负责从原始0V到1V到更友好的0V至3.3V的输入电压范围限制。

ESP8266-NodeMcu-ADC-PIN

如果您看一下NodeMCU的示意图,上面的引脚图像中的ADC0引脚充当了由220kΩ和100kΩ电阻形成的电压分隔器的输入,并带有ESP8266EX SOC tout pin的电压分隔器输出的输出。

ESP8266-ADC电压钻机

重要的提示:ESP8266 SOC中ADC的电压范围为0V至1V。如果要使用0V至3.3V的ADC,则必须使用如上图所示的电压分隔电路。无法访问ADC PIN的ESP-01用户可以将电线焊接到ESP8266EX SOC的6引脚,并将其与电压分隔器一起使用。

警告:不直接向ESP8266EX SOC的ADC引脚(Tout - Pin 6)提供超过1V的功能。

使用NodeMCU演示ESP8266 ADC

如果您有ESP8266 nodemcu板,则可以直接使用ADC PIN(A0)来读取0V至3.3V范围内的模拟电压。现在让我们构建一个小电路来演示ESP8266的ADC功能。

选择一个10kΩ电位器作为模拟输入设备,其末端端子连接到3.3V和GND,以及连接到Nodemcu的A0引脚的雨刮器端子。模拟电压转换为数字值并在串行显示器上显示。

ESP8266-Nodemcu-pot

需要组件

  • ESP8266 NODEMCU董事会
  • 10kΩ电位器
  • 面包板
  • 连接电线

电路原理图

下图显示了ESP8266 NodeMCU ADC演示的电路图。

nodemcu-adc-serial-circuit

代码

在进行代码之前,我强烈建议您通过nodemcu入门教程,因为它具有设置Arduino IDE的所有必要信息,以与Nodemcu董事会一起使用。

输出

下图显示了串行显示器上显示的ADC值。

串行监控-ADC-NODEMCU-ADC

ESP8266 PWM与ADC

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

nodemcu-adc-pot-usjust

LED连接到NodeMCU的GPIO4(D2)引脚,并连接10kΩ电位器连接到Nodemcu的ADC0引脚。当我旋转10kΩ锅的旋钮时,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Ω电位器
  • 面包板
  • 连接电线

电路原理图

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

nodemcu-adc-pwm驱动器

代码

如果您稍微修改了先前的ADC演示代码,则可以根据ADC的输入生成PWM信号。使用AnalogWrite()函数,ADC的输出作为占空比输入到PWM信号生成。

结论

使用NodeMCU板上的ESP8266 ADC函数的简单教程。您了解了ESP8266EX SOC中ADC的某些重要规范,ADC的输入电压范围,如何使用电压分隔器扩展输入电压范围,ESP8266 ADC的演示,其ESP8266 ADC具有在串行监视器上打印的输出值以及控制串行监视器的输出值LED使用PWM。

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map