Ardino基础教程 15_火焰报警器
實驗十五:火焰報警器
認識火焰傳感器
火焰傳感器(即紅外接收三極管)是機器人專門用來搜尋火源的傳感器,本傳感器對火焰特別靈敏。實物如圖:
火焰傳感器利用紅外線對火焰非常敏感的特點,使用特制的紅外線接收管來檢測火焰,然后把火焰的亮度轉化為高低變化的電平信號,輸入到中央處理器,中央處理器根據信號的變化做出相應的程序處理。
紅外接收三極管的短引線端為負極,長引線端為正極。按照下圖將負極接到5V接口中,然后將正極和10K電阻相連,電阻的另一端接到GND接口中,最后從火焰傳感器的正極端所在列接入一根跳線,跳線的另一端接在模擬口中。如圖
實驗器材清單
實驗接線
蜂鳴器接線
首先,按照Arduino教程將控制板、prototype板子、面包板連接好,下載線接好。從實驗盒中取出蜂鳴器,按照第二節實驗蜂鳴器的連接方法,將蜂鳴器連接到數字第8口。完成蜂鳴器的連接。
火焰傳感器接線
從實驗盒中取出火焰傳感器,按照本節所講述的火焰傳感器的接線方法,將火焰傳感器接到模擬5口。完成整個實驗的連線。蜂鳴器接到第9腳,火焰傳感器接到模擬A0腳。
實驗原理
在有火焰靠近和沒有火焰靠近兩種情況下,模擬口讀到的電壓值是有變化的。實際用萬用表測量可知,在沒有火焰靠近時,模擬口讀到的電壓值為0.3V左右;當有火焰靠近時,模擬口讀到癿電壓值為1.0V左右,火焰靠近距離越近電壓值越大。所以在程序一開始,我仧可以先存儲一個沒有火焰時模擬口的電壓值i。接著不斷的循環讀取模擬口電壓值j、同存儲的值做差值k=j-i、差值k不0.6v做比較。差值k如果大于0.6V(數字二迕制值為123),則判斷有火焰靠近讓蜂鳴器發出聲音以作報警;如果差值小于0.6v則蜂鳴器不響。
以下為參考源程序:
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);
}
實驗現象
本程序可以模擬在有火焰時報警的情況,在沒有火焰時一切正常,當有火焰時立刻報警做出提示。
程序代碼
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); }總結
以上是生活随笔為你收集整理的Ardino基础教程 15_火焰报警器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ardino基础教程 14_倾斜开关
- 下一篇: Ardino基础教程 16_一位数码管