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