Arduino定时器冲突导致红外遥控功能失效

文章讲述了在将红外遥控功能集成到Arduino项目时遇到的定时器冲突问题,通过查阅文档,作者决定保留红外库对定时器2的使用,将自身定时器程序改用定时器1,同时提醒读者注意针脚的合理分配以避免冲突。
摘要由CSDN通过智能技术生成

在将多个模块程序融合到一个Arduino项目中时,发现红外遥控功能无法正常工作。经过检查,发现红外程序(红外库)和我的定时器程序都使用了定时器2,导致冲突。

arduino红外库使用了定时器2。

解决过程

  1. 排查问题原因
    • 首先检查了红外遥控模块的代码,发现它使用了定时器2来控制红外信号的发送频率。
    • 回顾了自己的定时器程序,也发现它使用了定时器2来执行某些周期性任务。
    • 由于两个程序都使用了相同的定时器,导致了冲突,使得红外遥控功能无法正常工作。
  2. 查阅文档和资料
    • 为了解决冲突,我查阅了Arduino的官方文档和相关资料,了解了Arduino板上可用的定时器及其配置方法。
    • 我发现除了定时器2,Arduino Uno还提供了定时器0、定时器1等其他定时器资源。
  3. 修改定时器程序
    • 考虑到红外遥控模块的代码是现成的,需要修改的话,得修改底层库,且已经经过测试,我决定保留它的定时器设置,即继续使用定时器2。
    • 因此,将定时器程序中的定时器2改为定时器1。通过调整代码中的定时器配置部分

注意事项:

    • 01RxTx 针脚,这两个针脚一般作为串口使用,非串口设备尽量不占用该针脚。
    • 23为中断口,分别对应中断0、中断1,需要中断功能的设备,必须接入此。
    • 213A0A5,共18个针脚,都可以作为数字针脚,编号连起来,分别是219
    • 13针脚只能为OUTPUT模式,只能作为输出端,不能用作输入端。
    • A6A7针脚只能用做模拟信号,不能用作数字信号(第一版画原理图的时候,使用了模拟信号引脚来控制红外,发现控制不了)。
    • 总结:一般情况下,除了0113A6A7这几个针脚比较特殊外,其他的针脚都可以按照正常功能使用。212A0A517个脚,可以放心使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值