|
在紅外遙控中,控制LED燈亮滅通常使用鍵值碼,因為用戶碼是遙控器的“身份標(biāo)識”(同一品牌同型號遙控器可能相同),而鍵值碼才對應(yīng)具體按鍵的功能。
簡單例程(以Arduino為例)
硬件需求
- Arduino開發(fā)板(如UNO)
- 紅外接收模塊(如VS1838B)
- LED燈、電阻(限流)
- 遙控器(需先解碼出鍵值)
代碼實現(xiàn)
#include <IRremote.h>
// 定義引腳
const int irReceiverPin = 2; // 紅外接收模塊引腳
const int ledPin = 13; // LED引腳
// 定義鍵值(需替換為實際解碼后的鍵值)
const unsigned int KEY_ON = 0x12345678; // 開燈鍵值
const unsigned int KEY_OFF = 0x87654321; // 關(guān)燈鍵值
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // 初始關(guān)燈
irrecv.enableIRIn(); // 啟用紅外接收
Serial.begin(9600); // 串口用于調(diào)試
}
void loop() {
if (irrecv.decode(&results)) { // 接收紅外信號
Serial.println(results.value, HEX); // 打印接收到的鍵值
// 根據(jù)鍵值控制LED
if (results.value == KEY_ON) {
digitalWrite(ledPin, HIGH); // 開燈
Serial.println("LED ON");
} else if (results.value == KEY_OFF) {
digitalWrite(ledPin, LOW); // 關(guān)燈
Serial.println("LED OFF");
}
irrecv.resume(); // 繼續(xù)接收下一個信號
}
}
使用說明
1. 先獲取鍵值:將代碼中的 KEY_ON 和 KEY_OFF 替換為實際遙控器按鍵解碼后的鍵值(可通過串口打印查看)。
2. 連線注意:紅外接收模塊的VCC接5V,GND接地,OUT接Arduino的2號引腳,LED通過電阻接13號引腳。
3. 調(diào)試技巧:先通過串口打印確認(rèn)能正確接收鍵值,再進(jìn)行控制邏輯編寫。 |
|