0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样使用Arduino控制电视

454398 来源:网络整理 作者:佚名 2019-10-31 17:21 次阅读

步骤1:准备接收信号

怎样使用Arduino控制电视

首先,您需要获得简介中提到的IR LED接收器

您可以在这里获得一个:http://www.adafruit.com/products/157

它们的价格为2美元,不包括运输和处理费用。

因此,您要按照第一个方法连接接收器。图片。

我强烈建议将IR接收器和遥控器放在鞋盒或较暗的物品中(当然是同一鞋盒)。这样可以确保干扰最少,并且代码更清晰,因此您不必为一项简单的任务就对Arduino进行12次编程。另外,请确保您不妨碍人们看电视。

并且要下载名为IR_RECORD.PDE的文件并将其打开到Arduino程序中。

我希望使用USB电缆将Arduino插入您已经执行第2步!

第2步:接收信号

因此您要将程序上传到您的您已在最后一步中下载了Arduino。

您要正确连接IR接收器。

一切都正确设置后,Arduino便已打开并连接到计算机。单击Arduino程序中的按钮(如图中所圈出的按钮),打开串行监视器。一旦启动并运行。您需要找到一个您想用来控制某物的遥控器。我的意思是:

-查找要控制的遥控器

-将其指向接收器

-按下您想要一次获得代码的按钮

串行监视器

-将整个代码粘贴到记事本或写字板中-进行第3步

第3步:解释信号

您将得到一堆数字,后跟“ usecs”或“ usec”。

请确保已将所需的信号复制到了一个字垫中,以方便参考。像这样:

500usec,300usec

600usec,1200usec

但是会有更多的数字。

现在在程序中,您会看到很多次: br》

delayMicroseconds();

pulseIR();

您要获取第一个数字并将其放在delayMicroseconds(“ here”)括号中。 value

并且您要从与delayMicroseconds()之一相同的行中获取第二个数字;值并将其放在pulseIR()的括号中;值。

示例:

说要在串行监视器上获取此值:

OFF ON

1660 usec,580 usec

1640 usec,560 usec

要输入相应的值

例如:

delayMicroseconds(1660);

pulseIR(580);

delayMicroseconds(1640);

pulseIR(560);

这太可恶了容易。

一旦获得所需的代码,请在Arduino程序中打开IR_SEND.pde文件,然后将您从串行监视器获得的值放在括号之间,方法与我向您展示的方法相同。

下一步将显示我如何使用Comcast遥控器进行此操作的示例。

步骤4:发送信号

现在,一旦有了所需的代码,并用您要发送的信号上载了程序,您要做的就是将IR LED挂接到针脚13,然后类似于图中的示意图接地。图片。如果您有Duemilanove Arduino,则不需要电阻,因为它具有用于PIN 13的内置电阻,因此您不必担心。

这也可以通过ATTINY 8引脚微控制器来实现尺寸。我有一个,但我不确定如何使用它。

现在,我将向您展示如何执行此操作的真实示例。

再次,这不是我的密码,我只是复制并粘贴以便于理解。

所以当我按下Comcast遥控器上的频道向上按钮时,我得到了这段代码。如果您有使用小型黑色遥控器的小型黑匣子,则将拥有这种遥控器。它们充当只能转换通道的模数转换器盒。

这是串行监视器代码:

已接收:

OFF ON 《363》 usec,280 usec

820 usec,300 usec

1580 usec,320 usec

640 usec,240 usec

2740 usec,240 usec 《1280》 1280 usec,240 usec 《12》 usec,240 usec

1120 usec,240 usec

2600usec,240usec

12740usec,240usec

840usec,240usec 《980》 980usec,240usec 《700》 700usec,240usec

700usec,240usec

720 usec,240 usec

2460 usec,260 usec

700 usec,240 usec

700 usec,240 usec

14904 usec,260 usec

820 usec,240 usec

1660 usec ,240 USEC

700 USEC,260 USEC

2740 USEC,240 USEC

1240 USEC,240 USEC

1260 USEC,240 USEC 1100 USEC,240 USEC 《26》 2620,240 USEC usec

12720 usec,260 usec

840 usec,220 usec 《20》 usec,240 usec

1780 usec,260 usec 《700》 c,240 usec

700 usec,240 usec

2480 usec,240 usec

700 usec,240 usec

700 usec,240 usec

这是我从原始数据中编写的代码通过将代码放入以下代码即可:

//此草图将每隔十秒钟更改一次频道,以便您可以在看电视的同时做其他事情

//而不必更改频道,例如在笔记本电脑

//众所周知,按下按钮是如此困难,所以为什么不使其自动化呢?

int IRledPin = 13;//连接到数字引脚13的LED

//当草图开始时,setup()方法运行一次

void setup(){

//将IR数字引脚初始化为输出:

pinMode(IRledPin,OUTPUT);

Serial.begin(9600);

}

无效循环()

{

SendChannelUpCode();

delay(20 * 1000);//等待二十秒(20秒* 1000毫秒),以不同的时间间隔更改此值。

}

//此过程向IRledPin

//发送38KHz脉冲一定的微秒数。每当需要发送代码时,我们都会使用此方法。

