4716|2

224

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

模拟串口红外发射 [复制链接]

很久没有在论坛发东西了,那就分享一个最近项目中用到的红外数据发送方法。该方案不适合红外数据编码为RC5NEC的发送和接收,适用于纯数据发送和接收。

      废话少说,红外发射和接收电路没有什么特殊的地方,红外发射和接收都是采用38K载波方式,接收采用VS1838BVS1838B接收到38K载波信号时,IR_OUT会输出低电平,未接收到信号时,输出高电平。电路如下所示:

 IR_IN要接到PWM信号输出引脚,IR_OUT要接到串口的接收引脚。既然使用串口接收红外信号,那么红外信号发送当然要使用串口发送啦。我这边使用的是IO口模拟串口方式,而这个IO口必须是PWM信号输出引脚。

接下来讲下红外信号发送原理,首先单片机硬件上需要具备两个定时器,其中一个必须带有PWM输出功能,配置成频率为38KHz,占空比50%的信号。既然使用串口发送,当然需要波特率,目前我使用的波特率为600,效果好;建议不要将波特率设置超过1200,不然传输距离会变短;波特率越低,传输距离越大。另外一个定时器用于精确延时,用于每个数据位的发送延时,T = 1000 / 波特率。不同的单片机特性不一样,因此T的值会有协偏差,微调下T值,会有更好的效果。

最后说下数据发送方法,我这边串口数据发送格式:使用8位数据位,1个停止位,无奇偶校验位,低位优先发送。当数据位为1时,不发送载波信号(关闭PWM信号输出);当数据位为0时,发送载波信号(开启PWM信号输出)。发送的信号经过VS1838B处理后就会得到高低电平信号,最后经串口解析出来。接收端有时会接收到一些乱码,我这边使用的双字节发送,第一个字节用于标识,第二个字节是数据,这样效果会比较好。还有一种数据发送方法:需要硬件串口,串口波特率设置不得高于1200;还需要一个定时器用于PWM信号输出,同样用于38K载波生成;还需要一个模拟开关芯片用于控制PWM信号输出。这样只要把数据往串口里填,就可以发送了。电路如下:

文章末尾有红外数据发送的代码,可以参考下。接收部分就不上传了,只要将串口设置成接收模式,波特率,数据位,停止位等跟发送端一致就可以了。好了,你们可以自己搞腾了,看看能不能DIY出新的功能


此内容由EEWORLD论坛网友ilovefengshulin原创,如需转载或用于商业用途需征得作者同意并注明出处

UART_IR.rar

6.08 MB, 下载次数: 705

此帖出自stm32/stm8论坛

最新回复

楼主你好  你这个38K好像不太对吧  详情 回复 发表于 2021-5-17 21:32
点赞(1) 关注(1)
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
楼主你好  你这个38K好像不太对吧
此帖出自stm32/stm8论坛
 
 

回复

224

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

对的,我在项目中已使用,没问题的。该方案不适合红外数据编码为RC5、NEC的发送和接收,适用于纯数据发送和接收。

此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表