一、傾斜開(kāi)關(guān)控制LED燈的亮滅
實(shí)驗(yàn)器件:
滾珠開(kāi)關(guān):1個(gè) LED燈:1個(gè)
220Ω電阻:1個(gè)
多彩面包板實(shí)驗(yàn)跳線:若干
1.實(shí)驗(yàn)連線
將控制板、擴(kuò)展板子、面包板連接好(圖1),下載線接好, 然后將LED燈連接到數(shù)字8引腳,滾珠開(kāi)關(guān)連接到模擬5引腳。
2.實(shí)驗(yàn)原理
當(dāng)開(kāi)關(guān)一端低于水平位置傾斜,開(kāi)關(guān)導(dǎo)通,模擬口電壓值為5V左右 (數(shù)字二進(jìn)制表示為1023),點(diǎn)亮LED燈。當(dāng)另一端低于水平位置傾斜 ,開(kāi)關(guān)停止,模擬口電壓值為0V左右(數(shù)字二進(jìn)制表示為0),熄滅LED 燈。在程序中模擬口電壓值是否大于2.5V左右(數(shù)字二進(jìn)制表示為512) ,即可知道是否傾斜開(kāi)關(guān)導(dǎo)通了。
3.程序參考
void setup()
{
pinMode(8,OUTPUT);//設(shè)置數(shù)字8引腳為辒出模式
}
void loop()
{
int i;//定義發(fā)量i
while(1)
{
i=analogRead(5);//讀取模擬5口電壓值
if(i>512)//如果大于512(2.5V)
{
digitalWrite(8,LOW);//點(diǎn)亮LED燈
}
else//否則
{
digitalWrite(8,HIGH);//熄滅LED燈
}
}
}
實(shí)驗(yàn)現(xiàn)象:手拿著面包板,當(dāng)傾斜到一定程度時(shí),LED被點(diǎn)亮。沒(méi)有傾斜時(shí),led不亮(圖2)。
傾斜到一定程度時(shí),LED被點(diǎn)亮(圖3),實(shí)際應(yīng)用中控制的通常是繼電器。
二、火焰報(bào)警實(shí)驗(yàn)
1.認(rèn)識(shí)火焰?zhèn)鞲衅?/p>
火焰?zhèn)鞲衅鳎醇t外接收三極管,圖4)是機(jī)器人專門用來(lái)搜尋火源的傳感器,本傳感器對(duì)火焰特別靈敏。實(shí)物如圖:
2.工作原理
火焰?zhèn)鞲衅骼眉t外線對(duì)火焰非常敏感的特點(diǎn),使用特制的紅外線接收管來(lái)檢測(cè)火焰,然后把火焰的亮度轉(zhuǎn)化為高低變化的電平信號(hào),輸入到中央處理器,中央處理器根據(jù)信號(hào)的變化做出相應(yīng)的程序處理。
3.火焰?zhèn)鞲衅鞯倪B線
紅外接收三極管的短引線端為負(fù)極,長(zhǎng)引線端為正極。按照下圖將負(fù)極接到5V接口中,然后將正極和10K電阻相連,電阻的另一端接到GND接口中,最后從火焰?zhèn)鞲衅鞯恼龢O端所在列接入一根跳線,跳線的另一端接在模擬口中,如圖5。
4.實(shí)驗(yàn)器件
火焰?zhèn)鞲衅鳎?個(gè)
蜂鳴器:1個(gè)
下拉電阻:10K電阻1個(gè)
多彩面包板實(shí)驗(yàn)跳線:若干
5.實(shí)驗(yàn)連線
1)蜂鳴器的連接
首先,按照Arduino教程將控制板、prototype板子、面包板連接好,下載線接好。從實(shí)驗(yàn)盒中取出蜂鳴器,按照第二節(jié)實(shí)驗(yàn)蜂鳴器的連接方法,將蜂鳴器連接到數(shù)字第八口,完成蜂鳴器的連接。
2)火焰?zhèn)鞲衅鞯倪B接
從實(shí)驗(yàn)盒中取出火焰?zhèn)鞲衅?,按照本?jié)所講述的火焰?zhèn)鞲衅鞯慕泳€方法,將火焰?zhèn)鞲衅鹘拥侥M5口(圖6),完成整個(gè)實(shí)驗(yàn)的連線。蜂鳴器接到第9腳,火焰?zhèn)鞲衅鹘拥侥M0腳。
6.實(shí)驗(yàn)原理
在有火焰靠近和沒(méi)有火焰靠近兩種情況下,模擬口讀到的電壓值是有變化的。實(shí)際用萬(wàn)用表測(cè)量可知,在沒(méi)有火焰靠近時(shí),模擬口讀到的電壓值為0.3V左右;當(dāng)有火焰靠近時(shí),模擬口讀到的電壓值為1.0V左右,火焰靠近距離越近電壓值越大。
所以在程序一開(kāi)始,我們可以先存儲(chǔ)一個(gè)沒(méi)有火焰時(shí)模擬口的電壓值i。接著不斷地循環(huán)讀取模擬口電壓值j、同存儲(chǔ)的值做差值k=j-i、差值k不0.6v做比較。差值k如果大于0.6V(數(shù)字二進(jìn)制值為123),則判斷有火焰靠近讓蜂鳴器發(fā)出聲音以作報(bào)警;如果差值小于0.6V則蜂鳴器不響。
7.程序代碼
int flame=0;//定義火焰接口為模擬0 接口
int Beep=9;//定義蜂鳴器接口為數(shù)字9 接口
int val=0;//定義數(shù)字變量
void setup()
{
pinMode(Beep,OUTPUT);//定義LED 為輸出接口
pinMode(flame,INPUT);//定義蜂鳴器為輸入接口
Serial.begin(9600);//設(shè)定波特率為9600
}
void loop()
{
val=analogRead(flame);//讀取火焰?zhèn)鞲衅鞯哪M值
Serial.println(val);//輸出模擬值,并將其打印出來(lái)
if(val>=600)//當(dāng)模擬值大于600 時(shí)蜂鳴器鳴響
{
digitalWrite(Beep,HIGH);
}else
{
digitalWrite(Beep,LOW);
}
delay(500);
}
8.實(shí)驗(yàn)結(jié)果及其現(xiàn)象
本程序可以模擬在有火焰時(shí)報(bào)警的情況,在沒(méi)有火焰時(shí)一切正常,當(dāng)有火焰時(shí)立刻報(bào)警做出提示。