.直流电机转速控制课程设计姓名:学号:班级:目录1.直流电机转速控制方案设计 (2)1.1设计要求 (2)1.2设计框图 (2)2.直流电机转速控制硬件设计 (3)2.1主要器件功能 (3)2.2硬件原理图 (6)3.直流电机转速控制软件设计 (7)4.调试 (8)4.1硬件测试 (8)4.2软件调试……………………………………………………………(111.直流电机转速控制方案设计1.1设计要求通过设计了解如何运用电子技术来实现直流电机转速控制,完成直流电机转向和转速的控制,提高分析电路设计、调试方面问题和解决问题的能力。
1、用按键1控制旋转方向,实现正转和反转。
2、电机的设定转速与电机的实际转速在数码管上显示。
3、旋转速度可实时改变。
1.2设计框图本课题中测量控制电路组成框图如下所示:图12.直流电机转速控制硬件设计2.1主要器件功能1、L298N 是专用驱动集成电路,属于H 桥集成电路,与L293D 的差别是其输出电流增大,功率增强。
其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。
当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。
此外可能通过使能端的高低电平的变换,从而使电机通断,来控制电机的转速。
图2板上的EN1 与EN2 为高电平时有效,这里的电平指的是TTL 电平。
EN1 为IN1 和IN2 的使能端,EN2为IN3 和IN4 的使能端。
POWER 接直流电源,注意正负,电源正端为VCC,电源地为GND。
2、ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。
除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。
此外,ZLG7290B的电路简单,使用也很方便。
用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。
正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息。
微控制器可通过两种方式得到用户的键盘输入信息。
其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。
其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根I/O口线,但是代价是I2C 总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。
图3ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED),同时还可以扫描管理多达64 只按键。
其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。
另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。
采用I2C 总线方式,与微控制器的接口仅需两根信号线。
可控扫描位数,可控任一数码管闪烁。
4、MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
图4第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
2.2硬件原理图电路图图53.直流电机转速控制软件设计程序流程图图6 4.调试4.1硬件测试4.1.1单片机部分及其接口电路测试DCBEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U6STC89C5XVC CX112M HzC1030PFC1130p FTxDRxDALER1710KVC CC1210u FS0R181KRDWRS1116R1AVC CLEDVC C116R?A10K图7当按键S1按下时,产生INT0中断,使P1.2,P1.3取反.这样就能控制电机的正反转,且中断来时P1.1取反这样LED灯亮灭代表不同的转向.4.1.2电机部分电路及其接口电路测试U?GND+515V VC C R61K123S S E N BO U T 4O U T 3I N 4E N B I N 3V S S G N D I N 2E N A I N 1V S O U T 2O U T 1S E N A L298NVSC?100ufD1DIODED2DIODED4DIODED3DIODE VS SC?100uf图8电机测试时,L298N 的IN3,IN4的输出控制电机的正反转,IN3,IN4为0,1,时是一种转向,当IN3,IN4为1,0时,就反向转动.而电机的转速控制是通过L298N 的ENB 来控制,由于ENB 的状态直接确定电机的通断,所以,测试时,通过调节ENB 占空比的输出来测试电机的转速控制.电机的测速是通过霍尔开关来获取的,电机的叶片上贴有磁钢,当磁钢经过霍尔开关时,霍尔开关2脚产生脉冲,当一定的时间到时,霍尔开关的2脚输出的脉冲数被单片机记录,然后经过处理在8位数码管上显示出来.4.1.3 数码管的部分电路及其接口电路测试Dig 713Dig 612Dig 521Dig 422Dig 33Dig 24Dig 15Dig 06SDA 20SCL 19INT 14GND 11OS C117OS C218RES15VC C 16Seg H 10Seg G 9Seg F 8Seg E 7Seg D 2Seg C 1Seg B 24Seg A 23U22ZLG7290e 1d 2h 3c 4g 5C 06b 7C 18C 29f 10a11C 312LED1ln3461a e 1d 2h3c 4g 5C 06b 7C 18C 29f 10a11C 312LED2ln3461aSeg 0Seg 1Seg 2Seg 3Seg 4Seg 5Seg 6Seg 7Bit0Bit1Bit2Bit3Bit4Bit5Bit6Bit7OscOut OscIn B i t 0B i t 1B i t 2B i t 3B i t 4B i t 5B i t 6B i t 7R62270*8R63R64R65R66R67R68R69Seg 0Seg 1Seg 2Seg 3Seg 4Seg 5Seg 6Seg 7R7110kR7010kC1820pC1920p12X26M HzOscOut OscInVC CVC CC17100nFR7247KVC C图9通过单片机控制使LED1显示输入需要控制的转速,LED2来显示实时的转速,单片机与LED 灯之间通过集成芯片ZLG7290来进行连接。
4.2软件调试4.2.1 按键程序当按键按下的时候产生一个低电平,连接INT0,产生外部中断,使P1.1,P1.2,P1.3取反,从而控制电机正反转,和LED灯的状态,显示其转向.具体的程序如下:void INT0SUB() interrupt 0{P11=~P11;P12=~P12;P13=~P13;}4.2.2 PWM程序因为电机调速是本次设计的最主要任务之一,所以PWM程序也是程序中最重要的一环。
PWM的调速原理是通过调节一个斩波周期中的脉冲占空比来调节电机功率而达到调速目的。
本设计中,PWM的斩波周期为500us,那也就是说斩波频率为2kHz,在理论上能达到0.05%线性可调,也就是能以0.05%的调节精度来调节PWM占空比。
PWM调速子程序是放在定时器0中断中进行的,中断设置如下:ET0 = 1;//中断允许位TMOD=0x51;TH0=0xFE;TL0=0x0C;R0 = 1;//SETB TR0下面是PWM的中断子程序:void TIMER0() interrupt 1 {TH0=0xFE;TL0=0x0C;if(r==0){a++;if(a>=c){P10=0;a=0;r=1;}}if(r==1){b++;if(b>=(100-c)){P10=1;b=0;r=0;n--;}4.2.3测速系统程序测速是本设计的另外一个重点。
本设计中测速系统的工作原理为:利用电机叶片上的磁钢,引起霍尔开关产生脉冲,单片机就采集此脉冲数,加以计算,得出其实时速度。
测速程序得用一个计数器1具体实现如下:TH1 = 0x00;TL1 = 0x00;ET1 = 1;TR1 = 1;函数中,TH1_1,TL1_1就是存放计数器1的计数值的缓冲区,当它们从TH1和TL1中取得数值之后,TH1和TL1随即被清零,为下一次计数做好准备。
void TIMER0() interrupt 1{int d,g,z;z=TL1;d=TL1*30;g=d-k;dat1=d%10;d=d/10;dat2=d%10;d=d/10;dat3=d%10;d=d/10;dat4=d;m=0;n=20;TL1=0X00;TH1=0X00;}4.2.4 调速程序本程序中我们利用逼近的方式来控制电机的转速,其相应的程序n。