ESP8266-Arduino编程实例-ADC

ADC

ESP8266-12E有一个易于访问的ADC引脚,本文将演示如何采集ADC引脚电平值。

ESP8266 ADC的分辨率为10位,这意味着,可以从ADC引脚读取的值范围为0~1023。

如果使用裸芯片,ESP8266 ADC 引脚输入电压范围为 0 到 1V。 然而,大多数 ESP8266 开发板都带有内部分压器,因此输入范围为 0 到 3.3V。 所以,总而言之:

  • ESP8266 开发板中的 ADC 电压范围:0 至 3.3V(例如:ESP8266 12-E NodeMCU Kit、WeMos D1 Mini、…)
  • ESP8266 芯片中的 ADC 电压范围:0 到 1V(例如:ESP-07 芯片、ESP-12E 芯片……)

ESP8266 NodeMCU的ADC引脚如下:

在这里插入图片描述

1、硬件准备

  • ESP8266 NodeMCU开发板一块
  • 电位计一个
  • 100欧姆和220欧姆电阻各一个(如果使用裸芯片)
  • 杜邦线若干
  • 数据线一条

2、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

3、硬件电路接线图

在这里插入图片描述

4、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <Arduino.h>

const int analogInPin = A0; // ADC引脚

int sensorValue = 0; // ADC端口值

void setup() {
// 初始化串口通信
Serial.begin(115200);
}

void loop() {
// 读取ADC
sensorValue = analogRead(analogInPin);

// 打印ADC值
Serial.print("sensor = ");
Serial.print(sensorValue);

delay(1000);
}

5、代码解析

首先,定义ADC引脚:

1
2
const int analogInPin = A0;  // ADC引脚

电位器值将存储在 sensorValue 变量中

1
2
int sensorValue = 0;  // ADC端口值

setup函数中初始化串口

1
2
Serial.begin(115200);

loop函数中读取ADC值

1
2
sensorValue = analogRead(analogInPin);

最后,向串口打印ADC值

1
2
Serial.print(sensorValue);

文章来源: https://iotsmart.blog.csdn.net/article/details/126006856