大姚
Arduino是創客們DIY的必備法寶。借助Arduino 開發板,創客們通過簡單的代碼程序就可以實現一些常用電子設備的運行功能。本期我們介紹如何利用Arduino來制作家里的常用物品之一——溫度指示器。一起動手試做一下吧!
材料準備
Arduino控制器,溫濕度傳感器 DHT11, 舵機 DSS M15,杜邦線若干。
溫濕度傳感器是溫度指示器的感應元件。因為筆者地處南方地區,本次制作采用DHT11溫濕度傳感器,它包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。傳感器可通過3P數字線直插Arduino控制器,Arduino控制器可以通過屏幕實時顯示該傳感器的讀數變化,其溫度感應范圍為0~50℃。北方地區的讀者可以采用探測范圍更大的DHT22溫濕度傳感器,其溫度感應范圍為-40~80℃。
溫度指示器選用 DSS M15舵機作為指示部件,它的舵盤的旋轉角度可達180°。
制作過程
1. 首先,我們要為溫度指示器制作一個外殼。可以選用一些小型的廢棄包裝盒作為外殼,然后用畫筆在盒子上畫出溫度指示范圍。根據舵盤的旋轉角度范圍,溫度指示范圍設計為一個半圓,均分成6等分,指示范圍標注為-10~50℃。
2. 設計好外殼后,要把舵機裝在外殼里面。安裝前在半圓的圓心處開一個小孔,把舵機上的舵盤拆下,將舵機的傳動軸從小孔中穿過去。由于舵機的傳動軸較短,所以選取的外殼不宜太厚,以免影響舵機的正常運行。
3. 接下來我們要完成的就是整個溫度指示器的核心部分。將溫濕度傳感器和舵機用杜邦線連接到Arduino控制器上,電路連接圖如圖3- 1、圖3- 2所示。
4. 用硬紙板剪一枚指針,用雙面膠固定到舵盤上。最后將Arduino控制器封到盒子里,將溫濕度傳感器DHT11用雙面膠固定在外殼上方,給Arduino控制器接上電源(電壓范圍為5~12V的直流電源適配器)。至此就完成了硬件的所有制作,接下來是編寫驅動程序。
程序編寫
驅動程序使用Arduino IDE開發平臺來編寫。在編寫溫度指示器的代碼之前,需要先導入兩個頭文件——舵機的庫文件 Servo.h 和溫濕度傳感器的頭文件 DHT.h。舵機的庫文件 Servo.h是Arduino標準庫頭文件庫,如圖5所示,圖中表示文件庫中已經有包含舵機的庫文件。
溫濕度傳感器的頭文件DHT.h從下面的鏈接中下載:http://wiki.dfrobot.com.cn/index.php/(SKU:DFR0067)DHT11%E6%95%B0%E5%AD%97%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8_V2。
下載后將它解壓縮到Arduino安裝路徑下的libraries中,如圖6所示。
程序代碼的運行原理是先通過溫濕度傳感器DHT11采集到模擬值,通過Arduino控制器的模擬口A2(管腳2)輸入,將模擬值通過變換公式轉換為舵盤的指示角度,從而控制指針旋轉到相應的位置。這里會有一個映射關系,將溫度值映射到相應的舵盤旋轉角度值。
具體代碼如下:
#include
#include
Servo myservo; // 定義一個伺服電機的對象
DHT dht; // 定義另一個溫濕度的對象
void setup()
{
dht.setup(2); // 設置管腳2接受溫度信號
myservo.attach(9); //設置管腳9輸出伺服電機控制信號
}
void loop()
{
float temperature = dht.getTemperature(); //讀取溫度信號
myservo.write(180-(temperature+10)*3); //根據溫度信號輸出伺服電機的偏轉角,最大偏轉角為180°
delay(2000); //延時2s,方便伺服電機轉到相應的角度
}