设计功能
(1)系统采用霍尔传感器非接触式对电机转速进行测速。
(2)LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%。
(3)电机的速度可以通过按键调整,也可以开始暂停,正转和反转。
(4)液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。
(5)系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。其余5个按键分别为:
- 按键1:加速键,可以短按,占空比加1,也可长按,占空比连续加;
- 按键2:减速键,可以短按,占空比减1,也可长按,占空比连续减;
- 按键3:正转切换键,按下后电机正转;
- 按键4:反转切换键,按下后电机反转;
- 按键5:开始暂停键,按一下开始,再按一下暂停。
原理图:
原理图绘制软件采用AD2013。主要由51单片机+最小系统+LCD1602显示屏+电机驱动电路+直流电机+霍尔传感器+独立按键等构成;
其总体硬件原理图如图所示。电机驱动电路主要是通过NPN、PNP两种三极管搭建而成的H桥驱动电路。当P34为高电平、P37引脚为低电平时,Q3、Q5三极管导通,Q4、Q6三极管截止,电机正转;当P34为低电平、P37引脚为高电平时,Q3、Q5三极管截止,Q4、Q6三极管导通,电机反转;其中,D1、D2、D3、D4作为续流二极管使用,能有效地保护三极管。
元器件封装可通过PCB导出来。
仿真设计
仿真软件采用Protues7.8。
程序设计
程序采用C作为编程语言,使用Keil5作为编程软件,仅展示一部分;
void main()
{
flag_1=0;
m=100; //占空比为100
zhuansu=0; //转速初值0
flag=0;
zheng=1; //初始化电机正转动
fan=0;
init(); //初始化
while(1)
{
keyscan(); //键盘扫描程序
}
}
void int1()interrupt 2 //外部中断1脉冲技术记录电机的转速 电机转一圈zhuansu加一
{
zhuansu++;
}
void int2()interrupt 3 //定时器0显示转速
{
TH0=0xdc;
TL0=0x00;//定时10ms
flag++;
if(flag==200) //计时到达2s
{
display(); //显示转速
zhuansu=0; //转速置0
flag=0;
}
}
关注公众号-单片机实例设计,发送“直流电机”获取资料;
版权声明:本文为m0_60790717原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。