10090-基于单片机的车载垃圾称重装置设计(结构设计+仿真+原理图+源代码工程+详细介绍说明书)
功能描述:
垃圾车的重量监测需要被设置为自动的方式进行,可以通过按键去设置垃圾称重的阈值,当到达设定阈值后就不再转载垃圾,保护司机运输的安全。
根据以上系统的分析,垃圾车质量称重系统需要实现的功能有:
第一个功能使垃圾重量的检测,总载重10T;第二个功能是超重报警,通过光学和声学两种方式报警;第三个功能是报警阈值设置;第四个功能是垃圾收取压实,可以自动化实现垃圾推进防止垃圾堵在垃圾箱口。
资料摘要:
本课题是要设计一款用于车载垃圾车称重的装置,用于检测垃圾车的垃圾载重问题,收集垃圾的垃圾车也是必要的输送工具。如果垃圾车在运载过程中超载会导致安全危险或者交通事故等问题。
首先对车载垃圾称重装置进行方案分析,系统实现的功能有检测垃圾倒入的质量,当垃圾的质量超过重量后就会报警,并将垃圾推入垃圾箱中压实。了解称重传感器的电阻式压力传感器工作原理,选择合适的元器件方案。
然后对系统的硬件电路进行设计,系统使用到的元器件有51系列单片机、重量检测传感器与HX711模数转换器、独立按键、步进电机、LED、蜂鸣器等几部分组成。在检测上的原理是重量传感器通过HX711模数转换器检测质量,然后将信息传输至单片机处理,超过设定值就会产生报警信号,并将垃圾推入垃圾箱中。可以通过手动的方式设定垃圾质量的报警阈值。并使用EDA软件绘制硬件原理图软件系统流程和代码编写,并在PROTUES 中对这些硬件进行连接和模拟仿真。
之后对车载垃圾称重装置的机械结构进行设计,包括支架,固定装置等,并对相关的零件进行三维建模仿真分析确保装置的稳固可靠。
最后分析该产品对社会、健康、安全以及对人类环境的影响,并运用工程管理与经济决策方法指导该设计
通过本次设计,成功实现了车载垃圾称重装置的设计目标,确保垃圾车在运输过程中不超载,从而降低了安全风险和交通事故发生率,提高了运输效率。
资料包含:
1、详细设计说明书-19818字
2、仿真工程文件
3、原理图工程文件
4、源代码工程文件
5、流程图-visio
6、开题报告-7426字
7、中期报告
8、机械结构部分
9、原理图截图、仿真截图
10、物料清单
#include "reg51.h"
#include "HX711.h"
#include "lcd1602.h"
//按钮
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
//步进电机
sbit AA=P3^4;
sbit BB=P3^5;
sbit CC=P3^6;
sbit DD=P3^7;
//蜂鸣器
sbit beep=P2^3;
sbit led=P2^4;
uint press=0,lim=50;//压力
uint time=0,sec=0;//计时
uchar flag=0,time1=0;//电机控制
uchar disp1[]="weight:0.0T";//重量
uchar disp2[]="limit:0.0T";//阀值
//主函数
void main()
{
uchar k=0;
init_1602();
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
//手动打包
if(!k1)
{
sec=14;
while(!k1);
}
//加
if(!k2)
{
if(lim<99)
lim++;
while(!k2);
}
//减
if(!k3)
{
if(lim>0)
lim--;
while(!k3);
}
}
}
//定时器0中断
void Timer0() interrupt 1
{
uint sum=0;
unsigned long i=0;
if(time1<10)//测量
time1++;
else
{
time1=0;
i=HX711_read(1);
press=9*i/8384;
//打包复位
if(press/100<lim)
{
led=1;
}
else//自动打包
{
if(led &&(sec==0))
{
sec=14;
}
}
//显示
disp1[7]=press/1000+0x30;
disp1[9]=press%1000/100+0x30;
disp2[6]=lim/10+0x30;
disp2[8]=lim%10+0x30;
write_string(1,0,disp1);
write_string(2,0,disp2);
}
if(time>0)//蜂鸣器控制
{
time--;
beep=0;
}
else
{
beep=1;
}
//步进电机控制
if(sec>1) //正转
{
switch(flag)
{
case 0:BB=1;break;
case 1:AA=0;break;
case 2:CC=1;break;
case 3:BB=0;break;
case 4:DD=1;break;
case 5:CC=0;break;
case 6:AA=1;break;
case 7:DD=0;
}
if(flag<7)//下一个状态
flag++;
else
{
flag=0;
sec--;
}
}
else //打包完成
{
if(sec>0)
{
time=20;
led=0;
}
sec=0;
}
TH0=0X3C;
TL0=0XB0;
}