三亚网站建设公司,wordpress查看主题,什么是网络销售,中国镇江网文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器#xff0c;使用报警模块、LCD1602液晶模块、按键模块、人体红外传感器、HCSR04超声波、有害气体传感器、SG90舵机等。
主要功能#xff1a; 系统运行后使用报警模块、LCD1602液晶模块、按键模块、人体红外传感器、HCSR04超声波、有害气体传感器、SG90舵机等。
主要功能 系统运行后LCD1602显示超声波检测距离和传感器采集有害气体浓度值极其阈值。 当感应到有人时桶盖舵机开启此时系统检测垃圾高度是否超限如果超限则开启压缩机打包完成后蜂鸣器报警提示。当人离开桶盖舵机关闭。如果有害气体浓度超限蜂鸣器报警。 可通过按键K3进入阈值设置模式K1和K2调节数据K4确定。 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据获取
void sys_data_get(void)
{while(1){//获取距离sys_ctrl.disultrasonicwave_measure();//获取有害气体浓度sys_ctrl.gaspcf8591_read_adcvalue(0);sys_ctrl.gascal_map(sys_ctrl.gas,0,255,0,99);//检测有无人if(IRED0)sys_ctrl.man1; else sys_ctrl.man0; break;}
}//系统数据显示
void sys_data_show(void)
{while(1){//距离显示lcd1602_show_nums(4,0,sys_ctrl.dis,3,0);//气体浓度显示lcd1602_show_nums(4,1,sys_ctrl.gas,2,0);//有无人状态显示if(sys_ctrl.man1)lcd1602_show_string(8,1,Y);else lcd1602_show_string(8,1,N);//距离阈值显示lcd1602_show_nums(13,0,sys_ctrl.dish,3,0);//气体阈值显示lcd1602_show_nums(13,1,sys_ctrl.gash,2,0);//阈值闪烁指示switch(sys_ctrl.mode){case 1://距离lcd1602_show_string(13,0, );delay_ms(50);lcd1602_show_nums(13,0,sys_ctrl.dish,3,0);break;case 2://气体lcd1602_show_string(13,1, );delay_ms(50);lcd1602_show_nums(13,1,sys_ctrl.gash,2,0);break;}break; }
}//系统数据设置
void sys_data_set(void)
{u8 key0;keykey_scan(0);//设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode2)sys_ctrl.mode1;}//阈值设置模式if(sys_ctrl.mode!0){//加if(keyKEY1_PRESS){switch(sys_ctrl.mode){case 1://距离sys_ctrl.dish;if(sys_ctrl.dish500)sys_ctrl.dish0;break;case 2://气体sys_ctrl.gash;if(sys_ctrl.gash99)sys_ctrl.gash0;break;} }//减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://距离sys_ctrl.dish--;if(sys_ctrl.dish0)sys_ctrl.dish500;break;case 2://气体sys_ctrl.gash--;if(sys_ctrl.gash0)sys_ctrl.gash99;break;} }//确定else if(keyKEY4_PRESS){sys_ctrl.mode0; } }
}//系统功能控制
void sys_fun_ctrl(void)
{static u8 oneflag0;//如果红外检测到有人if(sys_ctrl.man1){//打开桶盖舵机steer_control(2);//如果垃圾高度到达阈值开启打包if(sys_ctrl.dissys_ctrl.dish){if(oneflag0)//压缩机启动一次{oneflag1;_dc_motor_zturn();delay_ms(1000);_dc_motor_stop();beep_alarm(100,2000);} }else oneflag0;}//如果红外未检测到有人else{//关闭桶盖舵机steer_control(0); }//如果有害气体浓度高于阈值报警if(sys_ctrl.gassys_ctrl.gash)beep_alarm(10,1000);
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619
联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。