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

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

3天内不再提示

Arduino射频传感器解码器的制作

454398 来源:网络整理 作者:网络整理 2019-11-22 16:26 次阅读

步骤1:传感器模块

如上图所示,变送器包括开门传感器,运动检测器,布防遥控器以及用于对报警箱进行编程的无线键盘。事实证明,这些设备中没有两个使用相同的同步长度或位持续时间。除了消息长度以外,唯一的共同点是位的基本格式。每个位占用一个固定的时间段,零和一之间的差是高/低部分的占空比。

上面显示的漂亮波形并不是我第一次收到的。由于433 MHz频段中的流量很大,因此我必须确保在将示波器设置为执行一次触发之前就激活传感器。幸运的是,只要激活按键,传感器就会激活数据消息的多个副本,并且遥控器和小键盘会继续输出消息。通过使用示波器,我能够确定每个项目的同步长度和数据位持续时间。如前所述,同步时间不同,比特时间也不同,但是消息格式均具有低级同步,后跟24个数据位和一个停止位。这足以让我能够在软件中构建通用解码器,而不必对每个设备的所有不同细节进行硬编码。

步骤2:硬件

我最初使用PIC微控制器汇编语言构建了传感器解码器。我最近一直在玩Arduino变体,所以我想看看是否可以复制它。上面显示了简单的示意图,并且还有我的原型的图片。我所做的就是使用三根普通的跳线将Arduino Nano连接至RF接收器板。仅需电源和一条数据线即可。

如果您在“三合一时间和天气显示”上阅读了我的Instructable,您会发现我使用的是433MHz的通用RXB6接收器。您也许可以让真正便宜的接收器在该项目所需的短距离内工作,但是我仍然建议使用超级外差接收器。

步骤3:软件

软件将接收到的位转换为可显示的ASCII字符。它输出同步长度的值以及1位和0位的长度。因为我已经知道同步长度和位格式,所以我可以专门为它们编写软件。取而代之的是,我决定看看是否可以编写它来整理同步长度并自动找出数据位。万一我想尝试检测其他格式,那应该可以更轻松地进行修改。重要的是要注意,该软件不知道消息的第一位是1还是0。它假定它是1,但是,如果确定应该是零,它将求反。

通过使用INT0外部中断输入触发中断处理程序来确定同步脉冲和数据位的时间。 INT0可以在上升沿,下降沿,或在两个边沿或在稳定的低电平上触发。该软件在两个边沿都被中断,并测量脉冲保持低电平的时间。这简化了事情,因为消息开始/同步是一个低电平脉冲,并且可以根据它们的低电平时间来确定这些位。

中断处理程序首先确定捕获的计数是否足够长以至于不能被捕获。启动/同步脉冲。我使用的各种设备的同步脉冲分别为4、9、10和14毫秒。允许的最小/最大同步值的define语句位于软件的最前面,当前设置为3毫秒和16毫秒。传感器之间的位时间也有所不同,因此解码位的算法需要考虑到这一点。将第一位的位时间保存为与第一位有显着差异的后续位的时间。无法直接比较后续位时间,因此使用了“软键因子”定义(“变量”)。假设始终将第一个数据位记录为逻辑1,则开始进行位解码。将保存该值,然后将其用于测试后续位。如果后续数据位计数在已保存值的方差窗口内,则也将其记录为逻辑1。如果它在已保存值的方差窗口之外,则将其记录为逻辑0。如果逻辑0位时间比第一个位时间短,则设置一个标志来告诉软件在显示之前需要反转字节。该算法失败的唯一情况是消息中的位全为0。我们可以接受这种限制,因为这种消息是毫无意义的。

我感兴趣的所有传感器的消息长度均为24个数据位,但是软件不限于该长度。有一个最多七个字节的缓冲区(可以添加更多字节),并定义了最小和最大消息长度(以字节为单位)。该软件设置为收集位,将它们转换为字节,暂时存储它们,然后通过串行端口以ASCII格式输出。触发消息输出的事件是收到新的启动/同步脉冲。

步骤4:数据记录

该软件已设置为通过Arduino的串行(TX)输出以ASCII字符输出转换后的数据。制作PIC版本时,我需要连接PC上的终端程序以显示数据。 Arduino IDE的一个优点是它具有内置的串行监视器功能。我将串行端口速率设置为115.2k,然后将“串行监视器”窗口设置为相同的速率。这里的屏幕截图显示了一个典型的显示,其中包含我拥有的各种传感器的输出。如您所见,数据有时并不完美,但您可以轻松确定每个传感器的真实值。

步骤5:Sample Receiver Software

