本帖最后由 李能能 于 2025-12-25 10:54 编辑
一、作品简介 基于迪文EKT043E屏幕开展C51内核单片机的开发工作,同时与JQC - FF - S - Z继电器、水位传感器以及蜂鸣器相配合,实现对稻田水位的实时监测以及对水泵阀门开关的控制。 当水位超出规定阈值时,屏幕显示“水位过低”信息,同时蜂鸣器发出警报,阀门状态由常闭转变为常开;反之则相反。 二、工作原理 1. 示意图程 本示意图展示智能稻田水位控制系统核心架构,核心组件含水位传感器、主控系统、继电器阀门、蜂鸣器、指示灯及迪文屏GUI模块。水位传感器采集稻田水位数据并传至主控系统,主控系统处理后将数据发送至迪文屏GUI模块,支持用户[url=]查看水位的AD值与深度;同时主控系统通过继电器控制阀门开关,实现水位自动调节。水位超阈值时,主控系统触发蜂鸣器报警、指示灯亮闪,迪文屏同步显示报警信息与设备状态。系统实现稻田水位实时监测与智能调控,依托可视化交互与多重报警,保障稻田水位处于适宜范围。[/url] 2.工作流程 (1)初始化 a.调用 sys_init() 完成单片机核心初始化。 b.执行 io_init() 初始化IO引脚:配置P0^7(LED)、P0^6(继电器)为输出口,P1^5(传感器DO口)为输入口;同时设置引脚驱动电流、电平方向,适配外设控制与信号采集需求。 c.初始化PWM模块( pwm1_init ),为辅助传感采集、蜂鸣器/外设的PWM输出做准备。 (2)主程序循环 a.水位数据采集与转换 通过 adc_read_avg(ADC_CHANNEL0,5) 读取ADC通道0的平均值,减少采集误差,根据公式 depth = ad*0.045f-117.5f 将ADC数值转化为实际水位值,若ADC值小于2550则水位置0,避免无效数据。 b.迪文屏数据更新 调用 sys_write_vp 函数,将ADC值(地址0x2000)、水位值(地址0x2001)写入迪文屏寄存器,实现实时数据可视化。 c.水位阈值判断与外设控制 当水位 depth≥10 时,触发报警逻辑:置LED为1(点亮报警灯)、RELAY为1(继电器吸合,控制阀门动作);通过 sys_write_vp 更新迪文屏报警图标显示控件(LOWRING_VP/HEIGHRING_VP等),并设置PWM占空比为100%(驱动蜂鸣器报警)。 当水位 depth<10 时,关闭报警:置LED、RELAY为0;更新迪文屏报警图标为正常状态,PWM占空比置0(蜂鸣器停止)。 d.延时控制:通过 sys_delay_ms(1000) 实现1秒的循环间隔,平衡数据采集实时性与系统资源占用。 3.硬件交互逻辑 a.传感器交互:通过ADC采集水位模拟信号,结合数字量DO口(P1^5)辅助判断水位状态; b.执行器控制:通过P0^6引脚控制继电器通断,实现进水/排水阀门的自动开关;P0^7引脚控制LED灯,直观显示系统报警状态; c..迪文屏通信:通过 sys_write_vp 函数向指定寄存器地址写入数据,实现水位、报警状态的界面展示。 三、设计思路 1.需求剖析与目标设定:依据稻田在不同生长阶段对水位的差异化需求,明确系统需达成水位实时监测、自动补水/排水以及超限报警这三项核心功能。同时,充分考量农田环境的防水与抗干扰特性,确保系统操作便捷且成本可控。 2.核心器件选型与方案架构搭建:主控单元选用搭载迪文EKT043E屏幕的C51内核单片机,借助其显示、触控及数据处理能力简化硬件接线;搭配水位传感器进行数据采集,通过继电器模块驱动执行机构;利用蜂鸣器发声和LED灯的亮灭使水位变化更为显著,构建闭环控制架构。 3.软硬件协同设计逻辑规划:在硬件方面,合理规划传感器的安装位置与接线方式,增设电源稳压模块以适配农田环境;在软件方面,基于迪文开发平台进行编程,设定水位阈值参数,实现数据读取、逻辑判断、水位显示、参数设置以及报警提示等功能。 4.实验验证与优化方向确定:设计模拟稻田环境的实验场景,对系统的响应速度和控制精度进行测试;针对传感器数据波动、执行机构误触发等问题,优化程序滤波算法和阈值判定逻辑,以提升系统的稳定性和实用性。 五、[url=]7组二次开发智能稻田水位控制系 ...[/url]
|