直流电机介绍
•直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
•直流电机主要由永磁体(定子)、线圈(转子)和换向器组成
•除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等
电机驱动电路
PWM波介绍
•PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域
•PWM重要参数:
频率= 1 /TS 占空比= TON / TS 精度= 占空比变化步距
产生PWM波方法
呼吸灯
1)程序文章来源:https://www.toymoban.com/news/detail-504618.html
#include <REGX52.H>
sbit LED=P2^0;
void Delay(unsigned int t)
{
while(t--);
}
void main()
{
unsigned char Time,i;
while(1)
{
for(Time=0;Time<100;Time++) //改变亮灭时间,由暗到亮
{
for(i=0;i<20;i++) //计次延时
{
LED=0; //LED亮
Delay(Time); //延时Time
LED=1; //LED灭
Delay(100-Time); //延时100-Time
}
}
for(Time=100;Time>0;Time--) //改变亮灭时间,由亮到暗
{
for(i=0;i<20;i++) //计次延时
{
LED=0; //LED亮
Delay(Time); //延时Time
LED=1; //LED灭
Delay(100-Time); //延时100-Time
}
}
}
}
2)Proteus仿真
直流电机驱动
1)程序
#include <REGX52.H>
#include "Nixie.H"
#include "Timer0.H"
#include "Key.H"
sbit Motor=P1^0;
unsigned char Counter,Compare,KeyNum,Speed;
void main ( )
{
Timer0_Init();
while(1)
{
KeyNum=Key();
Nixie(1,Speed);
if(KeyNum==1)
{
Speed++;
}
if(Speed<4)
{
switch(Speed)
{
case 0:Compare=0;
break;
case 1:Compare=25;
break;
case 2:Compare=75;
break;
case 3:Compare=100;
break;
}
}
else
{
Speed=0;
}
}
}
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
Counter++;
Counter%=100; //计数值变化范围限制在0~99
if(Counter<Compare) //计数值小于比较值
{
Motor=1; //输出1
}
else //计数值大于比较值
{
Motor=0; //输出0
}
}
2)仿真软件文章来源地址https://www.toymoban.com/news/detail-504618.html
到了这里,关于12. 直流电机调速(PWM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!