您的位置:首页 > 游戏 > 游戏 > 单片机学习(16)--直流电机驱动

单片机学习(16)--直流电机驱动

2024/11/15 15:46:14 来源:https://blog.csdn.net/LHYYUYG/article/details/140063494  浏览:    关键词:单片机学习(16)--直流电机驱动

直流电机驱动

  • 15.1直流电机驱动基础知识
    • 1.直流电机介绍
    • 2.电机驱动电路
    • 3.PWM介绍
  • 15.2LED呼吸灯和直流电机调速
    • 1.LED呼吸灯代码
    • 2.直流电机调速
      • (1)产生PWM的方法
      • (2)工程目录
      • (3)main.c函数

15.1直流电机驱动基础知识

1.直流电机介绍

直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
直流电机主要由永磁体(定子)、线圈(转子)和换向器组成
除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等
在这里插入图片描述

2.电机驱动电路

在这里插入图片描述

3.PWM介绍

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用干电机控速、开关电源等领域PWM重要参数:
频率=1/Ts
占空比=ToN/Ts
精度=占空比变化步距

在这里插入图片描述

15.2LED呼吸灯和直流电机调速

1.LED呼吸灯代码

只有一个main函数

#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;Delay(Time);LED=1;Delay(100-Time);}}for(Time=100;Time>0;Time--){for(i=0;i<20;i++){LED=0;Delay(Time);LED=1;Delay(100-Time);}}}
}

2.直流电机调速

(1)产生PWM的方法

在这里插入图片描述

(2)工程目录

在这里插入图片描述

(3)main.c函数

#include <REGX52.H>
#include "Key.h"
#include "Delay.h"
#include "Timer0.h"
#include "Nixie.h"sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
void main()
{Timer0_Init();Compare=5;while(1){KeyNum=Key();if(KeyNum==1){Speed++;Speed%=4;if(Speed==0){Compare=0;}if(Speed==1){Compare=50;}if(Speed==2){Compare=75;}if(Speed==3){Compare=100;}}Nixie(1,Speed);}
}void Timer0_Routine() interrupt 1
{TL0 = 0xA4;TH0 = 0xFF;Counter++;if(Counter>=100){Counter=0;}if(Counter<Compare){Motor=1;}else{Motor=0;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com