arduino紅外控制led(發射與接收)


網上有關紅外接收的帖子不少,但是關於使用arduino自制紅外發射器的帖子卻很少,經過網上搜索和自己摸索,給大家發個有arduino自制紅外發射器控制led亮滅的例子。關於本例我使用了兩塊arduino板,一塊用於發射,一塊用於接收。

一、紅外發射(開發板一)

 1 /*
 2 * 發射紅外線訊號
 3 *     注意! 紅外線發射器(IR LED)必須接到 pin 3, 不能接其它腳位,頭文件已經定義,所以下面不用設置pin3口的狀態
 4 */
 5 #include <IRremote.h>                  // 引用 IRRemote 函式庫
 6                              
 7 const int buttonPin = 4;                 // 按鍵(pushbutton)接在 pin 4
 8 int buttonState = 0;                     // 按鍵狀態
 9                              
10 IRsend irsend;                          // 定義 IRsend 物件來發射紅外線訊號
11                              
12 void setup()
13 {
14 pinMode(buttonPin, INPUT);             // 把 buttonPin 設置成 輸入
15 }
16                              
17 void loop()
18 {
19 // 讀取按鍵狀態
20 buttonState = digitalRead(buttonPin);
21                              
22 // 檢查按鍵是否被按下
23 // 有的話 buttonState 會是高電平輸出
24 if (buttonState == HIGH) {
25 // 發射紅外線訊號
26 irsend.sendNEC(0x4CB3817E, 32);   // 這個編碼即你按的鍵(接pin4)的編碼,可以隨意更改,如果要控制其他設備,只需將此編碼改為相應編碼就行
27 }
28 }

將以上程序燒入開發板一中,發射部分就制作完畢。下面是紅外接收部分。

二、紅外接收(開發板二)

 1 //本例來自於紅外接收模塊的IRremote自帶范例
 2 //已經作出了修改
 3 //改為當有遙控器的按鍵按下時,接在數字引腳4上的發光LED就會點亮,再按一下按鍵,led熄滅
 4 /*電路連接
 5  *紅外接收器的VOUT接在數字引腳11上,GND接控制板的GND,VCC接控制板上+5V
 6 *發光二極管引腳接在數字引腳4上,通過220歐姆電阻回到控制板的GND
 7 *效果,當遙控器按下按鍵時,發光二極管就會閃爍,同時電腦的串口會出現按鍵的命令編碼.
 8 */
 9  
10   
11 #include <IRremote.h>
12   
13 int RECV_PIN = 11;//定義紅外接收器的引腳為11
14 int LED_PIN=4;//定義發光LED引腳數字4
15 int a=0;
16 IRrecv irrecv(RECV_PIN);
17   
18 decode_results results;
19   
20 void setup()
21 {
22   Serial.begin(9600);
23   irrecv.enableIRIn(); // 初始化紅外接收器
24   pinMode(LED_PIN,OUTPUT);//設置發光LED引腳數字4
25 }
26   
27 void loop() {
28   if (irrecv.decode(&results)) {
29 if(results.value==0x4CB3817E &a==0) //此處的32位值與發射部分發射的值要保持一致
30 {
31     digitalWrite(LED_PIN,HIGH);//LED點亮
32 a=1;
33 }
34 else if(results.value==0x4CB3817E &a==1)
35 {
36 digitalWrite(LED_PIN,LOW);//LED熄滅
37 a=0;
38 }
39     irrecv.resume(); // 接收下一個值
40   }
41 }

將以上部分程序燒入開發板二即完成接收部分制作。
兩塊開發板上電,當按下發射板上按鍵時,led點亮,再次按下發射板上按鍵是,led熄滅。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM