有時,我們需要在項目中添加一個溫度指示器。因此,在本篇文章中,您將學習如何使用Arduino和DS18B20溫度傳感器制作一款模擬溫度計。
DS18B20模塊
首先,Maxim DS18B20數(shù)字溫度計提供9位至12位攝氏溫度測量,并具有報警功能以及非易失性用戶可編程的上下觸發(fā)點。同樣,DS18B20通過1-Wire總線進行通信,根據(jù)定義,該總線僅需要一條數(shù)據(jù)線(和地線)即可與中央微處理器進行通信。此外,DS18B20可以直接從數(shù)據(jù)線獲取電源(“寄生電源”),而無需外部電源。
實際上,每個DS18B20都有一個唯一的64位串行代碼,它允許多個DS18B20在同一1-Wire總線上工作。因此,使用一個微處理器控制分布在大面積上的許多DS18B20很簡單。
所需的零件
● Arduino Uno開發(fā)板
● DS18B20傳感器
● 模擬電壓表
電路
幸運的是,電路是如此簡單。首先,將帶有(-)符號的DS18b20引腳連接到Arduino GND,將帶有(+)符號的引腳連接到5V,將信號引腳連接到數(shù)字引腳2,以開始感測溫度。我們將電壓表的正極連接到數(shù)字引腳9(PWM引腳之一),將負極連接到GND。然后,要將電壓表的標簽更改為攝氏溫度計,只需下載附件中的照片并打印出來即可!
脈沖寬度調(diào)制
簡而言之,脈寬調(diào)制或PWM是一種通過數(shù)字方式獲得模擬結(jié)果的技術(shù)。因此,我們可以發(fā)送一個脈沖,而不是向PWM中的數(shù)字引腳寫入高電平。因此,Arduino UNO的一些數(shù)字引腳支持PWM,您可以通過旁邊打印的信號(?)識別它們。
代碼
首先,您需要在Arduino IDE中添加“DallasTemperature”庫,因為該庫支持Maxim溫度IC,包括我們的DS18B20。該代碼包含三個主要方面:從傳感器讀取溫度、將溫度轉(zhuǎn)換為一個PWM值以及在溫度計上顯示該值
首先,在setup函數(shù)中,我們將從傳感器讀取溫度。然后,將其傳遞給PWM函數(shù),以將獲取的值轉(zhuǎn)換為0到255范圍內(nèi)的PWM值。這可以在函數(shù)內(nèi)部借助“map”函數(shù)來完成。接下來,我們將其寫入引腳9,以顯示在電壓表上。
不過,您可以指定自己喜歡的最低和最高溫度度,但您應該注意:這兩個值之間的差距越小,溫度計的分辨率就越高。讓我們看一下代碼:
//Written by Nick Koumaris
//info@educ8s.tv
//educ8s.tv
#include
#include
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int MIN_TEMP = 16;
int MAX_TEMP = 28;
void setup() {
pinMode(9,OUTPUT);
Serial.begin(9600);
sensors.begin();
}
void loop() {
float temperature = getTemperature();
int voltage = temperatureToPWM(temperature);
analogWrite(9,voltage);
delay(500);
}
float getTemperature()
{
float temperature =0;
sensors.requestTemperatures(); // Send the command to get temperatures
temperature = sensors.getTempCByIndex(0);
Serial.println(temperature);
return temperature;
}
int temperatureToPWM(float temperature)
{
float temp=0;
float voltage = 0;
temp = temperature*10;
voltage = map(temp,MIN_TEMP*10,MAX_TEMP*10,0,250);
return voltage;
}
編輯:hfy
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
2885瀏覽量
155664 -
DS18B20
+關(guān)注
關(guān)注
10文章
777瀏覽量
80583 -
溫度計
+關(guān)注
關(guān)注
6文章
404瀏覽量
78368 -
Arduino
+關(guān)注
關(guān)注
187文章
6455瀏覽量
186372 -
溫度指示器
+關(guān)注
關(guān)注
0文章
5瀏覽量
1600
發(fā)布評論請先 登錄
相關(guān)推薦
評論