對射式紅外線感測器
功能:對射式紅外線感測器。
材料接線:對射式紅外線感測器*10、杜邦線(公對公)*2、杜邦線(公對母)*30、麵包板*1
每一個對射式紅外線感測器的接腳VCC接5V或3.3V,接腳GND接板子的GND,依序將第1顆2感測器的中間接腳OUT接接位 2,第2顆接 3,依序接到 11

程式:
|
/* 基本程式名稱:1個對射式紅外線感測器 */ void setup ( ) { pinMode(2, INPUT); // 將接在腳位 2 對射式紅外線感測器設定為 INPUT 接收訊號的狀態 Serial.begin(9600); } void loop(){ Serial.println(digitalRead(2)); //顯示接腳 2的感測器狀態 } |
|
/* 程式名稱:10個對射式紅外線感測器 */ float time; int status[11]; // 設定有11個陣列變數,存放每個感測器的偵測狀態,陣列第0個不予理會 void setup ( ) { for (int i=1; i<=10; i++){ //設定迴圈 i 為1∼10 pinMode(i+1, INPUT); // 將接在腳位 2∼11,編號第1∼10共10個對射式紅外線感測器設定為 INPUT 接收訊號的狀態 status[i]=0; // 將每個感測器的狀態用陣列變數設為預設值0,表示沒有物品通過 } Serial.begin(9600); } void loop() { time=(float)micros()/1000000; for (int i=1; i<=10; i++){ //設定迴圈 i 為1∼10 if (digitalRead(i+1) == LOW) //假如感測器沒有物品通過,將狀態陣列變數設為0 { status[i]=0; // 將每個感測器的狀態用陣列變數設為預設值0,表示沒有物品通過 } else if (status[i] == 0) //否則(有物品通過),再判斷剛才的狀態為0(剛才沒物品通過),就顯示相關感測器編號及時間 { Serial.print(i); //顯示感測器編號 Serial.print("="); Serial.println(time,6); //顯示時間 status[i] = 1; //設定感測器的狀態為1,表示有物品通過 } } } |