上一篇文章介紹了 arduino接受智能家具系統中的紅外遙控的解碼
在此基礎上,今天就做一個遙控器控制的燈,我們可以將燈換成繼電器,這樣的話就實現了,用紅外遙控機,控制家裡的電器開關,比如燈,電視,插座,洗衣機等
接線圖幾原理圖如上,一個板子一個紅外接收器,一個燈(可以換成你想控制的任何設備)。
程式如下,燒錄進arduino,然後用廢棄的遙控器就可以實現了。
遙控器的解碼替換一下,不同的按鍵有不同的代碼,以下只做實例
#include<IRremote.h>
const int vcc = 2; //紅外收頭正極
const int gnd = 3;
const int sensorIn = 4; //紅外接收端
const int switchOutput = 5; //繼電器控制輸出端
IRrecv irrecv(sensorIn);
decode_results results;
//保存當前繼電器輸出端的狀態
int currentSwitchOutputState = HIGH;
void setup() {
//初始化工作,設置 vcc 腳為高電平,gnd為低電平
pinMode(vcc, OUTPUT);
pinMode(gnd, OUTPUT);
digitalWrite(vcc, HIGH);
digitalWrite(gnd, LOW);
pinMode(switchOutput, OUTPUT);
irrecv.enableIRIn(); //開始接收紅外信號
}
void loop() {
// 解碼成功,收到一組紅外線信號
if (irrecv.decode(&results)) {
//0xffa25d是紅外遙控器上的開關鍵
if(results.value==0xffa25d)
{
currentSwitchOutputState = currentSwitchOutputState == HIGH ? LOW : HIGH;
digitalWrite(switchOutput, currentSwitchOutputState);
}
irrecv.resume();
}