//------------------------------------------------ //author:Victor Chen //web :www.vic8051.com //參考資料:Arduino實作入門與應用 ----台灣/松崗 //------------------------------------------------ //ar21 Arduino 驅動學習型遙控器 #include //引用軟體串列程式庫 SoftwareSerial ur1(2,3); //指定產生ur1串列介面腳位 int led = 13; //設定LED腳位 int k1 = 7; //設定按鍵腳位 //-------------------------------------- void setup()//初始化設定 { Serial.begin(9600); ur1.begin(9600); pinMode(led, OUTPUT); pinMode(led, LOW); pinMode(k1, INPUT); digitalWrite(k1, HIGH); } //----------------------------------- void led_bl() //LED 閃動 { int i; for(i=0; i<1; i++) { digitalWrite(led, HIGH); delay(150); digitalWrite(led, LOW); delay(150); } } //-------------------------------------- void op(int d) //發射內部某組遙控器信號 { ur1.print('T'); led_bl(); ur1.write('0'+d); led_bl(); Serial.write('0'+d); } //-------------------------------------- void ip(int d) //學習內部某組遙控器信號 { ur1.print('L'); led_bl(); ur1.write('0'+d);led_bl(); } //----------------------------------- void loop() //主程式迴圈 { char c; led_bl(); Serial.print("IR uart test : \n"); Serial.print("1:txIR0 2:Learn:IR0 \n"); op(0); //發射內部第0組遙控器信號測試 while(1) { if (Serial.available() > 0) //有串列介面指令進入 { c=Serial.read();//讀取串列介面指令 if(c=='1') { Serial.print("op0\n"); op(0); led_bl();} if(c=='2') { Serial.print("ip0\n"); ip(0); led_bl();} } //掃描是否有按鍵,若有發射第0組信號出去 if( digitalRead(k1)==0 ) { op(0); led_bl(); } } }