最近想帮朋友搞个水塔控制器,他给了一些程序上的需求,比较繁琐,因此就打算在此blog中对需求进行整理,以便于代码的编写。
无线发送信号:
1. 控制器使用的是2262和2272无线发送接收模块,作为信号的通信。
2. 无线发送端的信号检测是水位的检测。 同时还有一个水流检测信号。
这些信号通过不同的编码,然后发送出去。
无线接收:
接收无线发送端的信号,然后送到单片机进行处理,处理后用二极管进行显示。
单片机的信号:
输入:
按键:有开始停止,有设置相关的按键
无线接收模块:水塔上的信息
温度传感器:DS18B20
输出:
数码管:显示当前的环境温度值,可以显示系统的工作状态。进行简单的人机交互。
LED:显示系统的工作状态,有水位显示,有报警指示
蜂鸣器:声音报警
继电器:进行必要的控制
功能描述:
1. 能手动的开始和停止抽水,但是要以水位的检测值为最高优先级。
2. 能实时显示当前的环境温度,能设置系统工作的最低环境温度,低于设定温度值时禁止抽水功能,要有LED指示的温度警告。
3. 抽水条件:(水位过低 | 强制抽数)& (环境温度合适)& (井水数位合适)&(20s内能检测到水流)。
4. 如开始抽水,但是20s内没有检测到水流,就停止抽水,并告警。
5. 能设定最长的抽水时间,通过人际交互输入,单位为分。根据水塔大小控制
6. 系统需要有通信检测功能,制定时间内接收不到发射器的信号时要告警。
7. 系统上电默认的水位是60%,等到下次检测到实际水位时进行更新。
8. 外置报警的喇叭,要有静音功能。
分析:
单片机的主要工作:
检测按键,并做处理
接收无线信号
检IO状态
根据各个状态设置各个标志位
根据标志位进行外设控制
更新LED
刷新显示温度
读温度值
等。
程序设计时要考虑功能的模块性,容易进行裁剪,便于后期的维护和扩展。
文章评论(0条评论)
登录后参与讨论