当前位置:文档之家› 基于单片机控制直流电动机

基于单片机控制直流电动机

单片机原理及系统课程设计专业:班级:姓名:学号:指导教师:.........2015年12月27日基于单片机控制直流电动机1 引言通过一个学期的学习,我认为要学好单片机这门课程,不仅要认真学习课本知识,更重要的是要学会通过实践巩固学到的知识,本次课设中我们设计制作的题目是基于单片机的直流电动机的转速检测与PWM调制。

1.1 设计背景PWM 直流电机应用对市场调查显示,目前各工业各产品都大量用到PWM 调速电机,直流调速电机对市场需求量是相当的大。

1.2直流电机的发展1834 德国雅可比发明直流发动机1888 南斯拉夫裔美国特斯拉发明了交流电动机1821年英国科学家法拉第首先证明可以把电力转变为旋转运动。

最先制成电动机的人,据说是德国的雅可比。

他于1834年前后成了一种简单的装置:在两个U型电磁铁中间,装一六臂轮,每臂带两根棒型磁铁。

通电后,棒型磁铁与U型磁铁之间产生相互吸引和排斥作用,带动轮轴转动。

后来,雅可比做了一具大型的装置。

安在小艇上,用320个丹尼尔电池供电,1838年小艇在易北河上首次航行,时速只有2.2公里,与此同时,美国的达文波特也成功地制出了驱动印刷机的电动机。

2 设计方案及原理2.1 系统设计方案本次设计用单片机输出PWM 到电机驱动电路H桥,通用按键调节电机的速度。

用单片机定时器发生PWM 用按键改变定时初值,可以改变PWM的占空比从而改变速度。

主要研究内容:1)硬件电路单片机最小系统、H桥驱动电路、按键模块、2)软件程序用Proteus进行仿真加工,使用C语言编写程序。

2.2H桥原理图图1H桥电路原理图2.2.1H桥驱动电路图2中所示为一个典型的直流电机控制电路。

电路得名于“H桥驱动电路”是因为它的形状酷似字母H。

4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图2及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。

如图所示,H桥式电机驱动电路包括4个三极管和一个电机。

要使电机运转,必须导通对角线上的一对三极管。

根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。

图2H桥驱动电路原理图要使电机运转,必须使对角线上的一对三极管导通。

例如,如图3所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。

按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。

当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向),电路图3。

图3H桥驱动电路顺时针旋转图4所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。

当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。

图4H桥驱动电路逆时针旋转2.2.2H使能控制和方向逻辑驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。

如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。

此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。

基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。

图5 所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。

4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。

而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。

