You are currently viewing ESP8266 ADC –使用Arduino IDE讀取類比值

ESP8266 ADC –使用Arduino IDE讀取類比值

ESP8266-12E和ESP8266-07均具有一個易於訪問的ADC引腳。這意味著這些ESP8266開發板可以讀取類比信號。在本教程中,我們將向您展示如何通過Arduino IDE在ESP8266上使用類比讀數。

我們將向您展示如何從電位計讀取類比值。

ESP8266 ADC規格 

指定ESP8266 ADC引腳時,您經常會交替聽到以下這些術語:
  • ADC(類比數位轉換器)
  • TOUT
  • Pin6
  • A0
  • 類比引腳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套件,WeMos D1 Mini,…)
  • ESP8266晶片中的ADC電壓範圍:0至1V(例如:ESP-07晶片,ESP-12E晶片,…)

ESP8266 NodeMCU套件

如果您使用的是ESP8266晶片,例如ESP8266-07,則需要將一根導線焊接到該引腳上。

ESP-07芯片ESP8266

所需零件 

為了向您展示如何在ESP8266上使用類比讀數,我們將從可變電阻讀取值。為此,您需要將可變電阻連接到開發板上。

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

  • 推薦:ESP8266-12E NodeMCU套件
  • 備選:1個ESP8266-07晶片或1個ESP8266-12E晶片
  • 100 Ohm電阻器(如果使用裸晶片則需要)
  • 220歐姆電阻(如果您使用裸晶片,則需要)
  • 1k歐姆電阻
  • 麵包板
  • 跳線

原理圖,示意圖 

如果您使用的是ESP8266開發板,可以參考下面的原理圖。

ESP8266 ADC讀取模擬值Arduino IDE MicroPython Lua

如果您使用的ESP8266晶片的輸入電壓範圍為0V至1V,則需要確保A0引腳上的輸入電壓不超過1V。因此,您需要一個分壓器電路,如下所示。

ESP8266 ADC讀取類比值電路

ESP8266 ADC讀取模擬值電路

我們使用100歐姆和220歐姆的電阻,因此Vout為1V。

 ESP8266使用Arduino IDE進行類比讀取 

 

本節介紹瞭如何使用Arduino IDE使用ESP8266讀取模擬值。

在Arduino IDE中安裝ESP8266

為了將代碼上傳到ESP8266,您需要先安裝ESP8266插件(如果尚未安裝)。遵循下一個教程:

程式碼

將以下程式碼複製到您的Arduino IDE。

/*********
  Terry Lee
  完整解釋說明在 http://honeststore.com.tw
*********/

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.println(sensorValue);
  
  delay(1000);
}

該程式碼首先在ESP8266的類比引腳中聲明 analogInPin 變數:

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

可變電阻值將存儲在 sensorValue 變數:

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

在setup()函數中,初始化串行監視器以進行調試:

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

在 loog()函數中,我們使用讀取類比值 AnalogRead() 功能並傳遞 類比值作為參考。該值保存在sensorValue 變數中:

sensorValue = analogRead(analogInPin);

最後,讀數顯示在串行監視器上,這樣您就可以實際看到發生了什麼。

Serial.print(sensorValue);

上傳程式碼

將之前的程式碼上傳到ESP8266。確保您選擇正確的開發板和COM端口。轉到工具>開發板,然後選擇要使用的ESP8266型號。在本例中,我們使用的是ESP8266 12-E NodeMCU Kit。

轉到工具>端口,然後選擇ESP8266連接到的COM端口。

按下Arduino IDE上傳按鈕。

示範

上傳程式碼後,以115200的鮑率打開串行監視器。以下為顯示類比讀數。

旋轉可變電阻,觀察值增加或減少。

總結 

在本教程中,我們向您展示了如何使用ESP8266類比引腳(A0)讀取類比值。需要注意的一件事是,如果使用裸晶片,ESP8266類比輸入範圍為0-1V,如果使用開發板,則為0-3.3V。

無論哪種方式,都應始終注意不要超過建議的最大電壓。當需要更高的輸入電壓範圍時,可以考慮添加一個分壓器電路。

我們希望您對本教程有所幫助。如果您剛開始使用ESP8266,建議您參考以下資源:

  • 使用ESP8266的家庭自動化(eBook)
  • ESP8266入門
  • ESP8266 GPIO參考指南
  • ESP8266 Web服務器

謝謝閱讀。

發佈留言