转是转了,但是不是感觉有点不太对劲呢?太慢了?别急,咱们继续。根据本章开头讲解的原理,八拍模式时,步进电机转过一圈是需要64个节拍,而我们程序中是每个节拍持续 2 ms,那么转一圈就应该是 128 ms,即1秒钟转7圈多,可怎么看上去它好像是7秒多才转了一圈呢?
那么,是时候来了解“永磁式减速步进电机”中这个“减速”的概念了。图9-7是这个 28BYJ-48 步进电机的拆解图,从图中可以看到,位于中心的那个白色小齿轮才是步进电机的转子输出,64个节拍只是让这个小齿轮转了一圈,然后它带动那个浅蓝色的大齿轮,这就是一级减速。大家看一下右上方的白色齿轮的结构,除电机转子和终输出轴外的3个传动齿轮都是这样的结构,由一层多齿和一层少齿构成,而每一个齿轮都用自己的少齿层去驱动下一个齿轮的多齿层,这样每2个齿轮都构成一级减速,一共就有了4级减速,那么总的减速比是多少呢?即转子要转多少圈终输出轴才转一圈呢?
回头看一下电机参数表中的减速比这个参数吧——1:64,转子转64圈,终输出轴才会转一圈,也就是需要6464=4096个节拍输出轴才转过一圈,2 ms4096=8192 ms,8秒多才转一圈呢,是不是跟刚才的实验结果正好吻合了?4096个节拍转动一圈,那么一个节拍转动的角度——步进角度就是360/4096,看一下表中的步进角度参数5.625/64,算一下就知道这两个值是相等的,一切都已吻合了。
关于基本的控制原理本该到这里就全部结束了,但是,我们希望大家都能培养一种“实践是检验真理的标准”的思维方式!回想一下,步进电机的特点是什么?控制转动量!那么我们是不是应该检验一下它到底是不是能呢?到什么程度呢?怎么来检验呢?让它转过90度,然后量一下准不准?也行,但是如果它只差了1度甚至不到1度,你能准确测量出来吗?在没有精密仪器的情况很难。我们还是让它多转几个整圈,看看它后停下的位置还是不是原来的位置。对应的,我们把程序修改一下,以方便控制电机转过任意的圈数。
上述程序中,我们先编写了一个控制电机转过指定角度的函数,这个角度值由函数的形式参数给出,然后在主函数中就可以方便的通过更改调用时的实际参数来控制电机转过任意的角度了。我们用了36025,也就是25圈,当然你也可以随意改为其它的值,看看是什么结果。我们的程序会执行258=200秒的时间,先记下输出轴的初始位置,然后上电并耐心等它执行完毕,看一下,是不是„„有误差?怎么回事,哪儿出问题了,不是说能控制转动量吗?
这个问题其实是出在了减速比上,再来看一下,混合式步进电机家给出的减速比是1:64,不管是哪个家生产的电机,只要型号是 28BYJ-48,其标称的减速比就都是1:64。但实际上呢?经过我们的拆解计算发现:真实准确的减速比并不是这个值1:64,而是1:63.684!得出这个数据的方法也很简单,实际数一下每个齿轮的齿数,然后将各级减速比相乘,就可以得出结果了,实测的减速比为(32/9)(22/11)(26/9)(31/10)≈63.684,从而得出实际误差为0.0049,即约为百分之0.5,转100圈就会差出半圈,那么我们刚才转了25圈,是不是就差了八分之一圈了,也就是45度,看一下刚才的误差是45度吧。那么按照1:63.684 的实际减速比,可以得出转过一圈所需要节拍数是6463.684≈4076。那么就把上面程序中电机驱动函数里的4096改成4076再试一下吧。是不是看不出丝毫的误差了?但实际上误差还是存在的,因为上面的计算结果都是约等得出的,实际误差大约是0.000056,即万分之0.56,转一万圈才会差出半圈,已经可以忽略不计了。
那么家的参数为什么会有误差呢?难道家不知道吗?要解释这个问题,我们得回到实际应用中,步进电机通常的目的是控制目标转过一定的角度,通常都是在360度以内的,而这个 28BYJ-48 初的设计目的是用来控制空调的扇叶的,扇叶的活动范围是不会超过180度的,所以在这种应用场合下,商给出一个近似的整数减速比1:64已经足够了,这也是合情合理的。然而,正如我们的程序那样,我们不一定是要用它来驱动空调扇叶,我们可以让它转动很多圈来干别的,这个时候就需要更为的数据了,这也是我们希望同学们都能了解并掌握的,就是说我们要能自己“设计”系统并解决其中发现的问题,而不要被所谓的“现成的方案”限制住思路。
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
单片机控制28BYJ-48步进电机驱动单片机源程序如下:#includereg52.h#includeintrins.hunsigned char CCW[8]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90}; //逆时钟旋转相序表unsigned char CW[8]={0x90,0x10,0x30,0x20,0x60,0x40,0xC0,0x80}; //正时钟旋转相序表//unsigned char tab[] = {0x0f};sbit K1 = P3^0; //反转按键sbit K2 = P3
;{0x37,0x38,0x39,0x28},//数字键7、数字键8、数字键9、向下键 {0x30,0x1B,0x0D,0x27}//数字键0、ESC键、回车键、向右键 }; unsignedcharKeySta[4][4]={//全部矩阵按键的当前状态 {1,
解决了精度问题,让我们再次回到我们的电机控制程序上吧。上面给出的两个例程都不是实用的程序,为什么?因为程序中存在大段的延时,而在延时的时候是什么其它的事都干不了的,想想第二个程序,整整200秒什么别的事都干不了,这在实际的控制系统中是不允许的。那么怎么改造一下呢?当然还是用定时中断来完成了,既然每个节拍持续时间是 2 ms,那我们直接用定时器定时 2 ms 来刷新节拍就行了。改造后的程序如下:#includereg52.h unsignedlongbeats=0;//电机转动节拍总数 voidStartMotor(unsign
;};到这里,似乎所有的逻辑问题都解决了,循环将这个数组内的值送到 P1 口就行了。但是,只要再深入想一下就会发现还有个问题:多长时间送一次数据,也就是说一个节拍要持续多长时间合适呢?是随意的吗?当然不是了,这个时间是由步进电机的启动频率决定的。启动频率,就是步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机就不能正常启动。表9-2就是由家提供的步进电机参数表,我们来看一下。表9-2 28BYJ-48 步进电机参数表供电电压相数相电阻Ω步进角度减速比启动频率P.P.S转矩g.cm噪声dB绝缘介电强度5V450±10%5.625/641:64≥550≥300≤35600VAC表中给出的参数是≥550,单位
解决了精度问题,让我们再次回到我们的电机控制程序上吧。上面给出的两个例程都不是实用的程序,为什么?因为程序中存在大段的延时,混合式步进电机而在延时的时候是什么其它的事都干不了的,想想第二个程序,整整 200 秒什么别的事都干不了,这在实际的控制系统中是不允许的。那么怎么改造一下呢?当然还是用定时中断来完成了,既然每个节拍持续时间是2ms,那我们直接用定时器定时 2ms 来刷新节拍就行了。改造后的程序如下:#include reg52.hunsigned long beats = 0; //电机转动节拍总数void StartMotor(unsigned long angle);void main(){
如何正确选择和步进电机主要视具体应用情况而定,简单地说要确定:负载的性质(如水平还是垂直负载等),转矩、惯量、转速、精度、加减速等要求,上位控制要求(如对端口界面 和通讯方面的要求),主要控制方式是位置、转矩还是速度方式。混合式步进电机供电电源是直流还是交流电源,或电池供电,电压范围。据此以确定电机和配用驱动器或控制器的型号。选择步进电机还是伺服电机系统?其实,选择什么样的电机应根据具体应用情况而定,各有其特点。印刷机械如何选择步进电机和伺服电机印刷机械的传输结构只要包括:直线电机、旋转电机、旋转马达等。其中,直线电机控制驱动板块,原点开关和磁条,读数头和编码器。旋转电机控制刹车片,旋转编码器,板卡
实用开关电源设计(Practical Design of Power Supplies)
【 有奖直播】 掌握潮流~TI DLP技术在汽车上的创新及全新应用
PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com