你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

創(chuàng)客朋友的親子時(shí)間,和寶貝一起用Arduino改造溫度計(jì)

發(fā)布時(shí)間:2016-03-30 責(zé)任編輯:wenwei

【導(dǎo)讀】Arduino 是創(chuàng)客們DIY的必備法寶。借助Arduino 開(kāi)發(fā)板,創(chuàng)客們通過(guò)簡(jiǎn)單的代碼程序就可以實(shí)現(xiàn)一些常用電子設(shè)備的運(yùn)行功能。今天為大家?guī)?lái)一款A(yù)rduino 溫度計(jì)。這款溫度計(jì)既可以作為日常溫度計(jì)使用,又可以進(jìn)行家用裝飾,特別適合愛(ài)畫(huà)畫(huà)的小創(chuàng)客們動(dòng)手制作。那么,它究竟是如何實(shí)現(xiàn)的呢?
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
最終作品照
 
一、材料準(zhǔn)備
 
Arduino UNO x1
 
Arduino擴(kuò)展板 x1
 
Lm35溫度傳感器 x1
 
9g舵機(jī) x1
 
導(dǎo)線若干
 
A4白卡紙 x1
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
所需材料
 
二、盒子制作
 
準(zhǔn)備好工具和卡紙
 
首先,我們要用尺子和鉛筆把要做的方盒子的平面圖按照下面示意圖,在紙上畫(huà)出來(lái),盒子的尺寸大小按照可以放得下一個(gè)Arduino板的尺寸,這里非??简?yàn)空間想象力和盒子的構(gòu)造。
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
方紙盒子展開(kāi)圖
 
畫(huà)好之后,我們就可以用剪刀把它剪下來(lái),如下圖所示:
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
剪好后的展開(kāi)圖
 
大家可以看到上面有一個(gè)小水滴樣子的指針,這個(gè)非常簡(jiǎn)單,大家在剩下的卡紙料上隨手剪一個(gè)上色就行。
 
接下來(lái)直接按照原來(lái)畫(huà)的邊線進(jìn)行對(duì)折即可,記得有畫(huà)線的一面向里面,這樣可以保證外觀的整潔度。在這里大家記得拿出自己的彩色筆哦!給它設(shè)計(jì)一個(gè)好看的涂裝,刻度劃分可以自己去設(shè)計(jì)。
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
盒子制作完成
 
三、Arduino電路搭建及組裝
 
完成上一步的盒子制作之后,這一步我們要完成的就是整個(gè)作品的核心部分,傳感器連接與電路搭建,連接圖如下所示:
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
電路連接圖
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
電路實(shí)物連接
 
連接好電路之后,把舵機(jī)裝在盒子里面,安裝前要在盒子前面開(kāi)一個(gè)小孔,然后用熱熔膠把舵機(jī)固定在紙盒上,如圖所示:
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
安裝舵機(jī)
 
小水滴指針是如何安裝到舵機(jī)上的呢?這里就要用到舵機(jī)自帶的舵盤(pán)啦!直接用雙面膠就把指針固定在舵盤(pán)上了,請(qǐng)看下圖:
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
多盤(pán)與指針安裝
 
親子時(shí)刻,和寶貝一起用Arduino 改造溫度計(jì)
安裝舵機(jī)、舵盤(pán)、指針到紙盒
 
在這里就完成了硬件的所有制作,接下來(lái)就是寫(xiě)驅(qū)動(dòng)程序。
 
四、程序編寫(xiě)
 
Arduino驅(qū)動(dòng)程序編寫(xiě),我們還是用到Arduino IDE來(lái)寫(xiě)這個(gè)程序,下面就是這個(gè)美美的Arduino溫度計(jì)的驅(qū)動(dòng)程序,就讓我們一起DIY來(lái)讓這個(gè)寒冷的冬天變更即視。下面這個(gè)代碼大概的運(yùn)行的原理是先通過(guò)LM35溫度傳感器采集到模擬值,將模擬值通過(guò)變換公式轉(zhuǎn)換出溫度值,因?yàn)楸肀P(pán)用的是舵機(jī),所以這里會(huì)用到一個(gè)映射函數(shù)map,將溫度值映射到相應(yīng)的角度值,從而控制指針旋轉(zhuǎn)到相應(yīng)的位置。代碼如下:
 
#include
 
#include
 
Servo myservo;
 
int a,val; //定義變量
 
float temperature; //定義浮點(diǎn)型變量,用于存放轉(zhuǎn)換后的溫度
 
int B=3975; //熱敏電阻的基礎(chǔ)參考值B
 
float resistance;
 
void setup()
 
{
 
myservo.attach(4); //定義舵機(jī)驅(qū)動(dòng)端口
 
}
 
void loop()
 
{
 
a=analogRead(0); //讀取溫度傳感器的模擬值
 
resistance=(float)(1023-a)*10000/a; //計(jì)算出傳感器的電阻值
 
temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;//將電阻值轉(zhuǎn)換成溫度值
 
delay(500); //延時(shí)500毫秒
 
val=map(temperature,0,50,0,180); //將轉(zhuǎn)換的溫度值映射到舵機(jī)的角度值
 
myservo.write(val); //舵機(jī)轉(zhuǎn)到相應(yīng)的角度
 
}



【推薦閱讀】

零基礎(chǔ)小白也可以做的愛(ài)心彩燈,送給心愛(ài)的Ta
Foream便利貼相機(jī)——隨心記錄生活點(diǎn)點(diǎn)滴滴
搞怪“美人魚(yú)”盡享靈克藍(lán)牙音箱的天籟之音!
生命不停運(yùn)動(dòng)不息,新我握力器—將運(yùn)動(dòng)游戲化
“雙享號(hào)”讓 iPhone 實(shí)現(xiàn)雙卡雙待,So easy!



 
要采購(gòu)盒子么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