• Increase font size
  • Default font size
  • Decrease font size
  • default color
  • cyan color
  • red color

Arduino.TW樂園

Member Area
Arduino + IRPD-101 紅外線模組 PDF 列印 E-mail
作者是 xlinx   
週一, 11 十二月 2006 23:19

電路接法:

 

程式碼:

/*
* 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); 
    }
   
}


blog comments powered by Disqus
最近更新在 週四, 03 六月 2010 13:39