一.硬件方案
51单片机的智能雨刷主要运用雨滴传感器感应雨量的大小,把感应信号输给单片机系统,然后通过软件控制雨刷电机根据相应的环境做出不同的转动。其中硬件电路主要有51单片机最小系统,步进电机驱动电路,LCD1602显示电路,湿度传感器及ADC0832转换电路,按键电路组成;原理图如图:
根据原理图所绘制的PCB图如下:
二.功能介绍
- 智能雨刷采用lcd1602液晶显示雨水量值;雨滴传感器检测雨水量,adc0832对雨滴传感器信号ad转换数字信号单片机处理。
- 有手动模式和自动模式控制两种,手动模式实现开关操作,还可以通过按键调整速度。自动模式下根据雨水量自动控制步进电机的速度,低于下限步进电机停止工作,上限和下限之间步进电机1档(慢速)工作,大于上限步进电机2档(快速)工作。
- 四个按键:设置、加(切换模式)、减(手动开关)、速度调整(在手动模式下)。
三.软件设计
主程序源码
void main()
{
water_h=byte_read(0x2000);
water_l=byte_read(0x2200);
if(water_h<water_l||water_h>100||water_l<0)
{
water_h=60;
water_l=10;
}
TMOD=0x11;
TH1=0x3c;
TL1=0xb0;
TH0=0x3c;
TL0=0xb0;
ET1=1;
ET0=1;
EA=1;
TR0=1;
TR1=1;
LCD1602_cls();
while(1)
{
if(A_M==0)
{ police_dispose();
if(star_off==0)
{
if(DJ_dat==0) loop=0;
while(DJ_dat<180)
{
P1=P1&0xf0|zz[loop];
loop=(loop+1)%8;
if(loop==0) DJ_dat++;
LCD1602_delay(Value);
}
if(DJ_dat==120)loop=0;
while(DJ_dat!=0)
{
P1=P1&0xf0|fz[loop];
loop=(loop+1)%8;
if(loop==0) DJ_dat--;
LCD1602_delay(Value);
}
}
}
else
{
if(speed_flag!=0)
{
if(star_off==0)
{
if(DJ_dat==0) loop=0;
while(DJ_dat<180)
{
P1=P1&0xf0|zz[loop];
loop=(loop+1)%8;
if(loop==0) DJ_dat++;
LCD1602_delay(Value);
}
if(DJ_dat==120)loop=0;
while(DJ_dat!=0)
{
P1=P1&0xf0|fz[loop];
loop=(loop+1)%8;
if(loop==0) DJ_dat--;
LCD1602_delay(Value);
}
}
}
else
{
loop=0; DJ_dat=0;
}
}
}
//1毫秒定时
}
资料:https://pan.baidu.com/s/1lGNJ_3RJUEyqkmbo0NA5Yw?pwd=nqtt
提取码:nqtt