|
電路接法:
.jpg)




程式碼:
/*
* IRPD-101 紅外線範例
* 作者 copyleft 2006 Liu Shih Ta (
這個 E-mail 地址已經被防止灌水惡意程式保護,您需要啟用 Java Script 才能觀看
)
* 網站 http://media.techart.tnua.edu.tw/arduino/
*/
int centerSIG = 5; //設定中間信號腳位
int leftSIG = 6; //設定左邊信號腳位
int rightSIG = 7; //設定右邊信號腳位
int leftLedPin = 11; //設定左邊閃爍的LED腳位
int centerLedPin = 10; //設定中間邊閃爍的LED腳位
int rightLedPin = 9; //設定右邊閃爍的LED腳位
int readL; //宣告左邊取得的變數值
int readR; //宣告右邊取得的變數值
void setup(){
pinMode(leftLedPin,OUTPUT); //設定左中右三個LED的PIN腳為輸出模式
pinMode(centerLedPin,OUTPUT);
pinMode(rightLedPin,OUTPUT);
pinMode(leftSIG,OUTPUT); //設定左右PIN腳為輸出模式
pinMode(rightSIG,OUTPUT);
pinMode(centerSIG,INPUT); //設定中間PIN腳為輸入模式
Serial.begin(9600); //初始化Serial Port 速度為 9600
}
void loop(){
digitalWrite(leftSIG,HIGH); //取得左邊的數值
delay(1);
readL = digitalRead(centerSIG);
digitalWrite(leftSIG,LOW);
digitalWrite(rightSIG,HIGH); //取得右邊的數值
delay(1);
readR = digitalRead(centerSIG);
digitalWrite(rightSIG,LOW);
Serial.println(readL); //印出數值
Serial.println(readR);
if (readL == 1 && readR == 0){ //如果左邊有信號 = 0 則閃爍左邊的LED
digitalWrite(leftLedPin,HIGH);
delay(1);
digitalWrite(leftLedPin,LOW);
}
if(readL == 0 && readR == 1){ //如果右邊有信號 = 0 則閃爍右邊的LED
digitalWrite(rightLedPin,HIGH);
delay(1);
digitalWrite(rightLedPin,LOW);
}
if(readL == 0 && readR == 0){ //如果中間有信號 = 0 則閃爍中間的LED
digitalWrite(centerLedPin,HIGH);
delay(1);
digitalWrite(centerLedPin,LOW);
}
}
|