直流电动机的调速 用单片机产生PWM控制

发布者:asd999ddd最新更新时间:2015-10-29 来源: eefocus关键字:直流电动机  单片机  PWM控制 手机看文章 扫描二维码
随时随地手机看文章
上一篇文章已经讲解了直流电机的驱动,怎么使它正转,反转和停止,并详细的说了一下H桥原理。今天这里写一下怎么用单片机控制直流电机的速度。

 

直流调速器就是调节直流电动机速度的设备,上端和交流电源连接,下端和直流电动机连接,直流调速器将交流电转化成两路输出直流电源,一路输入给直流电机砺磁(定子),一路输入给直流电机电枢(转子),直流调速器通过控制电枢直流电压来调节直流电动机转速。同时直流电动机给调速器一个反馈电流,调速器根据反馈电流来判断直流电机的转速情况,必要时修正电枢电压输出,以此来再次调节电机的转速。

直流电机的调速方案一般有下列3种方式:

  • 1、改变电枢电压;
  • 2、改变激磁绕组电压;
  • 3、改变电枢回路电阻。

[转载]直流电动机的调速 <wbr>用单片机产生PWM控制
 

使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。根据公式

U=aVCC

其中:U为电枢电压;a为脉冲的占空比(0

电动机的电枢电压受单片机输出脉冲控制,实现了利用脉冲宽度调制技术(PWM)进行直流电机的变速。

[转载]直流电动机的调速 <wbr>用单片机产生PWM控制

因为在H桥电路中,只有PWM1与PWM2电平互为相反时电机才能驱动,也就是PWM1与PWM2同为高电平或同为低电平时,都不能工作,所以上图中的实际脉冲宽度为B,

我们把PWM波的周期定为1ms,占空比分100级可调(每级级差为10%),这样定时器T0每0.01ms产生一次定时中断,每100次后进入下一个PWM波的周期。上图中,占空比是60%,即输出脉冲的为0.6ms,断开脉冲为0.4ms,这样电枢电压为5*60%=3V。

我们讨论的是可以正转反转的,如果只按一个方向转,我们就只要把PWM1置为高电平或低电平,只改变另一个PWM2电平的脉冲变化即可,,如下图(Q4导通,Q3闭合,电机只能顺时针调整转动速度)

[转载]直流电动机的调速 <wbr>用单片机产生PWM控制
[page]

C语言代码:


#include
#define uchar unsigned char
#define uint unsigned int

sbit K5=P1^4;
sbit K6=P1^5;
sbit PWM1=P1^0;
sbit PWM2=P1^1;
sbit FMQ=P3^6;


uchar ZKB1,ZKB2;

void delaynms(uint aa)
{
  uchar bb;
  while(aa--)
  {
   for(bb=0;bb<115;bb++)     //1ms基准延时程序
   {
    ;
   }
  }
 
}

void delay500us(void)
{
  int j;
  for(j=0;j<57;j++)
  {
   ;
  }
}

void beep(void)
{
  uchar t;
  for(t=0;t<100;t++)
  {
   delay500us();
 FMQ=!FMQ;   //产生脉冲
  }
  FMQ=1;    //关闭蜂鸣器
  delaynms(300);
}


void main(void)
{
  TR0=0;   //关闭定时器0
  TMOD=0x01;  //定时器0,工作方式1
  TH0=(65526-100)/256;
  TL0=(65526-100)%256;    //100us即0.01ms中断一次
  EA=1;        //开总中断
  ET0=1;       //开定时器0中断
  TR0=1;       //启动定时器T0
  ZKB1=50;     //占空比初值设定
  ZKB2=50;     //占空比初值设定
  while(1)
  {
   if(!K5)
 {
   delaynms(15);     //消抖
   if(!K5)      //确定按键按下
   {
     beep();
    ZKB1++;      //增加ZKB1
     ZKB2=100-ZKB1;    //相应的ZKB2就减少
   }
  }      
 if(!K6)
 {
   delaynms(15);     //消抖
   if(!K6)      //确定按键按下
   {
     beep();
    ZKB1--;      //减少ZKB1
     ZKB2=100-ZKB1;    //相应的ZKB2增加
   }
 }
 if(ZKB1>99)
 ZKB1=1;
 if(ZKB1<1)
 ZKB1=99;
 
   }
}


void time0(void) interrupt 1
{
  static uchar N=0;
  TH0=(65526-100)/256;
  TL0=(65526-100)%256;
  N++;
  if(N>100)
  N=0;
  if(N<=ZKB1)
  PWM1=0;
  else
  PWM1=1;
  if(N<=ZKB2)
  PWM2=0;
  else
  PWM2=1;

}


//显现:电机转速到最高后,也就是N为1或99时,再按一下,就变到99或1,
//电机反方向旋转以最高速度

关键字:直流电动机  单片机  PWM控制 引用地址:直流电动机的调速 用单片机产生PWM控制

上一篇:单片机PWM调节LED灯亮度
下一篇:H桥电路原理及直流电机驱动编程

推荐阅读最新更新时间:2024-03-16 14:37

基于AT89S52单片机的电子闹钟设计
一、系统功能要求 电脑时钟的任务要求为:系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值。 二、系统整体方案 1、明确任务 基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。 2、 硬件和软件功能的划分 本课题要求实现的功能比较简单。百分之一秒的控制由at89s51的定时器T0完成;百分之一秒寄存器的内容加一由T0中断完成;动态显示、矩阵式键盘。 整体框图如下: 1. 单片机的选择 AT89S52,它是一个低电压,高性能CMOS8位单片机,内含4k bytes的可反复擦鞋的制度程序存储器(PEROM)和128
[单片机]
基于AT89S52<font color='red'>单片机</font>的电子闹钟设计
单片机有哪几个特殊功能寄存器
8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在以下各个功能部件中: (1)CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成); (2)中断系统:IP、IE; (3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1; (4)并行I/O口:P0、P1、P2、P3; (5) 串行口:SCON、SBUF、PCON。
[单片机]
无刷直流电动机调速系统的混合模糊PID控制
0 引言 无刷直流电机(BLDCM)结构简单、运行可靠、没有火花、电磁噪声低,广泛应用于航空航天、机器人、交通、煤矿自动化和工业自动化等领域。 传统的调速系统为PID模拟控制系统,结构简单,但是其控制要想达到很好的控制效果必须调整好P、I、D三者之间的关系,但是这种关系又不是简单的线性关系,而模糊控制具有很强的非线性映射功能,可是简单实用的模糊控制器又难以达到较高的控制精度。若要综合两种优势,则需要将模糊控制与PID控制结合在一起,本文在模糊控制与PID控制相结合的智能控制方法基础上,增加一个模糊变积分环节,控制器的输出为两分量之和,这样既能保留经典控制器的特性,又能增加模糊控制器快速响应的特点,完善了传统的PID控制。仿真实验表明
[嵌入式]
基于AT89C51单片机低成本温度控制实验系统
  笔者在电子市场购买了一块3.6V450mAh的锂离子充电本文介绍一种以AT89C51单片机为核心的低成本温度控制实验系统。该系统采用温度传感器DS18820实现一线数字式测温,经过PID算法输出PWM波,再由PWM信号控制固态继电器,调节热阻丝发热功率,最终达到控制被控对象温度的目的,该系统还扩展了人机接口和串口通信,实现温度设定、控制及图像显示。   硬件设计   1.总体设计   系统结构框图如图1所示,以AT89C51单片机为控制核心,DS18820电池,外型尺寸完全符合原机的内部空间要求。按照正确的正负极性焊连到 电路 中即可完成电池的更换工作。实际使用效果极佳,连续播放时间超过了7个小时(图4)。测量被控温度
[单片机]
基于AT89C51<font color='red'>单片机</font>低成本温度控制实验系统
一种电压-电压SPWM控制DC/AC电路的设计
  前言   正弦波逆变电源被广泛的应用于电力、邮电、通信、航天等各个领域, 而且随着微电脑技术的不断发展和普及,正弦波逆变电源的应用越来越广。为了满足用户对电能质量的要求,逆变电源在直流输入电压波动的情况下应保持输出电压恒定。传统的电压单环控制一般存在输出电压波动大、动态响应慢等缺点,很难实现精确控制。在逆变电路中为了克服以上不足,采用电压前馈控制技术来解决此问题。本文在单相SPWM逆变的基础上,采用前馈调整三角载波和反馈调整正弦波相结合的电压- 电压复合控制方案,较好地解决了输出电压瞬态偏离问题,且实现简单。   电压- 电压复合控制基本思想   在DC/AC逆变电路中, 输出电压与输入电压存在一定的线性关系。当输入电
[电源管理]
一种电压-电压S<font color='red'>PWM控制</font>DC/AC电路的设计
关于单片机程序的执行过程
前言 我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。 单片机的组成 8051单片机的内部硬件结构包括: 中央处理器CPU:它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为数据存储器在物理结构上分程序存储器和数据存储器,有四个物理上相互独立的存储空间,即片内ROM和片外ROM,片内RAM和片外RAM。 定时器/计数器(T/C):8051单片机内有两个16位的定时器/计数器,每个T/C既可以设置成计数
[单片机]
关于<font color='red'>单片机</font>程序的执行过程
蓝牙定时开关APP软件(附51单片机参考程序)
APP发送字符“1”至“7”数字。比如第一组定时发送的是字符“1”。第二组定时发送字符“2”.....一共7组。可用串口助手测试,电脑与蓝牙模块通信连接,如图1.所示。 单片机源程序如下: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar tmp; uint c=0; sbit led1=P1^0; //指示灯0 sbit led2=P1^1; //指示灯1 sbit led3=P1^2; //指示灯3 sbit le
[单片机]
蓝牙定时开关APP软件(附51<font color='red'>单片机</font>参考程序)
MCU 面临 800V 电动汽车牵引逆变器的 3 种挑战
电动汽车 (EV) 牵引逆变器是电动汽车的核心。它将高压电池的直流电转换为多相(通常是三相)交流电来驱动牵引电机并控制制动能量的再生。电动汽车电子设备正在从 400V 架构转向 800V 架构,这正在逐步现实、普及,更高的电压会带来至少三个好处: - 快速充电 - 在相同电流下提供双倍的电量。 - 通过使用碳化硅 (SiC) 提高效率和功率密度。 - 通过使用更细的电缆来减轻重量,从而减少 800V 相同额定功率所需的电流。 在牵引逆变器中,微控制器(MCU)是系统的大脑,通过模数转换器(ADC)执行电机控制、电压和电流采样,使用磁芯计算磁场定向控制(FOC)算法,使用脉宽调制 (PWM) 信号驱动功率场效应晶体管
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved