步骤1:必需的组件
您需要为此项目提供以下组件:
一块面包板
PIC单片机12F617,参见win-source
整流桥,例如DF02M,参见win-source
电解电容220 uF/35V和10 uF/16V
3 *陶瓷电容100nF
电压调节器78L05,见win -source
433 MHz ASK射频发射器
电阻:1 * 10k,1 * 4k7,3 * 220欧姆
NPN晶体管,例如BC548见win-source
开关
LED:1个红色,1个绿色
塑料外壳
查看关于如何连接组件的示意图。
步骤2:设计和构建电子设备
所有控制均由PIC12F617在软件中执行。在设计电路之前,我需要检查一下如何轻松激活原来的门铃。我的模型是Byron 761,可产生叮咚声,可由9伏电池或8伏交流变压器供电。在对原始门铃进行一些测量后,我发现门铃开关的连接器有一个接地引脚,一个输入引脚悬空为3.5伏。当关闭此连接时 - 按下门铃开关 - 只有35 uA的电流流过它。正因为如此,我决定使用一个带开路集电极的晶体管和发射器接地以激活原来的门铃,工作正常。
由于门铃开关在外面,我不喜欢只有很小的事实当按下门铃开关时,电流会流过门铃开关,因为当门铃变得潮湿时,它可能会响铃而没有人在那里(不确定这是否真的发生)。在电路中,我使用了220欧姆的上拉电阻,因此当按下门铃时,门铃开关的电流为23毫安。
设计的其余部分非常简单,使用标准整流桥和电压调节器为电路创建稳定的5 V电源。可以在小型面包板上轻松构建电路。在图片中,您可以看到我在面包板上构建的电路,包括放入塑料外壳时的最终结果。
第3步:软件
如前所述,该软件是为PIC12F617编写的。它是用JAL编写的。在过去,我一直使用433 MHz射频模块进行射频传输,但我使用了自己的简单传输协议,正如您在本教学中所见:射频恒温器
我的协议只要工作正常距离不是太大。对于这个项目,我需要一个更可靠的RF传输协议。经过一番研究后,我找到了用C语言编写的Arduino虚拟线库。由于我使用带有JAL编程语言的PIC,因此我将此库从C移植到JAL并在此Instructable中使用它。这个虚拟库比我使用的简单协议具有更好的可靠性。当然传输总是出错。为了最大限度地减少传输损失,每条消息使用不同的序列号发送3次,每条新消息。
在这个项目中,PIC运行的内部时钟频率为8 MHz,其中定时器虚拟库使用图2来以比特率1000比特/秒发送RF消息。
按下外门铃开关时,软件会执行以下操作:
去除门铃开关。如果在50 ms的去抖时间后仍然按下,则程序继续下一步,否则将忽略按下的门铃开关。
如果禁用传输开关未激活,则通过433 MHz RF发送器发送3字节消息 - 地址,命令和序列号,绿色LED将亮起一秒钟。与此同时,原来的门铃将通过激活BC548晶体管半秒钟来振铃。
如果禁用传输开关处于活动状态,则执行相同的操作,但不会发生RF传输。通过这种方式,可以远程关闭无线门铃,同时保持原始门铃的运行。
只有在按下门铃开关后再次松开时,才会启动新的门铃传输和新铃声。当门铃开关持续按下时,这可以防止门铃继续振铃。
附加了JAL源文件和Intel Hex文件。如果您有兴趣将PIC单片机与JAL(一种类似Pascal的编程语言)一起使用,请访问JAL下载站点。
责任编辑:wv
-
发射器
+关注
关注
6文章
842浏览量
53351 -
无线门铃
+关注
关注
1文章
21浏览量
11853
发布评论请先 登录
相关推荐
评论