电机控制在监控器材、医疗器械、电动阀门、电动窗帘、家用电器、旋转灯具等方面有着广泛的应用,因此设计一款可控性好、精度高的电机控制系统是一件非常有意义的事。
功能描述
1、采用51单片机作为主控制器;
2、采用DC-5V步进减速电机(步进角度5.625°,减速比1/64);
3、采用集成芯片ULN2003作为电机驱动;
4、可通过按键控制正反转及速度;
5、四位数码管:第1位显示电机的正反转,第3位和第4位显示电机运行速度的档数;
6、红色LED:一个电源指示,其他四个灯不同的循环闪烁周期指示电机转速变化。
按键说明
KEY1:正转控制; KEY2:反转控制;
KEY3:加速控制; KEY4:减速控制;
KEY5:暂停/继续;
整体方案
电路设计
采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
仿真设计
主程序设计
void main()
{
T0_T1_init();
buf[1] = 10;//不显示
while(1)
{
display();
if(s1 == 0)
{
delay1m(3);
if(s1 == 0)
{
flag1 = 0;//正转
buf[0] = 0;//最高位显示0
// haha = 0x00;//停止
}
while(!s1) display();
}
if(s2 == 0 )
{
delay1m(3);
if(s2 == 0)
{
flag1 = 1;//反转
buf[0] = 1;//最高位显示1
// haha = 0x00;//停止
}
while(!s2) display();
}
if(s3 == 0) //速度加1档
{
delay1m(3);
if(s3 == 0)
{
k++;
TR1=1;
if(k > 10 )
{
k = 1;
}
buf[2]= k/10;
buf[3]= k%10;
}
while(!s3) display();
}
if(s4 == 0) //速度减1档
{
delay1m(3);
if(s4 == 0)
{
k--;
TR1=1;
if(k <= 0)
{
k = 10;
}
buf[2]= k/10;
buf[3]= k%10;
}
while(!s4) display();
}
if(s5==0)
{
delay1m(3);
if(s5==0)
{
if(TR1==1)
{
pause=k;
k=0;
TR1=0;
a=b=c=d=0;
}
else if(TR1==0)
{
k=pause;
TR1=1;
}
buf[2]= k/10;
buf[3]= k%10;
while(!s5) display();
}
}
}
}