DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1312|回复: 0
打印 上一主题 下一主题

[待整理] 基于Atmega8的被动式红外线报警器实验

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 14:37:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
该报警器由红外线发射、接收、蜂鸣器和LED指示灯组成。正常情况下,绿色的LED常烁,表示监控区域正常。一旦监控区域有人闯入,绿色LED熄灭,红色的LED快速闪烁,同时蜂鸣器立即报警。

实验器材

需要准备的器材:Atmega8、红色LED一只、绿色LED一只、万能实验板一块、5V电源、电阻、TTL0038或者其他类似38KHZ的红外接收头、5V长鸣型蜂鸣器。


线路图:

实验电路图及工作原理
该电路工作原理非常简单,Atmega8的PD0端口输出经过调制的38KHZ的方波信号,然后经Q2驱动红外线发射管LED0发出红外线信号。TL0038是集红外线信号接收放大为一体的接收器。其中心接收频率为38KZH,输出为TTL电平,平时输出高电平,当收到码信号后,输出低电平。
BELL为长鸣蜂鸣器,两个引脚分别为正负极,当正负极两端加上5V电压后,蜂鸣器发出响声。注意,该蜂鸣器两脚不能接反,否则蜂鸣器会烧毁。

电路工作后,正常情况下TL0038接收不到红外信号,而输出高电平。当有物体出现在发射管前方时,TTL0038会接收到从物体上反射回来的红外光信号,然后输出低电平通知MCU打开蜂鸣器报警。

程序设计思路


本实验的程序主要要完成三大功能:38KHZ载波信号的产生、红外接收头TL0038输出电平的检测、LED和蜂鸣器的驱动。

本程序使用8位定时计数器T/C0溢出中断使PD0产生38KHZ的方波信号,然后驱动红外线发射管。T/C0计数器是单一向上计数器,其计数值TCNT0一旦计数到0XFF后,T/C0马上产生溢出中断。因此,我们可以通过设置TCNT0的初始值来调整中断产生的频率。每产生一次中断就改变一次PD0的电平状态,从而在PD0口产生38KHZ的方波信号。

本实验MCU采用内部8MHZ的RC时钟信号,T/C0的时钟源采用系统时钟8分频,即每计一个数(TCNT0增加1)需要1us的时间。38KZH的时钟周期大约为26us左右,因此,半周期需要计数13次左右,即TCNT0初始值为256-13=243。另外,我们还需要在38KHZ的载波信号上调制上一个码信号,也就是说38KHZ的载波信号不是一直在产生,而是间断的发射。如下图所示:

同时,程序通过不断地读取PC5脚的电平值来判断TL0038是否接收到红外信号。一旦连续检测到N次PC5为低电平,则立即打开蜂鸣器和红色的LED。之所以要连续检测N次,主要是防止TL0038上产生杂波信号而误告警。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-23 02:49 , 耗时 0.144711 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表