遙控器是LCD智能電視的開機(jī)必備,如果家里的電視遙控器壞了,那就只能錯(cuò)過好節(jié)目了,這時(shí)有個(gè)備品那該多好啊。
本項(xiàng)目教大家自己動(dòng)手DIY一個(gè)萬能電視遙控器。項(xiàng)目采用IR遙控技術(shù),工作時(shí)遙控器將代碼發(fā)送給電視機(jī),再由電視的MCU解碼并處理,來改變電視頻道。
項(xiàng)目開始前,我們首先須了解IR遙控的工作原理,知道遙控器發(fā)射的代碼,并制作自己的遙控解碼系統(tǒng),再寫下所有按鈕(例如 CH+, CH-, VOL+, VOL-, POWER, Settings)的所有解碼值。然后,將這些值發(fā)送給Arduino來實(shí)現(xiàn)萬能遙控,并完成本項(xiàng)目。

項(xiàng)目元器件清單:
1) Arduino
2) IR LED
3) 輕觸開關(guān)
4) 1k歐姆電阻器 x11
5) 220歐姆電阻器
6) PCB和引線
7) 電池(3.7V)
Arduino電視遙控器電路非常簡單,如果使用的是Arduino Atmega328p芯片,就需要按照圖示電路進(jìn)行時(shí)鐘和復(fù)位連接,圖中的ICSP可編程串行引腳用以上傳項(xiàng)目代碼,改變控制信號。

電路中,IR發(fā)光二極管的正極通過1k/220歐姆電阻器,連接于D3(數(shù)字引腳3);負(fù)極接地。11個(gè)輕觸開關(guān)用來處理11個(gè)不同的指令,它們的一端分別連接于D2-D13的不同數(shù)字引腳,另一端則分別通過一個(gè)1k歐姆電阻器接地。兩引腳插頭用來為電路和Arduino供電。
代碼如下:
#include
#include "LowPower.h"
IRsend irsend;
const int b1 = 2;
const int b2 = 4;
const int b3 = 5;
const int b4 = 6;
const int b5 = 7;
const int b6 = 8;
const int b7 = 9;
const int b8 = 10;
const int b9 = 11;
const int b10 = 12;
int timer;
int modeCounter = 0;
void wakeUp() {
timer = 0;
}
void setup() {
pinMode(b1, INPUT);
pinMode(b2, INPUT);
pinMode(b3, INPUT);
pinMode(b4, INPUT);
pinMode(b5, INPUT);
pinMode(b6, INPUT);
pinMode(b7, INPUT);
pinMode(b8, INPUT);
pinMode(b9, INPUT);
pinMode(b10, INPUT);
}
void loop() {
attachInterrupt(0, wakeUp, HIGH);
while (timer < 10000) {
if (digitalRead(b1) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b2) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b3) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b4) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b5) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b6) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b7) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b8) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b9) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
if (digitalRead(b10) == HIGH) {
timer = 0;
delay(50);
irsend.sendNEC(0x0000, 32); //Enter Remote Hex Value
}
delay(1);
timer = timer + 1;
}
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
上述代碼采用低功耗模式庫,以提高電池壽命,一次充電后可使用3-4個(gè)月。
審核編輯:湯梓紅
-
電視
+關(guān)注
關(guān)注
15文章
2629瀏覽量
79090 -
遙控器
+關(guān)注
關(guān)注
18文章
877瀏覽量
71717 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196781
發(fā)布評論請先 登錄
基于芯嶺技術(shù)XL2417D芯片的2.4G無線遙控器解決方案
【教程】圖文教程:詳解EWD22S-A01TR遙控器配對全步驟
霍爾元件在電視遙控器中的創(chuàng)新應(yīng)用——推薦迪仕科技全極低功耗DH481
智能語音遙控器低功耗BLE藍(lán)牙芯片
力芯微紅外遙控IC芯片ET4008MTC是家用遙控器的智能芯選
藍(lán)牙語音遙控器方案 NRF52840、HS6621
HarmonyOSAI編程萬能卡片生成(一)
微光遙控器為低光環(huán)境帶來智能與環(huán)保新選擇:永銘電容選型方案
藍(lán)牙語音遙控器:智能家居的智慧控制核心
用射頻芯片開發(fā)的家電遙控器特點(diǎn)介紹
基于Arduino Nano的萬能電視遙控器設(shè)計(jì)
評論