直流电机控制.docx
《直流电机控制.docx》由会员分享,可在线阅读,更多相关《直流电机控制.docx(10页珍藏版)》请在冰豆网上搜索。
直流电机控制
电动机PWM驱动模块的电路设计与实现具体电路见下图。
本电路采用的是基于PWM原理的H型桥式驱动电路。
元件
数量(个)
元件
数量(个)
光电耦合器:
TLP521-2
1
三极管8550
4
按键
5
三极管8050
5
自锁按键
1
1N4007
4
At89s52
1
四位一体数码管
1
12M晶振
1
电容104
1
Led
1
直流电机
1
电阻1K
3
电容22P
2
电阻10K
1
电解电容47P/16V
2
74LS04
1
下载口
1
直流电机的控制实例
使用直流/步进两用驱动器可以驱动两台直流电机。
分别为M1和M2。
引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。
(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。
(如果信号端IN1接低电平,IN2接高电平,电机M1反转。
)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。
(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。
可参考下图表:
电机
旋转方式
控制端IN1
控制端IN2
控制端IN3
控制端IN4
输入PWM信号改变脉宽可调速
调速端A
调速端B
M1
正转
高
低
/
/
高
/
反转
低
高
/
/
高
/
停止
低
低
/
/
高
/
M2
正转
/
/
高
低
/
高
反转
/
/
低
高
/
高
停止
低
低
/
/
/
高
五、此板驱动直流电机测试程序
【输入部分接线图】
【输出部分接线图】
【测试程序】
/********************************************************************
汇诚科技
实现功能:
直流电机调试程序
使用芯片:
AT89S52或者STC89C52
晶振:
11.0592MHZ
编译环境:
Keil
作者:
zhangxinchunleo
网站:
淘宝店:
汇诚科技
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
#include
#defineucharunsignedchar//宏定义无符号字符型
#defineuintunsignedint//宏定义无符号整型
sbitP2_0=P2^0;//M1启动
sbitP2_1=P2^1;//M1停止
sbitP2_2=P2^2;//M2启动
sbitP2_3=P2^3;//M2停止
sbitP1_0=P1^0;//M1
sbitP1_1=P1^1;//M1
sbitP1_2=P1^2;//M2
sbitP1_3=P1^3;//M2
/********************************************************************
延时函数
*********************************************************************/
voiddelay(uchart)//延时程序
{
ucharm,n,s;
for(m=t;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if(P2_0==0){delay(3);if(P2_0==0)//M1启动
{
P1_0=1;
P1_1=0;
}}
if(P2_1==0){delay(3);if(P2_1==0)//M1停止
{
P1_0=1;
P1_1=1;
}}
if(P2_2==0){delay(3);if(P2_2==0)//M2启动
{
P1_2=1;
P1_3=0;
}}
if(P2_3==0){delay(3);if(P2_3==0)//M2停止
{
P1_2=1;
P1_3=1;
}}
}
}
/********************************************************************
结束
*********************************************************************/
直流无刷电机的控制实例
【输入部分接线图】
【输出部分接线图】
【测试程序】
/********************************************************************
汇诚科技
实现功能:
直流无刷电机调试程序
使用芯片:
AT89S52或者STC89C52
晶振:
11.0592MHZ
编译环境:
Keil
作者:
zhangxinchunleo
网站:
淘宝店:
汇诚科技
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
#include
#defineucharunsignedchar//宏定义无符号字符型
#defineuintunsignedint//宏定义无符号整型
sbitP2_0=P2^0;//启动
sbitP2_1=P2^1;//停止
sbitP2_2=P2^2;//正转
sbitP2_3=P2^3;//反转
sbitP1_0=P1^0;//M1
sbitP1_1=P1^1;//M1
/********************************************************************
延时函数
*********************************************************************/
voiddelay(uchart)//延时程序
{
ucharm,n,s;
for(m=t;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
while
(1)
{
if(P2_0==0){delay(3);if(P2_0==0)//启动
{
P1_0=0;
P1_1=0;
}}
if(P2_1==0){delay(3);if(P2_1==0)//停止
{
P1_0=0;
P1_1=1;
}}
if(P2_2==0){delay(3);if(P2_2==0)//正转
{
P1_0=1;
P1_1=0;
}}
if(P2_3==0){delay(3);if(P2_3==0)//反转
{
P1_0=0;
P1_1=0;
}}
}
}
/********************************************************************
结束
*********************************************************************/