關于DS18B20的簡短說明
DS18B20數字溫度計提供9位到12位位攝氏溫度測量并具有報警功能,具有非易失性用戶可編程的上下觸發點。 DS18B20通過1-Wire總線進行通信,根據定義,它只需要一條數據線(和地)與中央微處理器進行通信。此外,DS18B20可以直接從數據線獲得電源(“寄生電源”),從而消除了需要外部電源。每個DS18B20都有一個獨特的64位串行代碼,允許多個DS18B20在同一條1-Wire總線上運行。因此,使用一個微處理器控制分布在大面積上的幾個DS18B20很簡單。可以從此功能中受益的應用包括HVAC環境控制,建筑物內部的溫度監控系統,設備或機器,以及過程監控和控制系統。
關于將技術與生活相結合,使用彩色燈光令人驚嘆且極具吸引力用顯示器代替RGB LED發送信息或報警可以使項目更美觀,也更簡單。在這個項目中,我們想讓杯子變得聰明,這樣你就可以向你展示咖啡或軟飲料的溫度并報警它已經準備好了。作為熱電堆,我們將使用DS18B20并將其粘在杯子的底部。它可以將數字數據中的杯子中的液體溫度發送到控制器。 Arduino Nano因其小巧的尺寸和板載迷你USB連接器而成為我們的控制器選擇。因此,它可以編程,電池可以通過USB端口充電。為了顯示溫度,我們使用2個簡單的4針RGB LED,并將它們連接到Arduino Nano中的獨立PWM單元。現在,我們只需要一個電池,一個杯子和一個塑料外殼來放入組件。讓我們這樣做。
必需材料
此項目中使用的所有組件均可通過提供的鏈接購買。
電路
電池尺寸取決于LED和電池尺寸。 500mAh電池是一個不錯的選擇。您可以使用聚合物或離子電池。這里使用的LED具有共同的陰極。如果您有共同的陽極,則必須對代碼進行少量更改。如果您的LED在沒有電阻器的情況下無法工作,您有兩種方法。添加電阻或添加更多LED。您應該將DS18b20的電壓和數據引腳連接到4.7K歐姆電阻。雖然可能沒有必要。
代碼
您應該在Arduino IDE中復制以下代碼。但首先您必須添加庫然后上傳代碼。從附件下載“One Wire”和“Dallas”庫。如果這是您第一次運行Arduino板,請不要擔心。只需按照以下步驟操作:
訪問www.arduino.cc/en/Main/Software下載您的操作系統軟件。按照說明安裝IDE軟件。
運行Arduino IDE并清除文本編輯器并在文本編輯器中復制以下代碼。
導航到草圖并包含庫(從以下鏈接下載庫)。現在單擊添加ZIP庫并添加庫
選擇工具和板中的板,選擇Arduino Nano。
將Arduino連接到PC并設置工具和端口中的COM端口。
按上傳(箭頭標志)按鈕。
/********************************************************************/
// First we include the libraries
#include “OneWire.h”
#include “DallasTemperature.h”
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/********************************************************************/
float temp;
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println(“Dallas Temperature IC Control Library Demo”);
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
/********************************************************************/
Serial.print(“ Requesting temperatures.。.”);
sensors.requestTemperatures(); // Send the command to get temperature readings
Serial.println(“DONE”);
/********************************************************************/
Serial.print(“Temperature is: ”);
Serial.print(sensors.getTempCByIndex(0));temp= sensors.getTempCByIndex(0); Serial.print(“ ”); Serial.println(temp);// Why “byIndex”?
// You can have more than one DS18B20 on the same bus.
// 0 refers to the first IC on the wire
{ if (temp》50)
temp=100;
if (temp《30) temp=0; temp=(12.5)*(temp-30); Serial.println(temp); if (temp》255)
temp=255;
if (temp《0)
temp=0;
analogWrite(6,temp);
analogWrite(9,temp);
analogWrite(3,255-temp);
analogWrite(11,255-temp);}
else
{analogWrite(6,0);
analogWrite(9,0);
analogWrite(3,0);
analogWrite(11,0);}
delay(100);
}
以下代碼行屬于顏色計算,這取決于你的杯子。如果你的杯子沒有足夠快地傳遞熱量,你應該改變它以達到預期的效果。
if (temp》50)
temp=100;
if (temp《30)
temp=0;
temp=(12.5)*(temp-30);
組裝
最初,您必須鉆一下杯子的底部。孔的數量取決于電路以及如何實現它。我們考慮過這個項目的3個洞。一個用于溫度計,兩個用于連接螺絲(電極)和杯子內的液體。你可以在不刺穿馬克杯的情況下完成這個項目。將溫度計滴在馬克杯的底部,將電極的2根線連接到開/關開關。安裝溫度計和電極并密封后,是時候為馬克杯的底部做一個框架了。使用膠水密封玻璃,這將不會被熱水或冷水解決。要制作杯子底部的外殼。你必須首先測量杯子的外徑。然后設計一個與杯子底部尺寸完全相同的圓圈,以及兩個外徑為3毫米的環(當然還有杯子底部的直徑)。你可以使用有機玻璃和一個激光切割機制作規定的外殼。其中一個戒指必須是透明的,你可以根據自己的意愿選擇其他戒指的顏色。你應該打磨透明戒指,以達到啞光效果。如圖所示粘貼它們。現在將電池粘到外殼上并將其引腳連接到Arduino。將透明環的一部分切割為與Arduino micro USB端口一樣多,并將Arduino連接到電池,使連接器從環中掉出。現在將LED焊接到Arduino并將其他電線連接到Arduino。最后,將shell粘貼到馬克杯的底部,然后將代碼上傳到Arduino。
下一步是什么?
現在,通過在代碼中添加新功能來改進智能手機。例如,當咖啡達到所需溫度并且可以飲用時,您可以添加一些線來警告您。您可以點亮綠色LED以進行報警。在下一步中,您可以在杯子的底部添加一個加熱器元件并寫下一些代碼來停止降低飲料的溫度。
-
led
+關注
關注
242文章
23153瀏覽量
658615 -
DS18B20
+關注
關注
10文章
778瀏覽量
80717 -
Arduino
+關注
關注
187文章
6464瀏覽量
186677
發布評論請先 登錄
相關推薦
評論