HI ~ 大家好我是阿俊 這次實作是 運用紅外線的 漫反射特性 來達成 感應物體的運用 在現實生活中 紅外線的運用非常的廣 運用於傳送資料 感溫 避障 等多種用途 這次實作
將使用 紅外線避障 來達成 以下是實作影片
先說明 何謂漫反射 紅外線避障模組上 有一個接收 和 發送端 其原理就是 將紅外線發送 遇到障礙物 反射回去到接收端 使模組作動 在其中的過程 稱為漫反射 順便提一下 紅
外線對黑色不靈敏 因此 在使用上 還有一些不便 假如光線太暗的話 避障效果大打折扣 則要使用超音波避障 來解決!~
準備材料
Arduino 板子
數條連接線
紅外線避障模組X1
揚聲器X1
麵包板
官方程式編譯器 arduino-1.X.X以上版本
以下是電路圖
這次電路 還不算太難 在紅外線避障模組由上到下分別為 GND Vcc OUT EN 先說一下 何謂EN EN 致能接腳 假設 模組沒用到時 可以使用 EN腳輸入HIGH 訊號 使整個模組 暫停運作 輸入 LOW 訊號 則使模組 正常運作 用意在於有些設計是長時間使用 怕在沒必要的時候開著 除了浪費不必要的能源外 也同時可以讓模組用的比較久
接下來是程式碼
//Arduino 新手實作 紅外線避帳警報 by~ 阿俊
int IR_Objects = 3; // 紅外線接口
int spk = 13; // 揚聲器接口
int IR = 0; // 紅外線初始值
void setup()
{
pinMode(IR_Objects,INPUT); // 定義紅外線為輸入端
pinMode(spk,OUTPUT); // 定義揚聲器為輸出端
}
void loop()
{
IR=digitalRead(IR_Objects); // 定義IR_Objects=IR 並為讀取紅外線狀態
if(IR == HIGH) // 假設紅外線等於高電平
digitalWrite(spk, 1); // 則揚聲器響起
delay(IR); // 延遲時間等於IR作動時間
digitalWrite(spk, 0); // 關閉揚聲器
}
由程式可以看出 利用紅外線避障模組 所接收的電位狀態 來決定要不要讓喇叭響起 delay(IR) 我在此說明 delay常常看到都是使用數字 這次則用物件 因為 假設設定為1.5秒
延遲 但是紅外線避障模組 在同時間 執行多次 但聲音還在RUN 沒有間段 但是 設定延遲為物件作動 紅外線 HIGH 喇叭 也HIGH LOW 都 LOW 來達成 同步作動的效果
結論
在紅外線避障 在現實社會中 應用非常少 畢竟 信號容易干擾 距離短 則取而代之的 就是 超音波避障 現今交通工具裡 超音波避障 都隨處可見 例如 汽車 倒車時 聽見 逼逼逼~
越近 聲音越急 其原理 就是 利用聲波的反射來達成避障 有機會實作給大家看看 超音波的原理作動 這次的紅外線避障 就告一段落 下次再寫 利用紅外線避障 讓自走車 不撞壁
的實作文 先影片吊吊胃口吧
我是阿俊 謝謝大家~~~!!!
我想問你 蜂鳴器要接在哪邊 有點不清楚
版主回覆:(06/08/2015 12:23:48 PM)
依照程式去接 在Arduino所設定的腳位 我是設正接pin13腳 GND接負 試試看囉
那請問一下 如果我的事蜂鳴器 還需要改程式碼嗎 因為我測試時 避障模組有發亮 但是 蜂鳴器沒反應
版主回覆:(06/20/2015 09:58:31 AM)
如果可以的話 能看看你的的電路圖嗎? 正常來說有接的話應該都可以有可能喇叭本身問題 電路接錯 程式不對 ~~
一定要用蜂鳴器?可以等待3秒在停嗎?
版主回覆:(12/04/2018 10:12:09 PM)
不一定 ,可以喔 你加個 delay(3000); 就行了
如果使用超聲波 試不是要加一個腳位
版主回覆:(12/04/2018 10:14:14 PM)
還要加函示庫喔!
請問一下你那張Frirzing圖片中的避障模組是哪裡下載的?
能否給我載點? 我作業要用到 謝謝!
版主回覆:(12/04/2018 10:15:12 PM)
那個我自己拚的,就隨便找個電路+LED 拼合的XD