2022年8月23日 星期二

LM35 與 NodeMCU 的接口

 

介紹

LM35溫度傳感器

LM35溫度傳感器

LM35 是一款溫度傳感器,可測量 -55°C 至 150°C 範圍內的溫度。

它是一個 3 端器件,可提供與溫度成比例的模擬電壓。溫度越高,輸出電壓越高。

輸出模擬電壓可以使用 ADC 轉換為數字形式,以便微控制器可以處理它。

有關 LM35 及其使用方法的更多信息,請參閱傳感器和模塊部分中的主題 LM35 溫度傳感器

NodeMCU ADC 可用於測量來自 LM35 的模擬電壓以及與模擬電壓成比例的溫度。要了解 NodeMCU 的 ADC,請參閱 NodeMCU ADC with ESPlorer IDENodeMCU ADC with Arduino IDE

接口圖

NodeMCU LM35接口圖

NodeMCU LM35接口圖

 

例子

這裡,LM35 輸出被提供給 NodeMCU 的模擬引腳 A0。該模擬電壓被轉換為其數字形式並進行處理以獲得溫度讀數。

我們可以用 Lua 腳本或 C/C++ 語言為 NodeMCU DevKit 編寫代碼。我們使用 ESPlorer IDE 用 Lua 腳本編寫代碼,使用 Arduino IDE 用 C/C++ 編寫代碼。要了解更多信息,請參閱 使用 ESPlorer IDE 開始使用 NodeMCU(對 NodeMCU 使用 Lua 腳本)和使用 Arduino IDE 開始使用 NodeMCU(對 NodeMCU 使用基於 C 語言的 Arduino 草圖)。

LM35 的 Lua 腳本

Vref = 3.3
resolution = Vref/1023

analogVtg = adc.read(0)
if analogVtg> 1023 then
analogVtg = 1023
end
temperature = (analogVtg * resolution)*100
print('LM35 Temperature:', temperature)

 

ESPlorer 串行輸出窗口

用於 LM35 溫度測量的 ESPlorer 串行監視器輸出窗口

ESPlorer LM35 溫度輸出窗口

 

用於 LM35 的 Arduino 草圖

float vref = 3.3;
float resolution = vref/1023;

void setup() {
 Serial.begin(9600);  /* Define baud rate for serial communication */
}

void loop() {
 float temperature = analogRead(A0);
 temperature = (temperature*resolution);
 temperature = temperature*100;
 Serial.println(temperature);
 delay(1000);
}

 

Arduino 串行輸出窗口

用於 LM35 溫度測量的 Arduino 串行監視器輸出窗口

用於 LM35 的 Arduino 串行監視器窗口

 

資料來源:https://www.electronicwings.com/nodemcu/lm35-interfacing-with-nodemcu

沒有留言: