1. 系统功能概述
点击链接下载资料:https://download.csdn.net/download/qq_39020934/92091284
本设计题目为《基于单片机的智能鱼塘饵料投喂系统设计》,其核心目标是实现鱼塘饵料投喂的智能化与自动化管理。传统人工投喂方式存在工作量大、时间不规律、饵料浪费严重等问题,且无法精确控制投喂量与距离。为解决这些问题,本系统引入单片机作为核心控制器,结合定时控制、水位检测、距离调节与饵料量控制等功能,实现高效、节能与精准的智能投喂。
系统主要功能包括:
- 定时投喂:用户可设定每天的投喂时间,系统在设定时间自动启动投喂机构,保证鱼类摄食的规律性。
- 投喂距离自动调节:根据鱼塘大小或投喂区域的不同,系统通过控制电机运行时间自动调节饵料投放的距离,实现均匀撒料。
- 水位监测报警:实时检测鱼塘水位高度,当水位低于或高于安全范围时,系统发出报警提示。
- 饵料量控制:用户可通过按键设定每次投喂的饵料量,系统自动计算电机运行时间以控制饵料输送量,同时在 LCD1602 显示设定值与实时状态。
本系统具有结构简洁、功能全面、成本低廉、扩展性强等优点,适合应用于中小型养殖场的自动化饵料投喂场景。
2. 系统电路设计
本系统以 STC89C52 单片机 作为核心控制器,外围电路包括:
- 实时时钟电路(用于定时控制)
- 水位检测模块
- 投喂距离控制电机驱动电路
- 饵料传送带电机控制电路
- LCD1602 液晶显示模块
- 按键输入模块
- 蜂鸣器报警模块
- 电源电路
2.1 单片机最小系统电路
单片机采用 STC89C52 作为主控芯片。其最小系统由时钟电路、复位电路和电源电路组成。
- 时钟电路:采用 12MHz 晶振及两个 30pF 电容,为单片机提供稳定的时钟信号。
- 复位电路:由上拉电阻和电容构成上电复位电路,确保系统上电后能正确进入初始化状态。
- 电源电路:系统供电电压为 5V,可通过 LM7805 稳压芯片从 12V 电源转换而来,为整个系统提供稳定电压。
该部分为系统的核心部分,保证单片机能正常工作并对外围模块进行统一管理。
2.2 实时时钟电路
为了实现精准的定时投喂功能,系统采用 DS1302 实时时钟模块。DS1302 内部集成时钟振荡器及备用电池接口,可长期保持时间准确性。
- 单片机通过三线 SPI 接口与 DS1302 通信(SCLK、IO、CE)。
- 可读取或写入当前的时分秒信息。
- 当设定时间与当前时间相匹配时,系统启动电机执行投喂任务。
DS1302 的使用大大提高了系统的独立性,即使断电也能保持时间准确,为自动定时投喂提供可靠保障。
2.3 水位监测模块
水位监测模块采用 电极式水位检测,通过检测电阻变化判断水位高度。系统在池塘内设置多个检测点:低水位警戒点、正常水位点和高水位警戒点。
- 当水位低于最低点时,系统蜂鸣器报警提示“水位过低”;
- 当水位高于最高点时,提示“水位过高”;
- 正常水位时,系统处于待机状态。
此模块输出信号经电平转换后输入单片机的 P1 端口,通过逻辑判断控制报警输出。
2.4 投喂距离控制电路
投喂距离由 直流电机 控制,其运行时间决定饵料喷射距离。电机由 L298N 电机驱动模块 控制。
- 单片机输出 PWM 信号控制电机速度;
- 通过继电器或 H 桥电路实现正反转控制;
- 用户可设定鱼塘大小,系统根据设定自动调整电机运行时间与方向。
电机驱动模块保证了系统能在较大功率负载下稳定运行,并能灵活调整投喂范围。
2.5 饵料传送带控制电路
饵料量控制通过传送带电机运行时间实现。
- 使用小功率直流电机驱动饵料传送带;
- 电机通断由单片机控制的继电器完成;
- 当设定的投喂量达到目标时,单片机停止电机运行。
投喂量与时间成正比,系统通过计时函数精准控制投喂时间,保证饵料量稳定一致。
2.6 LCD1602 显示模块
LCD1602 用于实时显示系统运行状态和参数设定。
显示内容包括:
- 当前时间(由 DS1302 提供);
- 投喂状态(待机 / 投喂中 / 完成);
- 水位状态;
- 当前设定投喂时间与饵料量;
- 实时提示信息。
LCD1602 采用 4 位数据线模式节省单片机 I/O 口,通过 RS、RW、EN 和 D4~D7 与 P2 口连接。
2.7 按键输入模块
用户通过按键完成投喂时间、投喂量、投喂距离等参数的设定。
- 使用 4 个独立按键:加、减、确认、模式;
- 按键采用下拉电阻防抖设计;
- 单片机通过中断方式检测按键输入,实现参数切换与调整。
此模块使系统具有较强的人机交互性,操作直观方便。
2.8 蜂鸣器报警模块
蜂鸣器用于报警提示,如:
- 水位异常
- 投喂完成提示
- 参数设置确认
系统采用有源蜂鸣器,单片机控制信号经三极管放大后驱动蜂鸣器。
3. 程序设计
系统的软件设计以模块化结构为主,程序采用 C 语言 编写,在 Keil C51 环境下开发。主程序负责整体流程控制,各功能模块通过独立函数实现。
3.1 主程序设计
主程序负责系统初始化、时间读取、模式判断和任务调度。当系统上电后,初始化各模块,循环检测时间与设定值是否相符,若匹配则执行自动投喂流程。
#include <reg52.h>
#include "lcd1602.h"
#include "ds1302.h"
#include "motor.h"
#include "key.h"
#include "buzzer.h"
void main() {
LCD_Init();
DS1302_Init();
Motor_Init();
Key_Init();
Buzzer_Init();
while(1) {
Read_Time(); // 读取实时时间
Display_Info(); // 显示当前信息
Key_Scan(); // 检测按键输入
if(Check_Feed_Time()) { // 判断是否到达设定投喂时间
Start_Feed(); // 执行投喂
}
Water_Level_Check(); // 检测水位
}
}
主程序结构清晰,所有功能模块均可独立调用,方便后续系统扩展。
3.2 实时时钟模块程序
DS1302 模块负责系统的定时控制。
其程序包括时间读取与写入函数:
void Read_Time() {
DS1302_ReadTime(&hour, &minute, &second);
}
bit Check_Feed_Time() {
if(hour == set_hour && minute == set_minute) return 1;
else return 0;
}
当系统时间与设定时间相符时,返回真值触发投喂过程。
3.3 水位检测程序
通过检测传感器输入电平判断水位状态,并驱动蜂鸣器报警。
void Water_Level_Check() {
if(Low_Level == 0) {
Buzzer_On();
LCD_ShowString(1, 1, "LOW WATER!");
} else if(High_Level == 0) {
Buzzer_On();
LCD_ShowString(1, 1, "HIGH WATER!");
} else {
Buzzer_Off();
LCD_ShowString(1, 1, "Water OK");
}
}
此程序保证系统运行安全,防止因水位异常导致设备损坏或投喂失误。
3.4 电机控制程序
系统通过控制两个电机实现投喂距离与饵料量调节。
void Start_Feed() {
Motor_Distance_On();
DelayMs(distance_time); // 控制喷射距离
Motor_Distance_Off();
Motor_Feed_On();
DelayMs(feed_time); // 控制饵料量
Motor_Feed_Off();
Buzzer_On(); // 投喂完成提示
DelayMs(1000);
Buzzer_Off();
}
两个参数 distance_time 与 feed_time 可由用户设定,实现不同池塘场景下的个性化控制。
3.5 按键设置程序
按键模块用于修改系统参数,通过模式切换实现不同参数的设定。
void Key_Scan() {
if(Key1 == 0) { set_hour++; }
if(Key2 == 0) { set_minute++; }
if(Key3 == 0) { feed_time += 1000; }
if(Key4 == 0) { distance_time += 500; }
}
通过简单按键组合即可完成各参数设置,LCD 同步显示更新。
3.6 LCD 显示程序
LCD 模块用于显示当前系统状态、设定时间、水位状态等信息。
void Display_Info() {
LCD_ShowString(1,1,"Time:");
LCD_ShowNum(1,7,hour,2);
LCD_ShowNum(1,10,minute,2);
LCD_ShowString(2,1,"Feed:");
LCD_ShowNum(2,7,feed_time/1000,2);
}
显示界面简洁明了,实时反馈系统工作状态。
4. 系统整体运行流程
- 系统上电初始化,LCD 显示当前时间与状态;
- 用户通过按键设定投喂时间、饵料量与投喂距离;
- 系统实时读取 DS1302 时间,当达到设定时刻自动启动投喂;
- 投喂过程中,先由电机控制投喂距离,再控制饵料传送带投喂量;
- 投喂结束后蜂鸣器提示,LCD 显示“Feed Done”;
- 系统持续监测水位,异常时报警;
- 系统重新进入待机状态,等待下一次投喂。
5. 总结
本设计的智能鱼塘饵料投喂系统通过单片机对时间、电机、水位等多模块的综合控制,实现了鱼塘饵料的自动化与智能化管理。系统功能完善,硬件结构简单,软件逻辑清晰,具有较高的实用性与扩展性。
未来可进一步增加 WiFi 模块,实现远程监控与参数设置,或接入云平台实现大数据养殖分析,从而构建完整的智能养殖生态系统。
2822

被折叠的 条评论
为什么被折叠?



