功能:
本实例是基于51单片机为核心的智能垃圾桶仿真,主要由51单片机最小系统、L298N电机驱动电路、开盖电机、超声波传感器、红外测速模块、直流电机、红外人体传感器、LCD1602显示屏、震动传感器、按键电路构成。
1.系统的传感器主要用人体感应和机体震动感应来控制电机转动(开启,90度),开启后人体感应(热敏)在感应范围内感应不到人体,电机反转90度。
2.超声波进行高度感应,在限定范围内直流电机启动,对射光电传感器感应电机转速,少于2圈/秒就控制电机停止转动,否则转5秒后电机停止转动,接着电机反转,到达光电限位后电机停止。
3.通过按键,可设定超声波阈值和压缩电机的转速;
原理图:
Protues仿真:
程序:
void main()
{
init_1602();//初始化LCD
HC_SRinit();//初始化超声波
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
TMOD|=0X11;
TH1=0XFC;//1MS
TL1=0X18;
ET1=1;//打开定时器0中断允许
EA=1;//打开总中断
TR1=1;//打开定时器
while(1)
{
if(!set1)//高度设置
{
high_lim++;
while(!set1);
}
if(!set2)//高度设置
{
high_lim--;
while(!set2);
}
if(!set3)//速度设置
{
speed_lim++;
while(!set3);
}
if(!set4)//速度设置
{
speed_lim--;
while(!set4);
}
//==================================
if(mode==0)//等待
{
if(!k1 || !k2)//人体感应+震动
{
pwm=2;//开盖
mode=1;
}
}
if(mode==1)
{
if(k1 && k2)//等待离开
{
sec=3000;//等待3s
while(sec>0);
pwm=1;//关闭
if(high<high_lim)//超声波判断
{
out1=0;
out2=1;
sec=2000;//等待2s
while(sec>0);
while(speed1>speed_lim);//等待压缩完成
out1=1;//电机反转5s
out2=0;
sec=5000;
while(sec>0);
out1=1;//停止
out2=1;
}
mode=0;
}
}
}
}
关注公众号-电子应用学习馆,首页回复垃圾桶获取。