【Arduino】與紅外線計數器實作

同樣是紅外線的應用,前一個接收器在應用的時候是考慮到接收的內容,也就是不同的按鈕要有不同的字串,以辨識出到底是哪一個按鈕被按下去,然後才可以根據不同的按鈕做出不同的回應,以達到紅外線遙控的功能。然而,紅外線的另外一個應用則不是用來控制,只要單純想要用來檢測前面有沒有東西,或是用來對於前面經過的事物做一個簡單的計次功能,此時要使用的就是包括發射以及接收紅外線的成對的模組,由於它們經常被拿來做為自走車的避障機制,因此常被稱為避障模組。以下就是我們這次實習的對象:

這個模組已經把所有的事情做到非常簡單了,它提供了4支接腳,分別都有標示文字在上面。另外有兩個旋鈕則分別可以調整其靈敏度。如上圖最下方的GND就是接到Arduino的GND,它旁邊的那支接腳標示著「+」就是要接到5V的電源,「+」上面那支就是信號輸出接腳,最後一支腳則不需要連接使用。由於它會針對前方是否有障礙物決定要輸出HIGH或是LOW,是屬於數位的信號,所以把它連接到GPIO的任何一支接腳都可以。在此例,我們把它連接到第9支腳,如下所示:

本模組的程式非常簡單,只要讀取第9支腳的電位就可以開始計算在紅外線前面物體的經過次數,如下所示:

[code]
int count=0;
void setup() {
Serial.begin (9600);
pinMode (9, INPUT);
}

void loop() {
Serial.print ("Count: ");
if (!digitalRead(9)) {
count++;
}
Serial.println (count);
delay (100);
}
[/code]

這個程式以每0.1秒的速度來計算前面物體出現的次數,如果物體一直停留在那裡的話會一直不斷地計數,因此如果需要做一個好的計數器,需要再多加一些條件上的判斷才行。程式的執行結果如以下的監控視窗所看到的樣子:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *