Arduino 是創(chuàng)客們DIY的必備法寶。借助Arduino 開發(fā)板,創(chuàng)客們通過簡單的代碼程序就可以實(shí)現(xiàn)一些常用電子設(shè)備的運(yùn)行功能。
硬創(chuàng)邦此前曾發(fā)布過用Arduino制作的 “烏龜機(jī)器人”、“家庭報(bào)警系統(tǒng)”以及“數(shù)控繪圖儀”項(xiàng)目,今天,創(chuàng)新林創(chuàng)客空間為大家?guī)砹艘豢預(yù)rduino 溫度計(jì)。這款溫度計(jì)既可以作為日常溫度計(jì)使用,又可以進(jìn)行家用裝飾,特別適合愛畫畫的小創(chuàng)客們動(dòng)手制作。那么,它究竟是如何實(shí)現(xiàn)的呢?
最終作品照
一、材料準(zhǔn)備
Arduino UNO x1
Arduino擴(kuò)展板 x1
Lm35溫度傳感器 x1
9g舵機(jī) x1
導(dǎo)線若干
A4白卡紙 x1
所需材料
二、盒子制作
準(zhǔn)備好工具和卡紙
首先,我們要用尺子和鉛筆把要做的方盒子的平面圖按照下面示意圖,在紙上畫出來,盒子的尺寸大小按照可以放得下一個(gè)Arduino板的尺寸,這里非??简?yàn)空間想象力和盒子的構(gòu)造。
方紙盒子展開圖
畫好之后,我們就可以用剪刀把它剪下來,如下圖所示:
剪好后的展開圖
大家可以看到上面有一個(gè)小水滴樣子的指針,這個(gè)非常簡單,大家在剩下的卡紙料上隨手剪一個(gè)上色就行。
接下來直接按照原來畫的邊線進(jìn)行對折即可,記得有畫線的一面向里面,這樣可以保證外觀的整潔度。在這里大家記得拿出自己的彩色筆哦!給它設(shè)計(jì)一個(gè)好看的涂裝,刻度劃分可以自己去設(shè)計(jì)。
盒子制作完成
三、Arduino電路搭建及組裝
完成上一步的盒子制作之后,這一步我們要完成的就是整個(gè)作品的核心部分,傳感器連接與電路搭建,連接圖如下所示:
電路連接圖
電路實(shí)物連接
連接好電路之后,把舵機(jī)裝在盒子里面,安裝前要在盒子前面開一個(gè)小孔,然后用熱熔膠把舵機(jī)固定在紙盒上,如圖所示:
安裝舵機(jī)
小水滴指針是如何安裝到舵機(jī)上的呢?這里就要用到舵機(jī)自帶的舵盤啦!直接用雙面膠就把指針固定在舵盤上了,請看下圖:
多盤與指針安裝
安裝舵機(jī)、舵盤、指針到紙盒
在這里就完成了硬件的所有制作,接下來就是寫驅(qū)動(dòng)程序。
四、程序編寫
Arduino驅(qū)動(dòng)程序編寫,我們還是用到Arduino IDE來寫這個(gè)程序,下面就是這個(gè)美美的Arduino溫度計(jì)的驅(qū)動(dòng)程序,就讓我們一起DIY來讓這個(gè)寒冷的冬天變更即視。下面這個(gè)代碼大概的運(yùn)行的原理是先通過LM35溫度傳感器采集到模擬值,將模擬值通過變換公式轉(zhuǎn)換出溫度值,因?yàn)楸肀P用的是舵機(jī),所以這里會用到一個(gè)映射函數(shù)map,將溫度值映射到相應(yīng)的角度值,從而控制指針旋轉(zhuǎn)到相應(yīng)的位置。代碼如下:
#include <Servo.h>
#include <math.h>
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)的角度
聯(lián)系客服