上篇文章中介绍了震动传感器、继电器和喇叭的一个案例,这篇文章在上篇文章的基础上进行一个扩展,增加一个 433M 无线射频模块。
433M无线射频是一种无线通讯技术,利用无线电波进行通信,传输距离较远,广泛应用于无线数据传输、遥控、遥测、无线电定位、无线电导航等领域。
433M无线射频技术具有传输距离远、穿透能力强、传输速度快、成本低、功耗低、使用方便、易于集成和小型化等优点,因此在物联网、智能家居、工业自动化等领域得到了广泛应用。
433M 无线射频模块的实物如下图:
从实物图可以看出 433M 模块分为两部分,左边的是接收模块,右边的是发射的按键。右边的按键有四个,分别是 A、B、C 和 D,右边有四个按键的遥控器,是不是在安保人员手里经常可以看到,他们用来抬起小区门口的道杆……。当按键按下,左边的模块会进行接收。放大来看一下接收模块,如下图:
接收模块上黑色的芯片是用来解析按键波形的,黑色芯片右小角黄色的线圈是天线。
接收模块有 7 个针脚,分别是 GND、5V、D0、D1、D2、D3 和 VT。其中 A、B、C、D 四个按键对应 D0、D1、D2、D3 三个针脚。
当按键被按下后,针脚会送出高电平到开发板,那么也就是说,当单片机接收到来自 433M 送来的高电平时,就得知指定的按键被按下了。
用无线模块控制喇叭,其实是控制继电器。当单片机收到无线模块送来的高电平时,给继电器送去低电平,继电器的 COM 和 NO 两个口吸合后,喇叭的电路形成通路,那么喇叭就会响起!
代码如下:
#include <intrins.h>
#include "reg52.h"
sbit D0_ON = P1 ^ 2;
sbit D1_OFF = P1 ^ 3;
sbit switcher = P1 ^ 1;
void Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while (1)
{
if (D0_ON == 1)
{
switcher = 0;
}
if (D1_OFF == 1)
{
switcher = 1;
}
}
}
从代码中可以看出,按键 A 对应的 D0 针脚接到了 P1.2 口上,按键 B 对应的 D1 针脚接到了 P1.3 口上。按键 A 来控制喇叭的开,按键 B 来控制喇叭的关。继电器接到了 P1.1 口。
最终的演示效果如下(因为喇叭声音较大,我没有给喇叭安装电池,可以看到继电器的指示灯在变化):https://mpvideo.qpic.cn/0bc3eyabuaaa5map3fh2kbsvajwdditaagqa.f10002.mp4?