目前在学单片机,已经学会做流水灯了,怎么做红外遥控灯?

funnyapp


已经会用单片机实现流水灯的功能,说明对单片机有了初步的入门知识,会配置单片机的GPIO口输出了,建议再学习以下单片机的GPIO的输入,比如按键输入。因为红外遥控会使用到GPIO输出和GPIO输入,还用会要定时器甚至中断。下面从硬件设计和程序设计介绍一下红外遥控的设计。

1.红外发射电路的设计

红外遥控涉及到一发一收,即一个红外发射管和一个红外接收管配合使用。红外发射管一般是透明的,跟发光二极管LED驱动方法一致。如下图所示,是设计的红外发射电路。单片机输出高电平时三极管导通,发射管工作发出红外光,这里也可以用按键来控制。

2.红外接收电路的设计

红外接收管用来接收发射管所发出的红外光,红外接收管可以用普通的接收管,也可以使用专用的红外接收头,如VS1838系列接收头,下图是使用1838接收头实现的红外电路。当接收到红外光后,1838输出低电平。

如果你是通过单片机开发板来学习的,那么板子上应该带有红外接收头,并且配有红外遥控器,尽可能的利用手边的资源。

3.简单红外遥控的实现

硬件电路设计好之后,就要设计程序了。你可以使用红外遥控控制板子上LED灯的亮灭、流水灯的花样变换、继电器的工作灯。这种简单的指令只需要检测红外输出的电平就可以。如果单片机检测到低电平,说明有人按了红外遥控器,把继电器打开即可,不需要走协议。

4.红外数据通信的实现

如果用通过红外来传输数据的话,就需要遵循一定的协议了。目前常用的红外通讯协议是NEC的协议,如下图规定了逻辑0和逻辑1的脉冲宽度。

逻辑0的时间为1.12ms,脉冲宽度为560us;逻辑1的时间为2.25ms,脉宽为560us,除此之外一帧完整的数据应该包括:引导码、8位的客户码、8位客户码的补码、8位的按键值、8位按键值的补码等。

在编写程序时可能用到单片机的定时器资源、中断资源、捕捉等。所以NEC协议的实现,对初学者来说还是比较复杂的。建议先从简单的遥控命令入手。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。


玩转嵌入式


相应的教程应该有很多,自己去网上检索并筛选出有价值的信息也是学习单片机中必不可少的过程。红外遥控涉及到一些通信的知识,时钟对上后,加之一些通信的协议,就可以发送控制信息达到控制的效果了。题主看样子还是新手,建议可以买一套集成度较高的开发板(淘宝上很多,百来块足够),各个模块都有,按照附送的代码和数据手册跑一遍,对于单片机的认识和理解绝对有大幅提升。几年前也是这么过来的,一点经验,希望有帮助。


小白Talk


如果是给信号到单片机的话你记住红外接收三极管的电源和输出信号,把信号源引接到单片机的信号源,如果是只需要红外信号接收管控制开关功能的话,很简单,一个红外信号接收三极管,一个1k1/4W的电阻,一个9014三极管,一个继电器就可以了。


分享到:


相關文章: