直流电机PWM调速电路汇编
PWM型直流风扇速度控制电路
V (脚 3):与 外 置 电 阻分 压 器 相 连 ,通 过 设 定 最 小 占空 比来 确定 最 小 风扇速 度 ,当 0≤V姗≤V 时 ,MC642进 入 关 断模 式 。在 关 断模 式 ,FAULT的 输 出 不 起 作 用 ,此 时 的 输 出 电 流 降 至 25 F;当 V帽 ≥V吼 时 ,MC642退 出 关 断 模 式 。 (VSnDN=0.13 VDD,VRⅡ O.19 VDD)。
2.2 启 动 定 时 器 为 了保 证风 扇 能够 可靠 地工 作,如果风 扇 由静
』E启 动 ,启 动定 时器 将 在 32个 PWM 周 期 后 输 出 V(1Ⅲ。如果 PWM 的 工作 频 率 为 30 Hz,则 启动 时 间 大 约为 1 S。一旦 检测 到故 障信 号 ,器 件立 即触 发启 动定 时器 ,并 进入 关断 状 态 。
攮 圆瘗
PWM 型直流风扇速度控制 电路
索正 军
(西 安 远 方航 空 技 术 发 展 总 公 司 ,陕 西 西 安 710075) 摘 要 :介 绍 了脉 宽调 制 直 流 电机 风扇 转速 控 制 ICMC642的功 能及 工作 原理 .讨 论 了它的 外 围 电 路 的 设 计 方 法 ,并 介 绍 了几 个 典 型 的 应 用 电路 。 关 键 词 :PW M ;风 扇 ;转 速 ;控 制 器 ;M C642
2 工 作 原 理
MC642的工 作原 理及 引 脚排 列 图如 图 1所 示 。 下 面对 其 内部 的组成 原理 加 以说 明 。
2.1 PW M 电 路
PWM 电路 由斜 波发 生器 和 阈值检 测器 组成 。其 PWM 频 率 由 输 入脚 上 的电 容决定 。在 30 Hz频 率 时 ,推荐 使用 1 F的 cF 同时 ,该 PWM 频率 也是 启 动 和故 障定 时器 的 时基 。
基于LM324的PWM直流电机调速电路图
基于LM324的PWM直流电机调速电路图基于LM324的PWM直流电机调速电路图它主要由U1(LM324)和Q1组成。
图1中,由U1a、U1d组成振荡器电路,提供频率约为400Hz的方波/三角形波。
U1c产生6V的参考电压作为振荡器电路的虚拟地。
这是为了振荡器电路能在单电源情况下也能工作而不需要用正负双电源。
U1b 这里接成比较器的形式,它的反相输入端(6脚)接入电阻R6、R7和VR1,用来提供比较器的参考电压。
这个电压与U1d的输出端(14脚)的三角形波电压进行比较。
当该波形电压高于U1b的6脚电压。
U1b的7脚输出为高电平;反之,当该波形电压低于U1b的6脚电压,U1b的7脚输出为低电平。
由此我们可知,改变U1b的6脚电位使其与输入三角形波电压进行比较。
就可增加或减小输出方波的宽度,实现脉宽调制(PWM)。
电阻R6、R7用于控制VR1的结束点,保证在调节VR1时可以实现输出为全开(全速或全亮)或全关(停转或全灭),其实际的阻值可能会根据实际电路不同有所改变。
图1中,Q1为N沟道场效应管,这里用作功率开关管(电流放大),来驱动负载部分。
前面电路提供的不同宽度的方波信号通过栅极(G)来控制Q1的通断。
LED1的亮度变化可以用来指示电路输出的脉冲宽度。
C3可以改善电路输出波形和减轻电路的射频干扰(RFI)。
D1是用来防止电机的反电动势损坏Q1. 当使用24v的电源电压时,图1电路通过U2将24V转换成12V供控制电路使用。
而Q1可以直接在21v电源上,对于Q1来讲这与接在12v 电源上没有什么区别。
参考图1,改变J1、J2的接法可使电路工作在不同电源电压(12V或24V)下。
当通过Q1的电流不超过1A时,Q1可不用散热器。
但如果Q1工作时电流超过1A时,需加装散热器。
如果需要更大的电流(大于3A),可采用IRFZ34N等替换Q1.。
基于C51单片机的直流电机PWM调速控制(包含原理图及C源代码)
基于C51单片机的直流电机PWM调速控制--SQ这是最近一阶段自己学习所获,现分享与大家。
这里采用A T89C52单片机做主控制芯片,实现两路直流电机的PWM调速控制,另外还可以实现转向、显示运行时间、显示档位等注:考虑小直流电机自身因素,调速范围仅设有四级电路原理图:C语言程序源代码:/******************** 硬件资源分配*********************/数码管:显示电机状态(启停、正反、速度)、运行时间、是否转弯按键:K4 启动/暂停K3 正反转/转弯允许K2 加速/左转/运行时间清零K1 减速/右转/停止定时器:T0 数码管动态显示,输出PWMT1 运行时间记录********************************************************//*******主程序文件PWM.c******/#include <reg52.h>#include "Afx.h"#include "Config.c"#define CIRCLE 5 //脉冲周期//按键定义uchar key,key_tmp=0, _key_tmp=0;//显示定义uchar LedState=0xF0; //LED显示标志,0xF0不显示,Ox00显示uchar code LED_code_d[4]={0xe0,0xd0,0xb0,0x70}; //分别选通1、2、3、4位uchar dispbuf[4]={0,0,0,0}; //待显示数组uchar dispbitcnt=0; //选通、显示的位uchar mstcnt=0;uchar Centi_s=0,Sec=0,Min=0; //分、秒、1%秒//程序运行状态标志bit MotState=0; //电机启停标志bit DirState=0; //方向标志0前,1后uchar State1=-1;uchar State2=-1;uchar State3=0;uchar State4=-1;uchar LSpeed=0;uchar RSpeed=0;//其他uint RunTime=0;uint RTime_cnt=0;uint LWidth;uint RWidth; //脉宽uint Widcnt=1;uint Dispcnt;//函数声明void key_scan(void);void DisBuf(void);void K4(void);void K3(void);void K2(void);void K1(void);void disp( uchar H, uchar n );void main(void){P1|=0xF0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=0xFC;TL0=0x66; //T0,1ms定时初值TH1=0xDB;TL1=0xFF; //T1,10ms定时初值TR0=1;Widcnt=1;while(1){key_scan();switch(key){case 0x80: K1(); break;case 0x40: K2(); break;case 0x20: K3(); break;case 0x10: K4(); break;default:break;}key=0;DisBuf();LWidth=LSpeed;RWidth=RSpeed;}}//按键扫描**模拟触发器防抖void key_scan(void){key_tmp=(~P3)&0xf0;if(key_tmp&&!_key_tmp) //有键按下{key=(~P3)&0xf0;}_key_tmp=key_tmp ;}//按键功能处理/逻辑控制void K4(void){if(State4==-1){State4=1;TR1=1;dispbuf[3]=1;LedState=0x00; //打开LEDMotState=1; //打开电机LSpeed=1;RSpeed=1; //初速设为1}else if(State4==1){State4=0;TR1=0;MotState=0; //关闭电机}else if(State4==0){MotState=1;if(State3==0){State4=1;TR1=1;}else if(State3==1){LSpeed=2;RSpeed=2;}}}void K3(void){if(State4==1)DirState=!DirState;if(State4==0){if(State3==0){State3=1; //可以转向标志1可以,0不可以TR1=1;dispbuf[3]=9;MotState=1;LSpeed=2;RSpeed=2;}else if(State3==1){State3=0;TR1=0;dispbuf[3]=0;MotState=0;}}}void K2(void){if(State4==1&&LSpeed<4&&RSpeed<4){LSpeed++;RSpeed++;}else if(State4==0){if(State3==0){//State4=-1;//LedState=0xF0;MotState=0;Sec=0;Min=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=0;LSpeed=2;RSpeed++;}}}void K1(void){if(State4==1&&LSpeed>1&&RSpeed>1){LSpeed--;RSpeed--;}else if(State4==0){if(State3==0){State4=-1;LedState=0xF0;MotState=0;}else if(State3==1&&LSpeed<4&&RSpeed<4){//TurnState=1;LSpeed++;RSpeed=2;}}}//显示预处理void DisBuf(void){if(RTime_cnt==100){Sec++;RTime_cnt=0;}if(Sec==60){Min++;Sec=0;}if(State4==1){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;if(!DirState) //正转dispbuf[3]=LSpeed;if(DirState) //反转dispbuf[3]=LSpeed+4;}if(State4==0){if(State3==0){dispbuf[0]=Sec%10;dispbuf[1]=Sec/10;dispbuf[2]=Min;dispbuf[3]=0;}if(State3==1){dispbuf[0]=RSpeed;dispbuf[1]=LSpeed;dispbuf[2]=Min;dispbuf[3]=9;}}}//LED驱动void disp( uchar H, uchar n ){P1=n;P1|=LedState ;P1|=LED_code_d[H];}//T0中断**显示/方波输出void Time_0() interrupt 1{TH0=0xFC;TL0=0x66;Widcnt++;Dispcnt++;//电机驱动/方波输出if(Widcnt>CIRCLE){Widcnt=1;}if(Widcnt<=LWidth)LMot_P=!DirState&&MotState;elseLMot_P=DirState&&MotState;LMot_M=DirState&&MotState;if(Widcnt<=RWidth)RMot_P=!DirState&&MotState;elseRMot_P=DirState&&MotState;RMot_M=DirState&&MotState;//显示if(Dispcnt==5){disp(dispbitcnt,dispbuf[dispbitcnt]);dispbitcnt++;if(dispbitcnt==4){dispbitcnt=0;}Dispcnt=0;}}//T1中断**运行时间void Time_1() interrupt 3{TH1=0xDB;TL1=0xFF;RTime_cnt++;}/******配置文件Afx.h******/#ifndef _AFX_#define _AFX_typedef unsigned char uchar;typedef unsigned int uint;typedef unsigned long ulong;#endif/******IO配置文件Config.c******/#ifndef _Config_#define _Config_#include "Afx.h"#include <reg52.h>//显示定义sbit led=P3^2;//电机引脚定义sbit LMot_P=P2^2; sbit LMot_M=P2^3; sbit RMot_P=P2^0; sbit RMot_M=P2^1;#endif。
pwm电机调速程序
PWM电机调速程序*******************************************************************/ /* 程序名:PWM直流电机调速 *//* 晶振:11.00592 MHz CPU型号:AT89C51 *//* 直流电机的PWM波控制,可以直接的调速从0到20级的调速 *//*****************************************************************/ #include<reg51.h>#define TH0_TL0 (65536-1000)//设定中断的间隔时长unsigned char count0 = 50;//低电平的占空比unsigned char count1 = 0;//高电平的占空比bit Flag = 1;//电机正反转标志位,1正转,0反转sbit Key_add=P2 ^ 0; //电机减速sbit Key_dec=P2 ^ 1; //电机加速sbit Key_turn=P2 ^ 2; //电机换向sbit PWM1=P2^6;//PWM 通道 1,反转脉冲sbit PWM2=P2^7;//PWM 通道 2,正转脉冲unsigned char Time_delay;/************函数声明**************/void Delay(unsigned char x);void Motor_speed_high(void);void Motor_speed_low(void);void Motor_turn(void);void Timer0_init(void);/****************延时处理**********************/void Delay(unsigned char x){Time_delay = x;while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔}/*******按键处理加pwm占空比,电机加速**********/void Motor_speed_high(void)//{if(Key_add==0)Delay(10);if(Key_add==0){count0 += 5;if(count0 >= 100){count0 = 100;}}while(!Key_add);//等待键松开}}/******按键处理减pwm占空比,电机减速*****/ void Motor_speed_low(void){if(Key_dec==0){Delay(10);if(Key_dec==0){count0 -= 5;if(count0 <= 0){count0 = 0;}}while(!Key_dec );}}/************电机正反向控制**************/ void Motor_turn(void){if(Key_turn == 0){Delay(10);if(Key_turn == 0){Flag = ~Flag;}while(!Key_turn);}/***********定时器0初始化***********/void Timer0_init(void){TMOD=0x01; //定时器0工作于方式1TH0=TH0_TL0/256;TL0=TH0_TL0%256;TR0=1;ET0=1;EA=1;}/*********主函数********************/void main(void){Timer0_init();while(1){Motor_turn();Motor_speed_high();Motor_speed_low();}}/**************定时0中断处理******************/ void Timer0_int(void) interrupt 1 using 1{TR0 = 0;//设置定时器初值期间,关闭定时器TL0 = TH0_TL0 % 256;TH0 = TH0_TL0 / 256 ;//定时器装初值TR0 = 1;if(Time_delay != 0)//延时函数用{Time_delay--;}if(Flag == 1)//电机正转{PWM1 = 0;if(++count1 < count0)PWM2 = 1;}elsePWM2 = 0;if(count1 >= 100){count1=0;}}else //电机反转{PWM2 = 0;if(++count1 < count0){PWM1 = 1;}elsePWM1 = 0;if(count1 >= 100){count1=0;}}}//-----------------------------------------------------------------------------#include <c8051f330.h> // SFR declarations#include <math.h>// Function Prototypes//-----------------------------------------------------------------------------#define CMD_RESET 0xA4 //HD7279复位#define DECODE1 0xc8 //方式0译码sbit cs=P1^3;sbit clk=P1^2;sbit dat=P1^1;sbit key=P1^0;sbit led_D1003=P0^7;sbit sw1=P1^7;sbit sw2=P1^6;sbit sw3=P1^5;sbit sw4=P1^4;void long_delay(void); //延时函数void short_delay(void);void delay10ms(unsigned char);void write7279(unsigned char,unsigned char); //HD7279写指令void send_byte(unsigned char);void delay(unsigned char);void disp1(unsigned int);void OSCILLATOR_Init (void);void PORT_Init (void);void PCA0_Init (void);void Timer0_Init(void);void Ext_Interrupt_Init (void);//-----------------------------------------------------------------------------// Global Variables//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------// main() Routine//-----------------------------------------------------------------------------unsigned int CEX0_Compare_Value; // Holds current PCA compare valueunsigned int tmr,Speed_evaluate;unsigned char num,num1,num2,num3,a;unsigned int Speed,pi,Speed2;unsigned int Speed1[10];typedef struct {double SetPoint; /* 设定目标Desired Value */double Proportion; /* 比例常数Proportional Const */double Integral; /* 积分常数Integral Const */double Derivative; /* 微分常数Derivative Const */double LastError; /* 前一项误差*/double PrevError; /* 前第二项误差*/double SumError; /* 误差和*/} PID;double PIDCalc( PID *pp, double NextPoint ){double dError,Error,Pout;Error = pp->SetPoint - NextPoint; /* */pp->SumError += Error; /* /dError = pp->LastError - pp->PrevError; /* */pp->PrevError = pp->LastError;pp->LastError = Error; /* */Pout= pp->Proportion * Error + pp->Integral * pp->SumError +pp->Derivative * dError ;if(Pout>1100)Pout=1000;if(Pout<100)Pout=100;return (Pout);}PID sPID; //定义PID结构体变量double rOut; //PID响应输出unsigned char rIn; //设置PID反馈值double x;double sumout;unsigned char dd;//设置PID输出void main (void){sPID.Proportion = 0.44; //设置PsPID.Integral = 0.70; //设置IsPID.Derivative = 0.0; //设置D//sPID.SetPoint = CEX0_Compare_Value;//sPID.SetPoint = CEX0_Compare_Value; //设置PID输出PCA0MD = 0x00; // Disable watchdog timerled_D1003=0;PORT_Init (); // Initialize crossbar and GPIOOSCILLATOR_Init (); // Initialize oscillatorPCA0_Init (); // Initialize PCA0IP=0x82; //定时器中断0高于外部中断0Timer0_Init();Ext_Interrupt_Init ();for (tmr=0;tmr<0x2000;tmr++);send_byte(CMD_RESET);//HD7279复位// Globally enable interruptsEA = 1;sPID.SetPoint=70;while (1){delay10ms(100);//键盘程序 -------------------------------------------------------------if(sw1==0) //按键1是否按下{if(sw1==0)//再次检查按键{num++; //若按键按下,num加1if(num==1) //到9归0{num=0;}while(sw1==0);//按键释放}// delay10ms(100);}write7279(DECODE1+4,num); //将num写入HD7279第1位 delay10ms(1);if(sw2==0){if(sw2==0){num1++;if(num1==2){num1=0;}while(!sw2);}// delay10ms(100);}write7279(DECODE1+5,num1);//将num1写入HD7279第2位delay10ms(1);if(sw3==0){if(sw3==0){num2++;if(num2==10){num2=0;}while(!sw3);}// delay10ms(100);}write7279(DECODE1+6,num2);//将num1写入HD7279第2位delay10ms(1);if(sw4==0){if(sw4==0){num3++;if(num3==10){num3=0;}while(!sw4);}// delay10ms(100);}write7279(DECODE1+7,num3);//将num1写入HD7279第2位delay10ms(1);Speed_evaluate=num*1000+num1*100+num2*10+num3;sPID.SetPoint=Speed_evaluate;//控制程序-----------------------------------------------------------------//---------------------------------------------------------------------------}}void OSCILLATOR_Init (void){OSCICN = 0x83; // Set internal oscillator torun// at its maximum frequencyCLKSEL = 0x00;}void PORT_Init (void){XBR0 = 0x00;XBR1 = 0x41;// Enable crossbar and weak pull-upsP0MDOUT |= 0x10; // Set CEX0 (P0.4) to push-pull P0SKIP |=0x0F; //P1SKIP = 0x00;P1MDOUT= 0x0f;}void PCA0_Init (void){PCA0CN = 0x00; // Stop counter; clear allflagsPCA0MD = 0x01; // Use Ettern ime basePCA0CPM0 = 0xCB; // Module 0 = 16-bit PWM modeand// enable Module 0 Match and Interrupt// Flags// Configure initial PWM duty cycle = 50%CEX0_Compare_Value = 65536 - (65536 * 0.15);PCA0CPL0 = (CEX0_Compare_Value & 0x00FF);PCA0CPH0 = (CEX0_Compare_Value & 0xFF00)>>8;EIE1 |= 0x10; // Enable PCA interrupts// Start PCA counterCR = 1;}void Ext_Interrupt_Init (void){TCON |= 0x05; // /INT 0 and /INT 1 are edge triggeredIT01CF = 0x10; // /INT0 active low; /INT0 on P0.0;// /INT1 active low; /INT1 on P0.1EX0 = 1; // Enable /INT0 interrupts}void Timer0_Init(void){TH0 = 0 ; // Init Timer0 High registerTL0 = 0 ; // Init Timer0 Low registerTMOD |= 0x01; // Timer0 in 16-bit mode方式1CKCON |= 0x02; // Timer0 uses a 1:48 prescalerET0 = 1; // Timer0 interrupt enabledTCON|=0x10;// Timer0 ON}// PCA0_ISR//-----------------------------------------------------------------------------void PCA0_ISR (void) interrupt 11{CCF0 = 0; // Clear module 0 interrupt flag.PCA0CPL0 = (CEX0_Compare_Value & 0x00FF);PCA0CPH0 = (CEX0_Compare_Value & 0xFF00)>>8;}void Timer0_ISR (void) interrupt 1{int j,sum;TF0=0;// Clear interrupt flag.a++;if (a==4){Speed1[pi]=Speed;if(pi>=3){ EX0 = 0;for(j=0;j<=3;j++){sum=sum+Speed1[j];Speed2=sum/4;disp1(Speed2);Speed=0;pi=0;EX0 = 1;}a=0;sum=0;if(pi>=3)pi=0;elsepi++;TH0 = 0; // Reinit Timer0 High register TL0 = 0; // Reinit Timer0 Low registerif(abs( sPID.SetPoint-Speed2)<=5) {CEX0_Compare_Value=CEX0_Compare_Value;}else{rIn =Speed2;for(dd=0;dd<50;dd++)x=rIn;//x = 5.0 * (double)rIn / 256.0;rOut = PIDCalc ( &sPID,x );// sumout=rOut*256/5;if(rOut==100)sumout=0;elsesumout= (0.85/1000.0)*rOut;//CEX0_Compare_Value=CEX0_Compare_Value-sumout;CEX0_Compare_Value = 65536 - (65536 * ( sumout+0.15));}}else{TH0 = 0; // Reinit Timer0 High registerTL0 = 0; // Reinit Timer0 Low register}}void INT0_ISR (void) interrupt 0{IE0=0; // // Clear interrupt flag.Speed++;}void write7279(unsigned char cmd, unsigned char dta) {send_byte(cmd);send_byte(dta);}void send_byte( unsigned char out_byte){unsigned char i;cs=0;long_delay();for (i=0;i<8;i++){if (out_byte&0x80){dat=1;}else{dat=0;}clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2; }dat=0;}void long_delay(void){unsigned char i;for (i=0;i<0x30;i++);}void short_delay(void){unsigned char i;for (i=0;i<8;i++);}void delay10ms(unsigned char time) {unsigned char i;unsigned int j;for (i=0;i<time;i++){for (j=0;j<0x390;j++);}}void disp1(unsigned int date){unsigned char d0, d1, d2 , d3; d0=date / 1000;d1=(date-d0*1000)/100;d2=(date-d0*1000-d1*100)/10 ;d3= date-d0*1000-d1*100-d2*10;write7279(DECODE1,d0);delay10ms(1);write7279(DECODE1+1,d1);delay10ms(1);write7279(DECODE1+2,d2);delay10ms(1);write7279(DECODE1+3,d3);delay10ms(1);}。
1-3 直流电动机的脉宽调制(PWM)调速
若VT1关断时间长,在t=t2时,电枢电流ia衰减 到零,那么在电动机内电势Ea的作用下,VT2导通, 电枢电流ia 将沿着相反的方向从B点流入A点,电机 进入能耗制动。通过控制VT2的时间间隔可以控制电 机的制动转矩 注意:在VT1重新导通之间,必须先关闭VT2, 让电枢电流经过VD1续流,电机短时进入再生制动状 态,否则在VT2还没有完全关断之前就让VT1导通, 电源经过VT2、VT1直接短路,损坏开关元件。
1、单极性脉宽调制方式 系统输出电压UA的极性是通过一个控制电压Uc 来改变的。 Uc为正,VT1与VT2交替导通,VT4一直导通, VT3关断,此时,B点总是为正,A点总是为负 Uc为负,VT3与VT4交替导通,VT2一直导通, VT1关断,此时,B点总是为负,A点总是为正
工作原理: Uc为正时 0<t<t1时,VT1导通,VT2关断,若Us>Ea, 电枢电流经VT1、VT4从B流到A,电机处在电动 机状态。 在t1<t<T时,VT1关闭,VD2与VT4续流,电枢 电流方向不变,电机仍处在电动机状态。 若在t1<t<T期间的某一时刻t2电枢电流衰减到 零,那么在t2<t<T期间,Ea使VT2导通,电枢电 流反向,经VT2、VD4从A流到B,电机进入能耗 制动状态 若Ea>Us,在VT2关断期间,电枢电流经VD1 和VD4输回电网,电机作再生制动 Uc为负时,原理与此类似,电机反向
如果电流连续,则电机始终处于电动状态 若在t1<t<T期间的某一时刻t2电枢电流衰减到 零,那么在t2<t<T期间,Us和Ea共同作用,使 VT2、VT3导通,电枢电流反向,经VT2、VT3从A 流到B,电机进入反接制动状态 在VT1、VT4再次导通之前,必须关断VT2、 VT3,电枢电流VD1、VD4续流,电机进入再生制 动
sg3525pwm直流电机电路图
采用SG3525的直流电机驱动电路图收藏 | 分类: | 查看: 599 | 评论(0)下图是一采用SG3525的理想控制直流电动机精确控制电路,以及照明度等和小型加热器等其他应用电路转换成一系列脉冲,这样,在脉冲持续时间直接成正比的直流电压。
该电路同时还可防止过载,短路,PWM(脉宽) 调制范围可从0-100%的调整,PWM频率在100Hz- 5KHZ调节。
工作电压从+8 V?35V之间,最低电流消耗约为35毫安。
最大电流可以达到6.5A。
效率优于90%满负荷。
三只电位器的功能如下:VR1:确定最低输出电压VR3:设置最大输出电压VR2:设置输出频率。
1.1 PWM控制芯片SG3525功能简介随着电能变换技术的发展,功率MOSFET在开关变换器中开始广泛使用,为此美国硅通用半导体公司(Silicon General)推出SG3525。
SG3525是用于驱动N沟道功率MOSFET。
其产品一推出就受到广泛好评。
SG3525系列PWM控制器分军品、工业品、民品三个等级。
下面我们对SG3525特点、引脚功能、电气参数、工作原理以及典型应用进行介绍。
SG3525是电流控制型PWM控制器,所谓电流控制型脉宽调制器是按照接反馈电流来调节脉宽的。
在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大器输出信号进行比较,从而调节占空比使输出的电感峰值电流跟随误差电压变化而变化。
由于结构上有电压环和电流环双环系统,因此,无论开关电源的电压调整率、负载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器。
1.1.1 SG3525引脚功能及特点简介其原理图如图4.13下:1.Inv.input(引脚1):误差放大器反向输入端。
在闭环系统中,该引脚接反馈信号。
在开环系统中,该端与补信号输入端(引脚9)相连,可构成跟随器。
2.Noninv.input(引脚2):误差放大器同向输入端。
在闭环系统和开环系统中,该端接给定信号。
LM324直流电机调速电路
LM324组成的PWM直流电机产生电路它主要由U1(LM324)和Q1组成图4.1中,由U1a、U1d组成振荡器电路,提供频率约为400Hz的方波/三角形波。
U1c产生6V的参考电压作为振荡器电路的虚拟地。
这是为了振荡器电路能在单电源情况下也能工作而不需要用正负双电源。
U1b这里接成比较器的形式,它的反相输入端(6脚)接入电阻R6、R7和VR1,用来提供比较器的参考电压。
这个电压与U1d的输出端(14脚)的三角形波电压进行比较。
当该波形电压高于U1b 的6脚电压.U1b的7脚输出为高电平;反之,当该波形电压低于U1b的6脚电压,U1b的7脚输出为低电平。
由此我们可知,改变U1b的6脚电位使其与输入三角形波电压进行比较。
就可增加或减小输出方波的宽度,实现脉宽调制(PWM)。
电阻R6、R7用于控制VR1的结束点,保证在调节VR1时可以实现输出为全开(全速或全亮)或全关(停转或全灭),其实际的阻值可能会根据实际电路不同有所改变。
图4.1中,Q1为N沟道场效应管,这里用作功率开关管(电流放大),来驱动负载部分。
前面电路提供的不同宽度的方波信号通过栅极(G)来控制Q1的通断。
LED1的亮度变化可以用来指示电路输出的脉冲宽度。
C3可以改善电路输出波形和减轻电路的射频干扰(RFI)。
D1是用来防止电机的反电动势损坏Q1。
当使用24v的电源电压时,图1电路通过U2将24V转换成12V供控制电路使用。
而Q1可以直接在21v电源上,对于Q1来讲这与接在12v电源上没有什么区别。
参考图1,改变J1、J2的接法可使电路工作在不同电源电压(12V或24V)下。
当通过Q1的电流不超过1A时,Q1可不用散热器。
但如果Q1工作时电流超过1A时,需加装散热器。
如果需要更大的电流(大于3A),可采用IRFZ34N等替换Q1。
更换大功率场效应管,如IRF360等可驱动10A以上直流电机。
图4.1 LM324组成的PWM直流电机产生原理图工作原理脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。
PWM信号控制直流电机调速的源代码
if(index==1) /*电机1的处理*/
{
m1=abs(speed); /*取速度的绝对值*/
if(speed<0) /*速度值为负则反转*/
{
s1=0;
s2=1;
}
else /*不为负数则正转*/
{
s1=1;
s2=0;
}
}
if(index==2) /*电机2的处理*/
{
m2=abs(speed); /*电机2的速度控制*/
{
motor(1,i);
motor(2,i);
delay(5000);
}
for(i=0;i<=100;i++) /*反转加速*/
{
motor(1,-i);
motor(2,-i);
delay(5000);
}
for(i=100;i>0;i--) /*反转减速*/
{
motor(1,-i);
motor(2,-i);
uchar m2=0; /*电机2速度值*/
uchar tmp1,tmp2; /*电机当前速度值*/
/*电机控制函数index-电机号(1,2); speed-电机速度(-100—100) */
void motor(uchar index, char speed)
{
if(speed>=-100 && speed<=100)
if(speed<0) /*电机2的方向控制*/
{
s3=0;
s4=1;
}
else
{
s3=1;
s4=0;
}
}
}
}
void delay(uint j) /*简易延时函数*/
单片机课程设计完整版《PWM直流电动机调速控制系统》
单片机原理及应用课程设计报告设计题目:学院:专业:班级:学号:学生姓名:指导教师:年月日目录设计题目 (1)1 设计要求及主要技术指标: (1)1.1 设计要求 (1)1.2 主要技术指标 (2)2 设计过程 (2)2.1 题目分析 (4)2.2 整体构思 (4)2.3 具体实现 ................... 错误!未定义书签。
3 元件说明及相关计算 (5)3.1 元件说明 (5)3.2 相关计算 (6)4 调试过程 (6)4.1 调试过程 (6)4.2 遇到问题及解决措施 (7)5 心得体会 (7)参考文献 (8)附录一:电路原理图 (9)附录二:程序清单 (9)设计题目:PWM直流电机调速系统本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。
电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。
通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。
电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。
关键词:直流电机调速;定时中断;电动机;PWM波形;LED显示器;51单片机1 设计要求及主要技术指标:基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。
1.1 设计要求(1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。
(2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。
(3)设计一个4个按键的键盘。
K1:“启动/停止”。
K2:“正转/反转”。
K3:“加速”。
K4:“减速”。
(4)手动控制。
在键盘上设置两个按键----直流电动机加速和直流电动机减速键。
单片机控制直流电机调速汇编
单片机控制直流电机调速汇编单片机是一种集成电路芯片,具有微处理器的所有功能,并可用于嵌入式系统中。
直流电机是一种常见的电动机,其转速与电压成正比。
通过单片机控制直流电机调速可以实现对电机转速的精确控制,广泛应用于机械、电子、自动化等领域。
单片机控制直流电机调速的基本原理是通过改变电压和脉宽调制(PWM)信号的占空比来控制直流电机的电压和转速。
实现这一控制的关键是编写相关的汇编程序。
编写汇编程序前,首先需要了解单片机的输入输出口、定时器和中断控制等相关知识。
使用合适的端口初始化函数,将所需的引脚配置为输出模式。
接下来,需要使用定时器来产生所需的PWM信号。
可以选择合适的定时器模式,并设置相关的定时器计数值和预分频系数,以得到所需的PWM频率和占空比。
通过改变PWM信号的占空比,可以控制直流电机的电压和转速。
占空比为高电平时间占总周期时间的比例。
通过改变占空比的大小,可以调整输出电压的大小,进而控制电机转速。
编写汇编程序时,可以使用定时器中断来控制PWM信号的占空比改变。
在中断服务子程序中,可以根据所需的转速和占空比设定,改变输出口的状态,从而改变PWM信号的占空比。
为了实现精确的调速控制,还可以在汇编程序中加入PID控制算法。
PID控制是一种经典的控制算法,可以根据实际转速和目标转速之间的差异,自动调整PWM信号的占空比,实现闭环控制。
在编写汇编程序时,需要仔细考虑程序执行的时间和顺序。
可以使用延时循环来控制程序的执行时间,以保证定时器和PWM信号的稳定性。
总之,单片机控制直流电机调速的汇编程序编写需要对单片机的输入输出口、定时器和中断控制等相关知识有一定的了解。
通过合理设置定时器和PWM信号的占空比,以及加入PID控制算法,可以实现精确的调速控制。
直流电机PWM调速电路
.《电子技术》课程设计报告班级电气1107 学号**********学生姓名海彬专业电气信息类学院电子与电气工程学院指导教师电子技术课程设计指导小组工学院电子与电气工程学院2012年05月直流电机PWM调速电路一)设计任务与要求:1.设计电机驱动主回路,实现直流电机的正反向转动;2.设计PWM驱动信号发生电路;3.设计电机转速显示电路;4.设计电机转速调节电路,可以按键或电位器调节电机转速;5.安装调试。
二)系统原理及功能概述1)直流电机脉宽调速电路原理对小功率直流电机调速系统,使用单片机是极为便的。
其法是通过改变电机电枢电压接通时间与通电期的比值(即占空比)来控制电机速度。
这种法称为脉冲宽度调制(Pulse Width Modulation),简称PWM。
改变占空比的法有3 种:(1)定宽调频法,这种法是保持t1 不变,只改变t2 ,这样期T(或频率)也随之改变;(2)调宽调频法,保持t1 不变,而改变t2 ,这样也使期T(或频率)改变;(3)定频调宽法,这种法是使期T(或频率)不变,而同时改变t2 和t1 由,当控制频率与系统的固有频率接近于前两种法都改变了期(或频率)时,将会引起振荡,用的比较少,因此本系统用的是定频调宽法。
在脉冲作用下,当电机通电时,速度增加。
电机断电时,速度逐渐减小。
只要按一定规律,改变通断电时间,即可实现对电机的转速控制。
设电机永远接通电源时,其最大转速为Vmax,设占空比D=t1 /T ,则电机的平均速度为Vd,平均速度Vd 与占空比D 的函数曲线如图1-2 所示,从图可以看出,VD 与占空比 D 并不是完全线性关系(图中实线),当系统允时,可以将其近似的看成线性关系(图中虚线),本系统采用近似法。
平均速度与占空比的关系2)比例积分控制规律系统的控制算法主要采用了PI 控制算法。
其控制算法为:其中Kp 为比例系数,Ti 为积分系数。
若单片机的采样期为T,则上式可近似为:上式即为位置式PI 控制算法。
直流电机脉宽调制调速
脉宽调制 直流斩波) (直流斩波)
不控整流
M
Hunan University
一、不可逆脉宽调制调速系统
Hunan University
电流连续情况
t1 U A = U s = ρU s T
Hunan University
电流断续情况
U A = ρ Us
'
Hunan University
带制动功能直流电机脉宽调速系统
Hunan University
1
3
2
4 VT1,VT2 VD2 VT2—VT2 VD2, VT2, VT1,VT2—VD2,VT2 VT2, VD4—VD2 VD2, VD4 VD2,VD4 VT4导通期间,电机能运行于1、2 导通期间,电机能运行于 、 导通期间 象限; 导通期间, 象限;VT2导通期间,电机运行于 导通期间 3、4象限。 象限。 、 象限
能耗制动
能耗制动时, 能耗制动时,电动机作 为他励发电机运行, 为他励发电机运行,由 于发电机的电磁转矩与 电枢旋转的方向是相反 因而产生制动作用, 的,因而产生制动作用, 使电机转速变慢, 使电机转速变慢,直至 电枢旋转的动能全部变 为电能,消耗在电阻上。 为电能,消耗在电阻上。
基于单片机的PWM直流电机调速系统设计论文附电路图、程序清单
第1章引言1.1 概况现代工业的电力拖动一般都要求局部或全部的自动化,因此必然要与各种控制元件组成的自动控制系统联系起来,而电力拖动则可视为自动化电力拖动系统的简称。
在这一系统中可对生产机械进行自动控制。
随着近代电力电子技术和计算机技术的发展以及现代控制理论的应用,自动化电力拖动正朝着计算机控制的生产过程自动化的方向迈进。
以达到高速、优质、高效率地生产。
在大多数综合自动化系统中,自动化的电力拖动系统仍然是不可缺少的组成部分。
另外,低成本自动化技术与设备的开发,越来越引起国内外的注意。
特别对于小型企业,应用适用技术的设备,不仅有益于获得经济效益,而且能提高生产率、可靠性与柔性,还有易于应用的优点。
自动化的电力拖动系统更是低成本自动化系统的重要组成部分。
在如今的现实生活中,自动化控制系统已在各行各业得到广泛的应用和发展,其中自动调速系统的应用则起着尤为重要的作用。
虽然直流电机不如交流电机那样结构简单、价格便宜、制造方便、容易维护,但是它具有良好的起、制动性能,宜于在广泛的范围内平滑调速,所以直流调速系统至今仍是自动调速系统中的主要形式。
现在电动机的控制从简单走向复杂,并逐渐成熟成为主流。
其应用领域极为广泛,例如:军事和宇航方面的雷达天线、火炮瞄准、惯性导航等的控制;工业方面的数控机床、工业机器人、印刷机械等设备的控制;计算机外围设备和办公设备中的打印机、传真机、复印机、扫描仪等的控制;音像设备和家用电器中的录音机、数码相机、洗衣机、空调等的控制。
随着电力电子技术的发展,开关速度更快、控制更容易的全控型功率器件MOSFET 和IGBT成为主流,脉宽调制技术表现出较大的优越性:主电路线路简单,需要用的功率元件少;开关频率高,电流容易连续,谐波少,电机损耗和发热都较小;低速性能好,稳速精度高,因而调速范围宽;系统快速响应性能好,动态抗扰能力强;主电路元件工作在开关状态,导通损耗小,装置效率较高;近年来,微型计算机技术发展速度飞快,以计算机为主导的信息技术作为一崭新的生产力,正向社会的各个领域渗透,直流调速系统向数字化方向发展成为趋势。
NE555构成的直流电机PWM调速器电路图
NE555构成的直流电机PWM调速器电路图
它是一个占空比可调的脉冲震荡器。
电机M是用它的输出脉冲驱动的。
脉冲的占空比越大(导通时间越长),则电机的驱动电流越大,转速快;
脉冲的占空比越小(导通时间越短),则点击的驱动电流越小,转速慢。
因此可以条件RP控制占空比,从而调节电机的转速。
如果电机的工作电流小于200mA,则可以用NE555第3引脚直接驱动;如果电机需要更大的驱动电流,应增加驱动和功放级,以便匹配电机的输出功率。
图中VD3是续流二极管,在功放管截止(关断)期间为电机驱动电流提供通路,既保证驱动电流的连续性,又可以防止电机线圈的自感反向电动势损坏功放管。
图中C2和电阻R3是补偿网络,它可以使负载呈现出电阻性质。
整个电路的脉冲频率在3~5KHz之间;频率太低电机会抖动,太高会因占空比范围太小使得电机调速范围减小。
下载发烧友APP
打造属于您的人脉电子圈
关注电子发烧友微信
有趣有料的资讯及技术干货
关注发烧友课堂
锁定最新课程活动及技术直播
电子发烧友观察
一线报道· 深度观察· 最新资讯
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。
文章观点仅代表作者本人,不代表电子发烧友网立场。
文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
直流调速系统PWM控制器实用电路
时基电路由IC14(CC7555)、IC15 (CC40106)组成。
CC7555是CMOS定时专用器件,其定时时间能精确地由外部定时电阻、电容控制。
在该时基电路中,通过电路参数的选择,产生周期约为100 s、占空比为100∶1的脉冲从3脚输出,经IC15-2反相后成为宽度为1 s、占空比为1∶100的脉冲,此脉冲就作为A/D转换电路的采样和转换信号。
此电路的采样频率可达到约10kHz,即每秒钟采样转换10000次左右。
根据采样定理,电路可测量的信号的频率可达5kHz左右。
从IC15-2输出的脉冲同时也作为比较电路的时钟信号。
控制电路包括清零电路和量程转换电路。
测量前先将“工作/清零”开关置“清零”位置,将D型触发器IC13及第一寄存器IC5、IC6和第二寄存器IC7、IC8的全部内容清零,之后将“工作/清零”开关置回“工作”位置,即可测量工作。
量程转换开关分100A 和500A两档,测量时可根据实际情况选择。
参考文献[1]清华大学电子学教研室:数字电子技术基础简明教程.北京:高等教育出版社,1985[2]赵保经等:中国集成电路大全.CM OS集成电路.北京:国防工业出版社,1985[3]张维廉:数字电子技术基础.北京:高等教育出版社,1985(收稿日期:1998-03-15)直流调速系统PWM控制器实用电路王 东 童劲松 高振东*(上海交通大学机械工程学院,上海,200030)*(青岛大学机电工程学院,青岛,266071) 在直流电机PW M调速系统中,改变脉冲信号的占空比可以控制加在电机电枢上的电压,实现对直流电机的调速控制。
PWM信号的产生方法有很多,可采用具有PWM输出口的单片机(如8098)或51系列单片机外扩一片8253通过软件编程产生,也可用专用的PWM芯片设计PWM信号发生器。
这里介绍一种用AT89C2051单片机与通用集成电路4585和4040设计的PWM控制器,它具有控制灵活、工作可靠、价格低廉等优点,其原理如图1所示。
直流电机PWM调速电路
.《电子技术》课程设计报告课题:直流电机PWM调速电路班级电气1107 学号1101205712学生姓名王海彬专业电气信息类学院电子与电气工程学院指导教师电子技术课程设计指导小组淮阴工学院电子与电气工程学院2012年05月直流电机PWM调速电路一)设计任务与要求:1.设计电机驱动主回路,实现直流电机的正反向转动;2.设计PWM驱动信号发生电路;3.设计电机转速显示电路;4.设计电机转速调节电路,可以按键或电位器调节电机转速;5.安装调试。
二)系统原理及功能概述1)直流电机脉宽调速电路原理对小功率直流电机调速系统,使用单片机是极为方便的。
其方法是通过改变电机电枢电压接通时间与通电周期的比值(即占空比)来控制电机速度。
这种方法称为脉冲宽度调制(Pulse Width Modulation),简称PWM。
改变占空比的方法有3 种:(1)定宽调频法,这种方法是保持t1 不变,只改变t2 ,这样周期T(或频率)也随之改变;(2)调宽调频法,保持t1 不变,而改变t2 ,这样也使周期T(或频率)改变;(3)定频调宽法,这种方法是使周期T(或频率)不变,而同时改变t2 和t1 由,当控制频率与系统的固有频率接近于前两种方法都改变了周期(或频率)时,将会引起振荡,用的比较少,因此本系统用的是定频调宽法。
在脉冲作用下,当电机通电时,速度增加。
电机断电时,速度逐渐减小。
只要按一定规律,改变通断电时间,即可实现对电机的转速控制。
设电机永远接通电源时,其最大转速为Vmax,设占空比D=t1 /T ,则电机的平均速度为Vd,平均速度Vd 与占空比D 的函数曲线如图1-2 所示,从图可以看出,VD 与占空比 D 并不是完全线性关系(图中实线),当系统允许时,可以将其近似的看成线性关系(图中虚线),本系统采用近似法。
平均速度与占空比的关系2)比例积分控制规律系统的控制算法主要采用了PI 控制算法。
其控制算法为:其中Kp 为比例系数,Ti 为积分系数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子技术》课程设计报告课题:直流电机PWM调速电路
班级电气1107 学号 1101205712学生姓名王海彬
专业电气信息类
学院电子与电气工程学院
指导教师电子技术课程设计指导小组
淮阴工学院
电子与电气工程学院
2012年05月
直流电机PWM调速电路
一)设计任务与要求:
1.设计电机驱动主回路,实现直流电机的正反向转动;
2.设计PWM驱动信号发生电路;
3.设计电机转速显示电路;
4.设计电机转速调节电路,可以按键或电位器调节电机转速;
5.安装调试。
二)系统原理及功能概述
1)直流电机脉宽调速电路原理
对小功率直流电机调速系统,使用单片机是极为方便的。
其方法是通过改变电机电枢电压接通时间与通电周期的比值(即占空比)来控制电机速度。
这种方法称为脉冲宽度调制(Pulse Width Modulation),简称 PWM。
改变占空比的方法有 3 种:
(1)定宽调频法,这种方法是保持 t1 不变,只改变 t2 ,这样周期 T(或频率)也随之改变;
(2)调宽调频法,保持 t1 不变,而改变 t2 ,这样也使周期 T(或频率)改变;
(3)定频调宽法,这种方法是使周期 T(或频率)不变,而同时改变 t2 和 t1 由,当控制频率与系统的固有频率接近于前两种方法都改变了周期(或频率)时,将会引起振荡,用的比较少,因此本系统用的是定频调宽法。
在脉冲作用下,当电机通电时,速度增加。
电机断电时,速度逐渐减小。
只要按一定规律,改变通断电时间,即可实现对电机的转速控制。
设电机永远接通电源时,其最大转速为 Vmax,设占空比 D= t1 /T ,则电机的平均速度为 Vd,平均速度 Vd 与占空比 D 的函数曲线如图 1-2 所示,从图可以看出,VD 与占空比 D 并不是完全线性关系(图中实线),当系统允许时,可以将其近似的看成线性关系(图中虚线),本系统采用近似法。
平均速度与占空比的关系
2)比例积分控制规律
系统的控制算法主要采用了 PI 控制算法。
其控制算法为:
其中 Kp 为比例系数,Ti 为积分系数。
若单片机的采样周期为 T,则上式可近似为:
上式即为位置式 PI 控制算法。
这里我们采用其增量式控制算法,根据递推原理可得:
则增量式控制算法为:
其中 Kp 为控制器比例系数,Ki 为积分时间常数。
由于系统采用了比例积分调节器简称 PI 调节器,使系统在扰动的作用下,通过 PI 调节器的调节作用使电动机的转速达到静态无差,从而实现了静态无差。
无静差调速系统中,比例积分调节器的比例部分使动态响应比较快无滞后,积分部分使系统消除静差。
3)直流电机调速原理
直流电机转速 n 的表达式为:
式中:U-电枢端电压;I-电枢电流;R-电枢电路总电阻;Φ-每极磁通量;K-与电机结构有关的常数,因此直流电机转速 n 的控制方法有三种,主要以调压调速为主。
本控制器主要通过脉宽调制 PWM 来控制电动机电枢电压,实现调速。
调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。
本系统采用了定频调脉宽方式的 PWM 控制,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生 PWM 脉冲的软件实现上比较方便。
对直流电机转速的控制即可采用开环控制,也可采用闭环控制。
与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差率(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范围可以大大提高。
转速设定值
偏差转速输出
直流电机速度闭环控制方案
三)脉宽可调方波发生电路
四)硬件设计与分析
1)系统硬件组成
图 2-1 为该系统硬件电路设计框图。
根据本系统要求通过软件编程定义键盘各键的功能及显示控制。
有关驱动及主回路控制电路见下几节。
整个系统控制过程为:键盘输入控制信号、参数及速度给定值,单片机经过速度闭环、运算,控制 P 口(自行定义)输出脉冲的占空比,从而控制电机的转速,并经显示电路显示出来。
驱动控制电路见图 2-3。
将单片机软件产生的 PWM 信号经并联使用的施密特反相器,对 IGBT 进行驱动。
2)驱动控制电路
驱动控制电路见图 2-3。
将单片机软件产生的 PWM 信号经并联使用的施密特反相器,对 IGBT 进行驱动。
驱动控制电路
3)主回路控制电路
主电路控制电路见图 2-2。
220 交流电压经过桥式整流电路的整流,再经过电容滤波,经过 IGBT 元件的功率放大,加到直流电机的两端控制电机。
主电路控制电路
4)测速电路
测速电路
5)显示电路
显示电路见图 2-5。
选用共阴 8 段数码管,采用 MAX7219 驱动。
MAX7219 是一种高集成化的串行输入/输出的共阴极 LED 显示驱动器。
每片可驱动 8 位 7 段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需 3 根线。
MAX7219 内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了 MCU 有限的运行时间和程序资源。
MAX7219 芯片上包括 BCD 译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×8 静态 RAM 以及数个工作寄存器。
通过指令设置这些工作寄存器,可以使 MAX7219 进入不同的工作状态。
MAX7219 的详细资料请参考其他书籍,这里不再赘述。
MAX7219 驱动显示电路
按键电路见图 2-6。
52 单片机的 P 口在悬空时默认是高电平,每个按钮通过一个上拉电阻接到+5V 电源,按下按钮,则 P 口变成低电平,这样就可以通过 P 口的状态来反映按钮的按下情况。
按键通过并联电容 C 进行防抖动,无需通过软件部分实现。
五)电机测速
信号调理电路主要利用 LM324 运算放大器设计的比较器,调节比较器偏置电压使脉冲最接近于方波且幅度大于 3.3V。
为了提高测速的精度,在信号后级
添加比较器调理信号为标准的方波,调节比较器运放的偏置电压使方波信号最适合于测速。
在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。
只要按一定规律改变通、断电的时间,即可让电机转速得到控制。
PWM 波产生的思想是,固定 PWM 的周期为 PWMT,t 时间内输出高电平,则剩下 PWMT-t 时间就输出低电平。
通过控制定时器 T1,从而可以实现从 8051 的任意输出口输出不同占空比的脉冲波形。
由于 PWM 信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。
因此,首先必须明确定时器的定时初值与定时时间的关系。
如果单片机的时钟频率为f,定时器/计数器为 N 位,则定时器初值与定时时间的关系为:
式中,Tw —定时器定时初值;N —一个机器周期的时钟数。
N 随着机型的不同而不同。
在应用中,应根据具体的机型给出相应的值。
这样,我们可以通过设定不同的定时初值 Tw,从而改变占空比 D,进而达到控制电机转速的目的。
此次实验采用 12MHz 晶振,计数频率为 1MHz,即每微秒计数器加一,设置PMW 脉冲周期固定为 PWMT10000,即 0.01s。
在实际的直流电机调速系统中,电机的测速由测速电机完成,本次实验系统,由电机自带的霍尔元件完成测速,电机每转一圈,霍尔元件就送出一个脉冲,我们设计的程序是将测速部分嵌套在 PWM 函数里,这样就节省了一个定时器资源。
PWM 脉冲周期为 0.01s,一个周期定时器 T1 中断 2 次,设置定时器每中断200 次,即每 1s 对电机进行一次测速,测速完毕后计数器 T0 归零,重新对霍尔脉冲计数。
参考文献
童诗白,华成英.模拟电子技术基础.北京:高等教育出版社,2006
欧阳昌华.电机及电力拖动系统实验指导书(综合部分).北京:高等教育出版社,2005
廖力清.微机测控保护装置与电站.北京:人民出版社, 2003
康华光.电子技术基础(数字部分).北京:高等教育出版社,2005。