智能电动扳手控制系统设计.doc_第1页
智能电动扳手控制系统设计.doc_第2页
智能电动扳手控制系统设计.doc_第3页
智能电动扳手控制系统设计.doc_第4页
智能电动扳手控制系统设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除智能电动扳手控制系统设计摘 要:本设计是基于单片机(STC12C5A32S2)和模拟电路部分相结合的技术,用于对电动扳手的扭矩进行控制,从而达到拧紧螺丝的目的。通过一次测量电机正常工作时的电压、电流和转速值,将所测得的电压、电流送入自带AD的单片机(STC12C5A32S2),进行AD转换,利用测频法测出电机的转速,再将这三个值送入单片机内部处理,将所得的扭矩通过五位八段数码管显示出来。同时,还能控制扭矩的大小,以免将螺丝拧断;拧紧螺丝后,本系统还能让电机回转从螺丝上面取下来;另外,为防止电机的启动电流太大,容易损害电机,本系统还设置了软启动的功能,能够延长电机的使用寿命。本系统不仅仅是理论的设计,并且运用到了实际的生活当中,还进行了现场的测试。一.基本原理本系统实现的功能是控制电动扳手的扭矩的大小,从而拧紧螺丝。因为扭矩的计算公式M=9550*P/n,其中,M代表扭矩,P代表电动扳手的有功功率,n代表电动扳手正常工作时的转速,再送入单片机内进行数据处理,就能计算出扭矩的真实值。根据上面的原理,只要测量出P和n,就可以计算出扭矩的大小,从而进行控制。但是对于电动扳手实际的功率虽然可以通过一些专门功率器件进行测量,但是价格比较高,为了减少成本,根据P=U*I*cost,通过测量电动扳手的工作电压和工作电流来计算有功,相对于专门的功率器件而言,不仅价格低廉,而且实现电路简单,适合实时系统,能够达到题目要求的指标。故选用测量工作电压和工作电流的方法来求得电动扳手的有功功率。对于电动扳手的转速不宜直接测量,但是根据计算公式n=60*f,其中,f是电动扳手运转时输出波形的频率,电动扳手运转时输出波形频率测量较测量转速简单,故选用测量运转频率的方法,将所测得值送入单片机进行处理,得出电动扳手的正常转速。综上所述,本系统采用的方案是通过测量电动扳手的工作电压、工作电流和正常工作时输出波形的频率,将所测得的值送给单片机进行数据处理即可得到扭矩的值。由于不同的螺丝具有不同的扭矩值,故此系统还设置了扭矩调整功能以实现不同的需求。具体的实现方案通过单片机来控制四个按键来设置扭矩值得大小。本系统还采用了功率元件可控硅来控制电机的启动,为了防止可控硅被击穿而影响到电机的工作,还增增加了继电器来保护电机,当可控硅失去控制时,电机还能正常工作。因为电动扳手在刚启动时,具有很大的工作电流,大概是额定电流的35倍,对电动扳手有很大的损害,为了避免这种损害,延长电动扳手的使用寿命,本系统还设计了电动扳手的软启动环节,使启动从零慢慢增加到工作电流,消除启动时的冲击电流。二.系统设计根据测量扭矩的原理,本系统共包括五个模块:以STC12C5A32S2单片机为核心的控制模块,电机工作电压测量模块、电机工作电流测量模块、电机工作转速测量模块、电机启动模块。其系统方框图如下:继电器变压器AD637有源滤波测速元件A3515电流传感器220V电机可控硅无源滤波LM358放大去直流转换电压精密整流,LM358放大LM358放大有源滤波无源滤波无源滤波放大比较整形光耦隔离单片机STC12C5A32S25位LED显示光耦隔离90139013三.各模块电路设计A 电源部分由于真有效值转换芯片AD637采用的双电源(+5V,-5V)供电方式,故需要制作两个不同的电源,我们采用常用的稳压电源电路,利用芯片7805和7905分别实现+5V和-5V的电源。另外,测频部分为了防止电磁干扰,这个部分的电源于其他电路隔开,单独使用一个电源。整流电路LM311,放大电路LM358和光耦MOC3020均采用+5V单电源供电方式 ,故本系统需要两个+5V电源和一个-5V电源。现设计电路框图如下:220V变压器整流桥滤波79057805+5V-5V硬件电路图如下:芯片工作电源测速电路电源B电机工作电压测量电路由于此电机是在220V交流电的带动下工作的,我们用单片机无法直接测量220V交流电的大小,我们可以通过将交流转换为低于5V的直流电压,再送入单片机进行处理。由于单片机只能测量5V左右的直流电压,我们需要将220V的交流电压,先降压再转换成直流送给单片机进行处理,采用真有效值转换芯片AD637,将交流电压转换为直流电压,同时也能将交流电压转换为直流电压,采用双电源供电(+5V 和-5V),容易实现。因为AD637的输入电压很小导致输出电压也很小,以致输出的波形幅值不大,而且还有噪声波,不能送入单片机内部进行AD转换,因此,我们设计了滤波和放大电路,使输出波形的幅值达到单片机的要求。将滤波后的波形送入运算放大器LM358进行负反馈放大,该芯片采用单电源(+5V)供电方式,输出的电压值能够满足单片机的测量要求。由于LM358不是轨到轨的输出芯片,其输出电压不到5V,在设计放大倍数是,要注意到这一极限电压,以免造成限幅输出。由于单片机内部自带12位AD,满足设计要求,故不需要外加AD转换芯片。系统设计框图如下:变压器有源滤波AD637220VLM358放大无源滤波单片机STC12C5A32S2内12为AD1. AD637芯片介绍:AD637是AD公司RMS-DC产品中精度最高、带宽最宽的交直流转换电路,对于1VRMS的信号,它的3dB带宽为8MHz,并且可以对输入信号的电平以dB形式指示,另外,AD637还具有电源自动关断功能,使得静态电流从3mA降至45A.,可以测出任意波形交变信号的有效值,实验数据表明,在电源为正负5V供电情况下,当输入信号的频率不大于2MHz时,其输入信号的电压有效值在0.7V4V范围内能保证测量误差。AD637的真值-有效值转换电路设计如下: 2. 电压测量硬件电路图C电机工作电流的测量由于电机工作时产生的电流很少,不宜直接测量,但是册来那个的方法很多。方案一:在电机的电流输出端串联一个大电阻,将电流放大,实现简单,但测量不准确,容易将干扰信号一起放大。方案二:利用电流传感器元件来测量微小的电流变化,实现方法简单,输出噪声干扰小,符合要求。比较两种方案,我们选择方案二。我们选用电流传感器来感应电机的电流,因为电流传感器的输出的波形中,含有直流分量,不是我们所需要的,我们将此波形经过隔直电路,输出的交流波形幅值很小,无法测量。为了便于测量,我们采用串联大电阻的方法,将此电流转为可测量的电压进行测量。输出的是交流波,无法送入单片机进行检测,故我们运用精密整流对此交流小信号波进行整流,采用的是运算放大器LM358,该芯片采用单电源(+5V)供电方式,然后进行滤波。同样的,输出的波形幅值很小,不能直接送单片机处理,因此,将滤波后的波形送入运算放大器LM358进行负反馈放大,该芯片采用单电源(+5V)供电方式,输出的电压值能够满足单片机的测量要求。由于LM358不是轨到轨的输出芯片,其输出电压不到5V,在设计放大倍数是,要注意到这一极限电压,以免造成限幅输出。由于单片机内部自带10位AD,满足设计要求,故不需要外加AD转换芯片。现设计电路框图如下:单片机STC12C5A32S2内12为ADLM358放大无源滤波精密整流,LM358放大转换电压电流传感器去直流有源滤波电流测量硬件电路图如下:D频率测量电路:本系统采用软硬结合的方法来测量电机的转动频率。1.硬件方面:电机测速元件A3515无源滤波电阻放大电机在工作时,由于转子的转动产生了磁场,从而输出波形。我们利用霍尔线性测速元件A3515将电机产生的波形输出,A3515此元件输出的波形于电机产生的磁场成比例输出,输出的波中谐波很多,我们采用无源滤波装置进行滤波。我们运用测频率的方法来测量电机的工作频率,单片机要计算每秒钟的脉冲个数,我们需要将矩形波信号送入单片机才能进行测量。对于不同的霍尔线性元件,输出波形不一定都是矩形波,A3515输出的就不是矩形波,所以,我们增加了LM311比较器,使电机输出的波形变成矩形波,送入单片机进行测量。为了防止干扰,我们在比较电路的输出端和单片机的输入端之间接了一个光电耦合器,起到隔离的作用。系统框图如下:光耦隔离STC12C5A32S2P3.0,P3.2 IO口电机测速元件A3515无源滤波LM311整形硬件电路图如下:2.软件部分:本系统采用定时器0和外部中断0同时计数脉冲的方法来测量电机的频率。RETFreq+外部中断0处理程序计数器0处理程序count+RET定时器1处理程序num+初始化定时器1RET外部中断0中断处理外部中断1中断处理定时器1中断处理 系统流程图如下:开始初始化定时器1,计数器0允许外部中断0,下降沿触发while(1)下降沿来到ET0=1,ET1=1,EA=1外部中断0处理计数器0处理定时1S到num=0,TR0=0,TR1=0存储Freq,计算计数器的值取平均值为频率值n=60*f初始化定时器1,计数器0YNYNBreakYNN测频率程序 E启动和保护电路的设计本模块采用的是软硬结合的方法。1.启动电路由于220V的交流电不能直接启动电机,我们在电机和交流点之间加了一个功率元件可控硅BAT26,来驱动电机的启动。由于可控硅是一种电感器件,断电后其电压不能突变,我们在可控硅两端并联了RC泄放电路来保护电路中的其他元件。为了防止可控硅失效后电机仍然运转,本系统增加了电机保护功能,在可控硅和交流电之间增加了一个继电器,来检测可控硅的工作转态。此继电器的吸合电压为220V,线圈电压为5V,但可控硅被击穿时,继电器从吸合状态转为释放状态,即从常闭点变到常开点。系统设计框图如下:继电器电流传感器220V电机可控硅硬件电路图如下:2软件实现这个模块我们采用的是软硬结合的方法来控制电机的软启动。1.硬件部分本系统采用单片机控制脉冲的方法来实现软启动,基本原理是:本系统是采用双向可控硅来启动电机的,而可控硅是在高电平的情况下才能够导通,电机才开始工作。我们采用单片机STC12C5A32S2控制高电平的输出时间来控制可控硅的导通,导通的时间有短变长,从而使电机的输出电流从小到大的变化,不会对电机有损害作用。因为电网输出的是频率为50HZ的交流正弦波,不能送入单片机进行处理,所以,我们增加了LM311比较器,使电机输出的波形变成矩形波,送入单片机进行测量。系统框图如下:220V变压器分压电路LM311单片机STC12C5A32S2P3.3 IO口PWM 可控硅电机硬件电路图如下: 2.软件部分:设计思想:因为电网输出的波的频率是50HZ,周期为20MS,我们控制可控硅的导通时间来达到电流从零慢慢变大。比如,在每一个周期的8MS和18MS处给一个脉冲,导通时间只有2MS,这样电流也就减小了。所以,检测电网输出波形,当下降沿到来时开始计时,在10MS以内的某个时间开始给可控硅一个脉冲,可控硅导通,电机在剩余的时间内开始工作,起到控制电流的作用。当电流超过某一值时,说明电机刚启动,此时调用软启动函数。程序流程图如下:开始初始化定时器0,定时器1外部中断1下降沿触发while(1)下降沿来到外部中断1处理电流大于某值定时器0时间到延时300US,PWM=0count=3000while(1)EX1=1PWM=1,TR0=0,TR1=1PWM=1定时器1时间到延时300USPWM=1,TR1=1初始化定时器0初始化定时器1EX1=0PWM=1breakPWM=0NYNYYNYN软启动模块四、总结本系统是基于单片机和模拟电路相结合的方式来实现各种功能,采用软件和硬件共同控制系统的运作。比起同类装置,有以下优点:1. 对电机设置了软启动功能,保护电机,这是其他电机不具备的。2. 对可控硅串联继电器来进行保护,这也是本系统的一大优点。通过此次毕业设计,是自己独立完成的,从中学到了很多东西,不仅扎实了理论知识,更是增强了自己的动手能力。还学会了坚持和独立思考的习惯,对以后的学习和工作有深远的影响。附上部分程序代码/*头文件*/#include #include#include #include /*宏定义*/#define ucharunsigned char #define uint unsigned int #define ulong unsigned long /*SPEED1 SPEED0 A/D转换寄存器设置*/#define AD_SPEED 0x60 /0110,0000 1 1 270个时钟周期转换一次,sfr ADC_CONTR=0xbc; sfr ADC_RES=0xbd;sfr ADC_RESL=0xbe;/*数码管端口定义*/sbit sdata=P22;sbit SCLK=P21;sbit RCK=P20;char code tab110=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1F,0x01,0x09; /0-9数码管对应的断段/*PWM输出端口*/sbit PWM=P27; /*定义全局变量*/ulong Freq=0,Freq1=0,Freq_adv; /电机转动频率ulong shuju1;uint count;uint vol10,cur10; /定义数组存放电流、电压值uchar num;/*数码管显示程序*/*延时程序*/* void delay1(unsigned int m) unsigned int i,j; for(i=0;im;i+) for(j=0;j100;j+); */void aclk() SCLK=0;SCLK=1; void display(uint display)uchar a=0,b=0,c=0,d=0;uchar i=0; a=display/1000;b=display%1000/100;c=display%100/10;d=display%10;a=tab1a; b=tab1b; c=tab1c; d=tab1d;for(i=0;i8;i+) sdata=d & 0x80 ; aclk(); d=d1; for(i=0;i8;i+) sdata=c & 0x80 ; aclk(); c=c1; for(i=0;i8;i+) sdata=b & 0x80 ; aclk(); b=b1; for(i=0;i8;i+) sdata=a & 0x80 ; aclk(); a=a1; RCK=0;RCK=1; /*延时程序*/void delay(uchar delay_time) uchar n; uint m; for(n=0;ndelay_time;n+) for(m=0;m100;m+); /*AD转换模块*/uint get_AD_result(uchar channel) ADC_RES = 0; ADC_RESL=0; channel &= 0x07; ADC_CONTR = AD_SPEED; ADC_CONTR = 0xE0; /1110,0000 清 ADC_FLAG, ADC_START 位和低 3 位 ADC_CONTR |= channel; /选择 A/D 当前通道 delay(1); /使输入电压达到稳定 ADC_CONTR |= 0x08; /0000,1000 令 ADCS = 1, 启动A/D转换, while (1) /等待A/D转换结束 if (ADC_CONTR & 0x10) /0001,0000 测试A/D转换结束否 break; ADC_CONTR &= 0xE7; /1111,0111 清 ADC_FLAG 位, 关闭A/D转换, return (ADC_RES2 | ADC_RESL); /ADC_RES2 | ADC_RESL/*初始化定时器0,计数器1*/void Timer_init() TMOD=0x16; /计数器0工作工作方式2,自动重装初值 TH0=0; /计数器初值为0 TL0=0; TR0=1; /计数器开始计数 TR1=1; EA=1; /开总中断 ET0=1; /打开计数器0中断 ET1=1; EX0=1; IT0=1; TH1=0x3C; TL1=0xB0; /50MS中断一次 /*主函数*/void main()uint niuju=0; uint vol_sum=0,cur_sum=0,current=0,voltage=0,speed=0,DATA=0,middle=0;uchar ADC_10bit=0,medium=0; int i=0,j=0;DATA=1210;ADC_CONTR = 0x80; / 电源Timer_init();while(1) /if(niuju6500) /设定扭矩的值/PWM=1;/else/PWM=0;/vol_sum=0;cur_sum=0;for(j=0;j10;j+)volj=get_AD_result(5);curj=get_AD_result(7); for(j=0;j0)medium=(uchar)(955/speed);voltage=(uint)(vol_sum5)*(DATA5)/100);middle=(uint)(medium*voltage)/3);niuju=(middle5)*(current*5)5);elseniuju=0;TH0=0;TL0=0; /清零计数器0计数count=0; /清零计数器0计数Freq1=0;TR1=1;TR0=1; /开中断EX0=1;display(niuju); /display(current);/d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论