(与本节前面的示意图一样,图5所示也不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。

图5具有使能控制和方向逻辑的H桥电路3硬件设计3.1电路原理图P1.0为启动电动机,P1.1为反转,P1.2为加速,P1.3为减速,P1.4为停止运行。

脉冲输入的引脚是P2.0和P2.7如图6。

图6系统原理总框图3.2硬件电路板焊接该控制系统由按键模块、放大模块、示波器显示模块、电动机模块、脉冲输出模块等五个模块构成,现将主要的元器件罗列如下。

如表1:表1 硬件电路板主要元器件名称单位数量AT89C51芯片电阻电容晶振电路板电动机三极管干电池10k30pf12MHz150 ×2001.5v15211163 4.软件仿真4.1 启动电动机当按下第一个按键后,在示波器上显示的脉冲如图7所示。

图7 示波器显示的波形4.2反转通过按下第二个按键后示波器显示的脉冲如图8所示。

图8 示波器显示的波形4.3 加速旋转通过按下第三个按键后示波器显示的脉冲如图9所示。

图9 示波器显示的波形4.4 减速旋转通过按下第四个按键后示波器显示的脉冲如图10所示。

图10 示波器显示的波形总结在本次设计直流电动机转速检测的课设过程中,我们利用AT89C51单片机及PWM脉冲控制,利用单片机的定时器/计数器定时和计数的原理实现对直流电动机的转速实现控制,我们结合C语言源程序,利用Proteus和Keil软件设计出实验电路,并且完成了电路板的焊接工作,将软件和硬件结合在一起完成了课设的任务。

在本次课设中,我意识到将理论知识与实践相结合的重要性,对于单片机这样的课程,仅仅通过了解课本上的知识是远远不够的,我通过查资料和搜集有关文献,培养了自学能力,通过利用软件仿真和焊接电路,在很大程度上提高了我的动手能力。

我们在课设的过程中,遇到了很多问题,比如我在仿真的过程中接错了三极管,使得数码管无法正常显示,通过查资料我明白了三极管有PNP和NPN之分,类似的问题出现了很多,我们通过一一排查,终于完成了课设任务,结果表明,有付出必有收获,把握重点、攻克难关,活学活用对于牢固的掌握知识,是非常有用的。

在此次课设中,我学到了很多,也通过不断纠正自己的错误,意识到自身的不足,我对知识的掌握还没有实现深层次的理解记忆,我相信这些教训都为我以后的学习奠定了良好的基础。

参考文献[1] 王思明,张金敏,苟军年.单片机原理及应用系统设计[M].北京:人民邮电出版社,2008.[2] 冯育长,邹小兵.单片机系统设计与实例指导[M]. 西安:西安电子科技大学出版社,2004.[3] 李群芳,张士军,黄建.单片微型计算机与接口技术[M].北京:电子工业出版社,2008.[4] 丁元杰,吴大伟.单片微机实题集与实验指导书[M].北京:机械工业出版社,2004.附录附录A 实物图附录B 源程序程序如下:#include <AT89X51.h>#define uint unsigned int#define uchar unsigned char //宏定义sbit zheng=P1^0; //电机正转控制键sbit fan=P1^1; //电机反转控制键sbit add=P1^2; //电机加速sbit dec=P1^3; //电机减速sbit stop=P1^4; //电机停止sbit PWMZ=P2^0; //电机正转PWM信号sbit PWMF=P2^7; //电机反转PWM信号bit run=0; //电机运行标志位,=1时电机运行,=0电机停止bit Z=0,F=0; //电机正反标志位unsigned char PWM=0x7F; //开机时速度为中间值unsigned char code suduzhi[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};//速度等级数值void delay(unsigned char n){unsigned char i,j;for(j=0;j<n;j++)for(i=0;i<125;i++);}/*****主函数*****/void main(void){TMOD=0x21;TH0=0xFF;TL0=0x00;TH1=PWM;TL1=PWM;EA=1;ET0=1;ET1=1;EX0=1;IT0=1;PT0=1; //定时中断优先PT1=1;PX0=0;PWMZ=0; //开机时,电机不转动PWMF=0;while(1){}}void int0(void) interrupt 0{EX0=0; //关外部中断0if(zheng==0){TR0=1;Z=1;F=0;PWMF=0;}if(fan==0){TR0=1;F=1;Z=0;PWMZ=0;}if(add==0){delay(10);if(add==0){if(PWM<0xFF) //定时初值加,脉宽加,速度加PWM=PWM+8;elsePWM=0xFF;}while(add==0);}if(dec==0) //定时初值减,脉宽减,速度减{delay(10);if(dec==0){if(PWM>0x1F)PWM=PWM-8;elsePWM=0x1F;}while(dec==0);}if(stop==0){TR0=0;TR1=0;PWMZ=0;PWMF=0;}EX0=1;}void time0(void) interrupt 1 {TR0=0;TR1=1;TH0=0xFF;TL0=0x00;TH1=PWM;TL1=PWM;TR1=1;PWMZ=0;PWMF=0;TR0=1;}void time1(void) interrupt 3 {TR1=0;if(Z==1)PWMZ=1;elsePWMF=1;}。

相关主题