void pulseIR(long microsecs){

//我们将从等待等待的微秒数开始倒数

cli();//关闭所有后台中断,而(microsecs》 0){

//38 kHz大约高13微秒,而低13微秒

digitalWrite(IRledPin,HIGH);//这大约需要3微秒的时间

delayMicroseconds(10);//闲逛10微秒

digitalWrite(IRledPin,LOW);//这也需要大约3微秒

delayMicroseconds(10);//闲逛10微秒

//所以总共26微秒

微秒-= 26;

}

sei();////将它们重新打开

}

void SendChannelUpCode(){

//这是CHANNEL +的代码,用于电视COMCAST

delayMicroseconds(36328);//Time off(LEFT column)

pulseIR(280);//打开时间(RIGHT列)《-------请勿将这些UP

delayMicroseconds(820);

pulseIR(300);

delayMicroseconds(1580);

pulseIR( 320);

delayMicroseconds(640);

pulseIR(240);

delayMicroseconds(1280);

pulseIR(240);

delayMicroseconds(1240);

pulseIR(240) ;

delayMicroseconds(1120);

pulseIR(240);

delayMicroseconds(2600);

pulseIR(240);

delayMicroseconds(12740);

pulseIR(240);

delayMicroseconds(840);

pulseIR(240);

delayMicroseconds(980);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(720);

pulseIR(240);

delayMicroseconds(2460);

pulseIR(240);

delayMicroseconds( 700);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(14904);

pulseIR(240);

delayMicroseconds(820) ;

pulseIR(240);

delayMicroseconds(1600);

pulseIR(240);

delayMicroseconds(700);

pulseIR(260);

delayMicrose conds(2740);

pulseIR(240);

delayMicroseconds(1240);

pulseIR(240);

delayMicroseconds(1260);

pulseIR(240);

delayMicroseconds( 1100);

pulseIR(240);

delayMicroseconds(2620);

pulseIR(240);

delayMicroseconds(12720);

pulseIR(260);

delayMicroseconds(840) ;

pulseIR(220);

delayMicroseconds(2080);

pulseIR(240);

delayMicroseconds(1780);

pulseIR(260);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(2480);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

delayMicroseconds(700);

pulseIR(240);

}

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电视
    +关注

    关注

    15

    文章

    2487

    浏览量

    75687
  • Arduino
    +关注

    关注

    188

    文章

    6471

    浏览量

    187225
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino实现CAN总线通信呢

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 223次阅读

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型
    的头像 发表于 11-19 15:45 984次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 975次阅读

    怎样Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino的程序代码。
    的头像 发表于 07-30 09:14 925次阅读
    <b class='flag-5'>怎样</b>用<b class='flag-5'>Arduino</b>测试锂电池容量

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小呢?

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小,日志级别已经最低了,分区不能动,已经是1.9M的OTA分区配置了,怎样还能缩减大小,蓝牙功能能否裁剪
    发表于 06-28 11:27

    Arduino怎样配置LVGL8.1.0访问spiffs里面的字库或图片?

    抱歉把Arduino的内容发在这个版块了. 在Arduino的示例中LITTLEFS_test.ino SPIFFS_Test.ino FFat_Test.ino已经测试成功, 并且使用ESP32
    发表于 06-19 06:15

    使用idf.py命令方式编译,怎样才能编译arduino的库,并且在项目中可调用?

    在编译过程中,提示找不到对应的头文件。 请问使用idf.py命令方式编译,怎样才能编译arduino的库,并且在项目中可调用。
    发表于 06-13 06:56

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    开源DIY!用 ESP32 制造迷你复古小电视

    MAKER :陳亮 这款迷你的复古电视机非常的小巧可爱,它会不会成为你的桌摆新宠呢!它无法接收模拟电视广播信号,但是它可以通过微型 SD 卡播放录像带。你可以多准备几套 SD 卡来播放你喜欢的节目
    发表于 05-27 11:01

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机。步进电机是一种电动机,可以通过下达特定的指令来控制每个步进的角度,从而使电机旋转到指定的位置。在本文
    的头像 发表于 02-14 16:29 2063次阅读

    arduino中while循环怎么跳出

    执行某段代码的情况。然而,如何在合适的时机跳出 while 循环是一个需要注意的问题。本文将详细介绍 Arduino 中 while 循环的基本概念,以及如何使用不同的技巧跳出该循环来实现代码的灵活控制
    的头像 发表于 02-14 16:22 2624次阅读

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本Arduino RGB LED电路,并以一些基本颜色为例循环。
    的头像 发表于 02-11 10:28 5015次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB LED

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服电机。
    的头像 发表于 02-11 10:11 2850次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器<b class='flag-5'>控制</b>伺服电机

    如何设置Arduino IR发射器电路

    在本指南中,您将学习如何设置 Arduino IR发射器电路。它使您可以控制IR(红外线)LED,并从Arduino发送任何远程控制代码。这意味着你可以用它来
    的头像 发表于 02-11 09:44 854次阅读
    如何设置<b class='flag-5'>Arduino</b> IR发射器电路

    如何使用arduino控制接触器?

    我将避免铅酸电池过载。我想通过使用近 30A 的接触器和 arduino uno 板来控制电池过载。如何使用arduino控制接触器?
    发表于 01-22 07:14