利用单片机设计并制作一套智能垃圾箱。要求以单片机为控制核心,通过红外传感器检测是否有人扔垃圾,并自动打开垃圾箱盖,扔完垃圾后再自动关闭。
主要内容包括:
(1)红外对管传感器检测是否有人扔垃圾
(2)垃圾桶满报警
(3)步进电机驱动电路的设计
智能垃圾桶系统的软件需要同时是否有人、垃圾桶是否装满、步进电机驱动等任务。在本设计中,当红外检测到有人时,垃圾桶自动打开,从最后一次检测到无人开始计时,5秒后自动垃圾桶关闭。垃圾桶满了之后会声光报警提醒。
原理图如下:
部分单片机代码:
void main()
{
TMOD=0x10;
EA=1;
TH1=0x4c;
TL1=0x00;
TR1=1;
ET1=1;
while(1)
{
if(open_flag==0)
{
P2=P2&0xf0;
m_i=0;
}
else
{
proc();
}
}
}
void time_1() interrupt 3
{
TH1=0x4c;
TL1=0x00;
ms++;
dis_pose();
if(!HW1)
{
p_ms++;
if(p_ms>=200)
{
p_ms=0;
beep_num=8;
}
}
else
{
p_ms=199;
}
if(!open_flag1)
{
if(hand_flag==0)
{
if(HW2)
{
c_ms++;
if(c_ms>=100)
{
c_ms=0;
open_flag=1;
}
}
else
{
c_ms=0;
open_time++;
if(open_time>=200)
{
open_time=0;
beep_num=6;
}
}
}
else
{
if(HW2&&HW1)
{
c_ms++;
if(c_ms>=100)
{
c_ms=0;
open_flag=1;
hand_flag=0;
}
}
else
{
c_ms=0;
}
}
}
else
{
c_ms=0;
open_time=0;
}
if(ms>=2)
{
ms=0;
if(beep_num!=0)
{
beep_num--;
beep=~beep;
}
else
{
beep=1;
}
}
}
全部代码51hei附件下载:
智能垃圾桶.7z
(292.33 KB, 下载次数: 75)
|