遥控器是LCD智能电视的开机必备,如果家里的电视遥控器坏了,那就只能错过好节目了,这时有个备品那该多好啊。
本项目教大家自己动手DIY一个万能电视遥控器。项目采用IR遥控技术,工作时遥控器将代码发送给电视机,再由电视的MCU解码并处理,来改变电视频道。
项目开始前,我们首先须了解IR遥控的工作原理,知道遥控器发射的代码,并制作自己的遥控解码系统,再写下所有按钮(例如 CH+, CH-, VOL+, VOL-, POWER, Settings)的所有解码值。然后,将这些值发送给Arduino来实现万能遥控,并完成本项目。

项目元器件清单:
1) Arduino
2) IR LED
3) 轻触开关
4) 1k欧姆电阻器 x11
5) 220欧姆电阻器
6) PCB和引线
7) 电池(3.7V)
Arduino电视遥控器电路非常简单,如果使用的是Arduino Atmega328p芯片,就需要按照图示电路进行时钟和复位连接,图中的ICSP可编程串行引脚用以上传项目代码,改变控制信号。

电路中,IR发光二极管的正极通过1k/220欧姆电阻器,连接于D3(数字引脚3);负极接地。11个轻触开关用来处理11个不同的指令,它们的一端分别连接于D2-D13的不同数字引脚,另一端则分别通过一个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个月。
审核编辑:汤梓红
-
电视
+关注
关注
15文章
2623浏览量
78638 -
遥控器
+关注
关注
18文章
871浏览量
71137 -
Arduino
+关注
关注
190文章
6515浏览量
195975
发布评论请先 登录
智能语音遥控器低功耗BLE蓝牙芯片
力芯微红外遥控IC芯片ET4008MTC是家用遥控器的智能芯选
蓝牙语音遥控器方案 NRF52840、HS6621
蓝牙语音遥控器:智能家居的智慧控制核心
霍尔元件DH481在电视遥控器中的应用
技术再进化——工业遥控器技术要求更高
效率大升!AI赋能鸿蒙万能卡片开发
数字遥控器
定制遥控器主要分为哪些步骤?
RF遥控器厂家:射频遥控器将成为未来的控制主流
如何选购适合的拷贝遥控器——增配遥控器教程来啦

基于Arduino Nano的万能电视遥控器设计
评论