AVR单片机在智能水表中的应用
单片机在人们的生活中扮演着越来越重要的角色,它是微型计算机的一个重要分支,随着科学技术的发展,单片机的应用领域也越来越广泛,它在工业控制、数据采集、仪器仪表、家用电器等许多领域都起着十分重要的作用。
下面就 AVR Mega48 单片机在智能水表中的应用,再结合本人多年的单片机使用经验及水表行业的使用现状做一下阐述。
1 光电式直读水表的原理框图
单片机在各种智能水表中都是不可或缺的重要核心部件,目前应用最广泛、优势比较明显的是无源光电直读式智能水表,其原理框图见图 1。
2 电路及单片机选型说明
智能水表一般受空间限制,其内部可供电子部分放置的空间很是有限,这就要求在电路设计时,电路部分要满足简洁实用、稳定性高、工作可靠等诸多要求。为了节省空间,读水表字轮的光电编码部分,只读个、十、百位字轮,而千位字轮是靠累计来计算的,这就要求每一次的水表读数都要记录在智能水表内部,以便比对读数来计算千位。同时智能表的通讯协议部分的相关规定、设置密码等也要记录,而Mega48 内部的 EEPROM 正好满足此要求。
我们发现在光电直读的智能水表中,编码的正确识读是关键,光电管是识别的眼睛,一般大家设计或编程时,有一个误区,认为光电管识别时只需告诉单片机是0 还是1 就可以了。而在实际应用中,我们发现光电管的一致性、发送红外光的强度、安装的位置等等诸多因素都会影响到光电管编码的识别。它远不如想象中那么简单,比如对射式的光电识别,透过字轮的设为1,被字轮挡住的设为 0。但实际应用中,常常发现,本来该读1 的编码,有很多时候并不能像想象中的一样,给单片机返回1 的值,其原因很多,比如光电管性能下降、安装时位置有偏差、字轮转到0 和1 的过渡区等等,往往会造成编码读取错误,而我们用模拟量来表示,则有效地解决了上述问题,其方法如下:用单片机的 AD 端口,读出接收光电管的模拟电压,然后再把读到的每一个模拟电压,根据其范围来量化成数字量。单片机可以通过得到的数字量,判断出当前得到的值是1 还是0,然后就可以根据编码得到相应的表读数。Mega48 中所带的 8 路 10 位 AD 端口,完全可以满足此要求,光电部分的具体电路图见图2。
3 程序流程图
单片机的程序设计部分是此项目成功与否的很关键性的一个因素,下面是用 Mega48 写的部分程序流程图,图 3 获得 AD 值,图 4 是获得到水表读数。
相关文章
- 2021-12-28明电变频器在纺织行业粗纱机电气控制系统应用分析
- 2023-04-24薄壁圆筒式动态多维切削测力仪的有限元分析
- 2022-12-02网络化分布式虚拟仪器测试研究
- 2021-12-08基于WinCE的ARM视频监控系统解析
- 2022-07-15SY一1型体外冲击波碎石机
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。