直流电机
直流电机是电机的主要类型之一,由于它具有良好的调速性能,在许多调速性能要求较高的场合,得到广泛应用。在电子制作中也较多设计到直流电机的使用。
当负载一定时,流过直流电机的平均电流越大,产生的力矩就越大,从而直流电机的转速越快;当电流一定时,负载越大,直流电机的转速就越慢。
#直流电机的驱动
1、线性放大驱动
线性驱动器实际上是一个线性供放,原理如下。处理器输出的控制信号经D/A转换为电压信号,驱动器将这个信号进行线性功率放大后提供给电机。由于驱动器上通过的电流和压降都比较大,因此这种驱动方式最大的缺点就是功耗大,效率低。但由于线性功放不存在高频的开关动作,因此输出电压平稳,与PWM等开关驱动方式相比,电磁噪声和干扰要小得多。
2、开关驱动器开关驱动是利用大功率晶体管的开关作用,将恒定的直流电源电压转换为一定的方波电压加在电机点枢上。与线性驱动方式不同,在这种驱动方式下,驱动器的功率管工作在开关状态,当器件开通时,器件的电流很大但压降却很小;器件关断时,压降很大电流却很小。因此驱动器的功率消耗小,发热量小,效率较高。通过控制开关的频率和脉宽,可以对电机的转动进行控制。
#直流电机的开关驱动电路
直流电机开关驱动器主要有两种,T型不可逆驱动器和H型可逆驱动器
原理讲解待补充!
实验
#代码
* 【课程21】 ****直流电机实验***********
*
* 【说 明】 ****
*
* 【描 述】 ****实现电机的正转,反转,停止。
*
******************************************************************/
#include<reg51.h> //51头文件,
//---------常用的两个宏定义--------------
#define uint8 unsigned char
#define uint16 unsigned int
sbit Motor_A = P1^0;
sbit Motor_B = P1^1;
sbit Key1 = P3^0; //正转
sbit Key2 = P3^1; //反转
sbit Key3 = P3^2; //停止
//------------函数的声明-----------------
void DelayMS(uint16 dly);
void main(void)
{
while(1)
{
/*if(Key1==0) //正转
{
Motor_A = 0;
Motor_B = 1;
}
else if(Key2==0) //反转
{
Motor_A = 1;
Motor_B = 0;
}
else if(Key3==0) //停止
{
Motor_A = Motor_B = 0;
}
*/
Motor_A = 0;
Motor_B = 1;
DelayMS(9);
Motor_A = 0;
Motor_B = 0;
DelayMS(1);
}
}
/********************************************************
** 名称 :void DelayMS(uint16 dly)
** 功能 :毫秒级延时(24M的晶振)
** 入口参数 :dly
用户的延时参数
** 出口参数 :无
*********************************************************/
void DelayMS(uint16 dly)
{
uint16 x,y;
for(x=dly;x>0;x--)
for(y=247;y>0;y--);
}