1. 首页 » 生活技巧

arduino怎么读(ESP8266)

ESP8266-12E 和 ESP8266-07 都有一个易于访问的 ADC 引脚。这意味着那些 ESP8266 板可以读取模拟信号。在本教程中,我们将向您展示如何使用 Arduino IDE、MicroPython 或 Lua 固件在 ESP8266 上使用模拟读取。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

ESP8266 ADC 规格

当提到 ESP8266 ADC 引脚时,您经常会听到这些不同的术语:

ADC(模数转换器)出口引脚6A0模拟引脚 0

所有这些术语均指 ESP8266 中的同一引脚,下一节将重点介绍。

ESP8266 ADC 分辨率

ADC 引脚具有 10 位分辨率,这意味着您将获得 0 到 1023 之间的值。

ESP8266 输入电压范围

如果您使用裸芯片,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 模拟引脚

使用 ESP8266 12-E NodeMCU 套件和其他 ESP8266 开发板,访问 A0 非常容易,只需将跳线连接到引脚(见下图)。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

如果您使用的是 ESP8266 芯片,例如 ESP8266-07,则需要在该引脚上焊接一根电线。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

ESP-07

所需零件

为了向您展示如何使用 ESP8266 进行模拟读取,我们将从电位器读取值。为此,您需要在电路板上连接一个电位器。

这是完成本教程所需的硬件:

推荐:ESP8266-12E NodeMCU Kit(阅读ESP8266开发板对比)备选方案:1x ESP8266-07 芯片或 1x ESP8266-12E 芯片+ FTDI 编程器100 欧姆电阻(如果您使用裸芯片则需要)220 欧姆电阻(如果您使用裸芯片则需要)1k欧姆电位器面包板跳线

原理图,示意图

如果您使用的是 ESP8266 开发板,请按照下一个原理图进行操作。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

如果您使用的是输入电压范围为 0V 到 1V 的ESP8266 芯片,您需要确保 A0 引脚上的输入电压不超过 1V。因此,您需要一个分压器电路,如下图所示。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

我们使用的是 100 欧姆和 220 欧姆的电阻,因此 Vout 为 1V。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值


1. 使用 Arduino IDE 的 ESP8266 模拟读取

本节介绍如何使用 Arduino IDE 使用 ESP8266 读取模拟值。

将以下代码复制到您的 Arduino IDE。

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

int sensorValue = 0;  // value read from the pot

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

void loop() {
  // read the analog in value
  sensorValue = analogRead(analogInPin);
 
  // print the readings in the Serial Monitor
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  
  delay(1000);
}

代码首先声明 ESP8266 模拟引脚模拟输入引脚多变的:

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

电位器值将存储在传感器值多变的:

int sensorValue = 0;  // value read from the pot

在里面设置(),初始化串行监视器以进行调试:

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

在里面环形(),我们通过使用模拟读取()函数并传递模拟输入引脚作为论据。该值保存在传感器值多变的:

sensorValue = analogRead(analogInPin);

最后,读数显示在串行监视器上,这样您就可以实际看到发生了什么。

Serial.print(sensorValue);

上传代码

将之前的代码上传到 ESP8266。确保您选择了正确的板和 COM 端口。转到工具> 板并选择您正在使用的 ESP8266 型号。在我们的案例中,我们使用的是 ESP8266 12-E NodeMCU 套件。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

转到工具>端口并选择 ESP8266 连接到的 COM 端口。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

按下 Arduino IDE 上传按钮。

注意:如果您使用的是 ESP-07 或 ESP-12E 芯片,则需要FTDI 程序员来上传代码。

示范

上传代码后,以 115200 的波特率打开串行监视器。应显示模拟读数。

ESP8266 ADC – 使用 Arduino IDE 读取模拟值

旋转电位器并查看值增加或减少。

声明:本文由"麦兜"发布,不代表"知识分享"立场,转载联系作者并注明出处:https://www.wuxiaoyun.com/life/169732.html