我提供了一个示例软件清单,该清单显示了如何使用收集的信息为您的应用程序接收一组特定的代码。设置此示例以模拟我的Etekcity远程插座之一。一个命令打开内置在Nano(D13)中的LED,另一个命令关闭LED。如果您的Arduino中没有内置LED,请添加电阻和LED,如图所示。在实际应用中,此功能将打开/关闭电源插座的电源(使用继电器或三端双向可控硅开关)。同步时间,位时间和预期的数据字节均已预先定义好,以便于修改。您可以使用其余的任何数据线来打开/关闭特定应用程序的功能,等等。只需添加适用的命令代码定义并在“回路”中替换LED开/关逻辑即可满足您的需求。
责任编辑:wv

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

    关注

    0

    文章

    34

    浏览量

    8263
  • Arduino
    +关注

    关注

    185

    文章

    6434

    浏览量

    185199
收藏 人收藏

    评论

    相关推荐

    超低功耗立体声编解码器Arduino评估板ARD-AUDIO-DA7212数据手册

    电子发烧友网站提供《超低功耗立体声编解码器Arduino评估板ARD-AUDIO-DA7212数据手册.rar》资料免费下载
    发表于 05-15 17:17 0次下载
    超低功耗立体声编<b class='flag-5'>解码器</b><b class='flag-5'>Arduino</b>评估板ARD-AUDIO-DA7212数据手册

    如何用Arduino制作一个简易自动喂鱼

    制作硬件电路了。 第2步:电路图和程序 我们可以将电路分为两部分,第一部分是步进电机,另一部分是超声波传感器。 将步进电机连接到驱动,然后根据下面的说明将驱动引脚连接到
    发表于 03-28 11:25

    视频编解码器-晶振应用选型方案简介

    随着科技的日新月异,视频编解码技术也将迎来新的发展机遇,5G网络的普及将进一步提升视频传输速度和质量,为视频编解码器的发展提供更广阔的空间。
    的头像 发表于 12-09 10:55 539次阅读
    视频编<b class='flag-5'>解码器</b>-晶振应用选型方案简介

    DTMF解码器原理是什么?

    DTMF 解码器原理
    发表于 10-27 08:29

    使用Arduino和PAJ7620手势传感器制作手势控制机器人

    使用Arduino和PAJ7620手势传感器制作手势控制机器人,简单程序即可实现。小小的传感器可以识别各种手势。它采用内置的空间传感器,可以
    发表于 09-27 06:17

    解码器卡住的原因?如何解决?

    解码器卡住
    发表于 09-19 08:27

    如何确认解码器和vpp的OpenCV接口是否正常工作?

    确认解码器和 vpp 的 OpenCV 接口是否正常工作
    发表于 09-19 08:18

    如何确认解码器是否能正常工作?

    确认解码器是否能正常工作:(url 为文件名或者 rtsp 连接地址)
    发表于 09-19 08:11

    HiFi音响有必要配解码器吗 hifi解码器起什么作用

    HiFi解码器在音频系统中起到以下几个重要作用:   1. 解码数字音频信号:HiFi解码器可以将数字音频信号(如Dolby Digital、DTS、FLAC、ALAC等格式)解码
    发表于 08-23 15:56 7896次阅读

    AMBA解码器产品手册

    解码器执行三个功能: ·它为每个总线从机生成从机选择信号(DSELx),表示需要传输到该从机。 ·当未选择从机时,它在仅地址传输期间产生从机响应信号(BWAIT、BLAST和BERROR)。 ·它可
    发表于 08-22 06:26

    安捷伦N8485A射频传感器

    安捷伦N8485A射频传感器 N8485A 是 Agilent 使用的 26.5 GHz 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率,例如多音和调制射频 (RF) 波形。
    的头像 发表于 06-19 16:24 327次阅读
    安捷伦N8485A<b class='flag-5'>射频传感器</b>

    安捷伦N8482A射频传感器6GHz

    安捷伦N8482A射频传感器 N8482A 是 Agilent 使用的 6 GHz 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率,例如多音和调制射频 (RF) 波形。
    发表于 06-19 16:08 153次阅读
    安捷伦N8482A<b class='flag-5'>射频传感器</b>6GHz

    安捷伦N8481A射频传感器参数指标

    安捷伦N8481A射频传感器 N8481A 是 Agilent 使用的 18 GHz 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率,例如多音和调制射频 (RF) 波形。
    的头像 发表于 06-19 15:50 660次阅读
    安捷伦N8481A<b class='flag-5'>射频传感器</b>参数指标

    Agilent安捷伦E9300A射频传感器

    安捷伦E9300A射频传感器 E9300A 是 Agilent 使用的 18 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率,例如多音和调制射频 (RF) 波形。
    的头像 发表于 06-19 14:43 291次阅读
    Agilent安捷伦E9300A<b class='flag-5'>射频传感器</b>

    U2001A射频传感器6GHz

    安捷伦U2001A射频传感器 U2001A 是 Agilent 使用的 6 GHz 0.1 瓦射频传感器。电子测试设备传感器测量波形的功率,例如多音和调制射频 (RF) 波形。
    的头像 发表于 06-19 10:20 395次阅读
    U2001A<b class='flag-5'>射频传感器</b>6GHz