• 方案介绍
  • 相关推荐
申请入驻 产业图谱

基于单片机的四点位水位控制与报警系统设计

9小时前
119
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. 基于单片机的四点位水位控制与报警系统设计

点击链接下载protues仿真资料:https://download.csdn.net/download/m0_51061483/92081502

1.1 系统功能概述

工业控制、农业灌溉、生活供水以及水箱储液系统中,水位监测与自动控制是保障系统安全稳定运行的重要环节。传统水位控制方式多依赖机械浮球或人工观察,存在精度低、响应慢、自动化程度不足等问题。

本设计提出一种基于单片机的四点位水位控制与报警系统,通过多点光电式水位检测与数字信号处理,实现对水位状态的分级监测与自动控制。系统通过四个关键水位点对水位进行分段判断,并结合加水控制与报警机制,实现水位自动调节与安全保护功能。

系统主要功能如下:

(1)采用四组光电式液位传感器实现多点水位检测;
(2)通过ADC0832模拟信号进行采集与转换;
(3)单片机通过P1.0~P1.3读取水位状态;
(4)实现四级水位分段控制逻辑;
(5)使用三位七段数码管显示水位状态与报警信息;
(6)实现上限报警与下限报警双重保护机制;
(7)实现自动加水控制与停止控制功能;
(8)系统运行稳定,适用于多种水位控制场景。


2. 系统总体设计方案

2.1 系统结构组成

本系统采用模块化设计结构,主要包括以下几个部分:

  1. 单片机控制模块
  2. 四点位水位检测模块
  3. ADC0832模数转换模块
  4. 七段数码管显示模块
  5. 加水控制执行模块
  6. 声光报警模块
  7. 电源管理模块

系统通过四个水位检测点获取不同高度的水位信息,并由单片机进行逻辑判断,实现自动控制与报警功能。


3. 系统电路设计

3.1 单片机最小系统设计

单片机作为系统核心控制单元,负责数据采集、逻辑判断与控制输出。

3.1.1 时钟电路设计

系统采用11.0592MHz晶振作为时钟源,保证系统运行稳定性。晶振两端并联30pF电容,用于稳定振荡频率,提高系统抗干扰能力。

3.1.2 复位电路设计

复位电路采用RC上电复位与手动复位按键组合方式,确保系统上电自动初始化,并具备人工复位功能,提高系统可靠性。

3.1.3 电源电路设计

系统采用5V直流供电,并通过稳压芯片进行电压稳定处理。在电源输入端加入滤波电容去耦电容,降低水泵及继电器工作时产生的干扰。


3.2 四点位水位检测模块设计

该模块是系统的核心感知部分。

3.2.1 传感器结构

每个水位检测点由:

组成光电检测对。

3.2.2 工作原理

当水位达到某一高度时,光路被水体遮挡或反射变化,从而改变光敏三极管导通状态,输出电平信号。

水位上升 → 光路变化 → 光电管导通 → 输出高电平

3.2.3 四点分布逻辑

四个检测点分别表示:

  • 第四点:水位下限
  • 第三点:自动加水线
  • 第二点:停止加水线
  • 第一点:水位上限

3.3 ADC0832模数转换模块设计

由于部分传感器输出为模拟信号,因此采用ADC0832进行转换。

3.3.1 工作原理

ADC0832通过逐次逼近方式将模拟信号转换为8位数字信号。

模拟信号 → ADC0832 → 数字信号 → 单片机

3.3.2 接口方式

ADC0832采用串行通信方式,与单片机连接引脚少,适合嵌入式系统应用。


3.4 七段数码管显示模块设计

系统采用三位七段LED显示器用于显示水位状态。

3.4.1 显示内容设计

显示内容包括:

  • 当前水位等级
  • 加水状态
  • 报警状态

示例显示:

P1: OK
P2: RUN
P3: LOW

3.4.2 显示驱动方式

采用动态扫描方式进行显示,提高显示效率并减少IO占用。


3.5 加水控制执行模块设计

该模块用于控制水泵或电磁阀

3.5.1 控制逻辑

  • 水位低于第三点 → 启动加水
  • 水位高于第二点 → 停止加水

3.5.2 执行结构

采用继电器驱动水泵,实现强电控制与弱电隔离。


3.6 声光报警模块设计

用于水位异常提示。

3.6.1 报警条件

  • 水位高于第一点 → 上限报警
  • 水位低于第四点 → 下限报警

3.6.2 报警方式


3.7 电源管理模块设计

系统采用稳定5V供电。

主要包括:


4. 系统程序设计

4.1 软件总体设计

系统软件采用模块化结构设计,主要包括:

  1. 水位采集模块
  2. 状态判断模块
  3. 加水控制模块
  4. 报警控制模块
  5. 数码管显示模块
  6. ADC采集模块

系统运行流程如下:

系统初始化
    ↓
水位采集
    ↓
ADC转换
    ↓
状态判断
    ↓
控制输出
    ↓
报警判断
    ↓
数据显示
    ↓
循环执行

4.2 主程序设计

主程序负责系统整体调度。

void main()
{
    System_Init();

    while(1)
    {
        Water_Read();

        State_Check();

        Pump_Control();

        Alarm_Check();

        Display_Run();
    }
}

4.3 水位采集程序设计

读取四个水位点状态。

void Water_Read()
{
    P1_Level1 = P1_0;
    P1_Level2 = P1_1;
    P1_Level3 = P1_2;
    P1_Level4 = P1_3;
}

4.4 状态判断程序设计

根据水位判断系统状态。

void State_Check()
{
    if(P1_Level1 == 1)
        High_Alarm = 1;

    if(P1_Level4 == 0)
        Low_Alarm = 1;
}

4.5 加水控制程序设计

控制水泵运行。

void Pump_Control()
{
    if(P1_Level3 == 0)
        Pump = ON;

    if(P1_Level2 == 1)
        Pump = OFF;
}

4.6 报警控制程序设计

void Alarm_Check()
{
    if(High_Alarm || Low_Alarm)
    {
        BEEP = 1;
        LED = ~LED;
    }
    else
    {
        BEEP = 0;
    }
}

4.7 数码管显示程序设计

void Display_Run()
{
    Seg_Display(P1_Level1,0);
    Seg_Display(P1_Level2,1);
    Seg_Display(P1_Level3,2);
}

4.8 ADC采集程序设计

unsigned char ADC_Read()
{
    Start_ADC0832();

    return ADC_Value;
}

4.9 延时控制程序设计

void DelayMs(int ms)
{
    int i,j;
    for(i=ms;i>0;i--)
        for(j=110;j>0;j--);
}

5. 系统运行过程分析

系统上电后,单片机首先完成初始化操作,随后进入水位检测循环。四个水位检测点实时反馈水位状态,通过ADC0832转换后送入单片机进行处理。当水位低于第三检测点时,系统自动启动水泵进行加水;当水位上升至第二检测点时,自动停止加水。当水位超过第一检测点时触发上限报警;当水位低于第四检测点时触发下限报警。同时,三位数码管实时显示当前水位状态与系统运行信息,使用户能够直观掌握水位变化情况。整个系统通过闭环控制实现水位自动调节与安全保护。


6. 系统总结

本设计基于单片机控制技术,结合四点位光电水位检测与ADC0832转换模块,实现了一种具有分级控制与双重报警机制的智能水位控制系统。系统通过多点检测实现水位精确分段控制,并结合自动加水与报警机制,提高了系统的自动化程度与安全性。整体结构简单、可靠性高、扩展性强,具有良好的工程应用价值与实际推广意义。

相关推荐