步距角精度 步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。 失步 失调角 电机运转时运转的步数,不等于理论上的步数。称之为失步。 转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。 最大空载起动频率 最大空载的运行频率 运行矩频特性 电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。 电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。 电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。如下图所示: 其它特性还有惯频特性、起动频率特性等。 电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩取决于电机运行时的平均电流(而非静态电流),平均电流越大,电机输出力矩越大,即电机的频率特性越硬。 要使平均电流大,尽可能提高驱动电压,使采用小电感大电流的电机。 电机的共振点 步进电机均有固定的共振区域,二、四相感应子式步进电机的共振区一般在180-250pps之间(步距角1.8度)或在400pps左右(步距角为0.9度),电机驱动电压越高,电机电流越大,负载越轻,电机体积越小,则共振区向上偏移,反之亦然,为使电机输出电矩大,不失步和整个系统的噪音降低,一般工作点均应偏移共振区较多。 电机正反转控制 对于四相步进电机来说,电机绕组通电时序为AB-BC-CD-DA时为正转,通电时序为DA-CA-BC-AB时为反转。 (2)步进电机控制波形(PWM信号)
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图11.a、b、c所示:
a. 单四拍 b. 双四拍 c.八拍
图11.步进电机工作时序波形图
20
(3)本文中的步进电机用42BYG(250)系列混合式步进电动机. 表6 步进电机规格
驱动方式 励磁方式 转向 额定电流(单相) 额定电压 步距角 绝缘等级 恒流斩波驱动 2相励磁(四相四拍运行).可正反向旋转 按AB-BC-CD-DA顺序通电 0.4A DC 12V 1.8°,四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步) B级绝缘 表7 步进电机参数
工作条件 绕组直流电阻(20℃) 绕组电感 定位转矩 保持转矩 最大空载起动频率 最大空载运行频率 温升(两相同时通以额定电压12V) 步距角精度 转动惯量 重量 轴向间隙 径向间隙 轴伸径向图跳动 安装配合面垂直度 安装配合面同心度 1.8°±0.09° 38g.cm2 0.20Kg REF ≤0.08mm ≤0.02mm ≤0.025mm ≤0.03mm ≤0.05mm 环境温度:-24~60℃;相对湿度: 90%MAX;安装位置:轴水平或垂直安装 30Ω±10% 32mH±20% 11.8mN.m REF ≥210mN.m(I=0.4A) ≥2000pps ≥3000pps ﹤80 K; 电机定子铁芯与接线端子间冷态绝缘电阻应大于100MΩ(用DC500V兆欧表测量); 3.3.3 执行单元模块电路连接 (1)电机驱动电路连接
21
本文主要采用L298,通过单片机的I/O输入改变芯片控制端的电平,改变绕组脉冲信号的顺序即可对电机实现正反转。
L298的输入引脚与单片机的P1.0~P1.3口分别相连,IN1~IN4引脚从单片机输入控制电平,控制步进电机的正反转,OUT1~OUT4分别接步进电机的四个相线,ENA、 ENB接控制使能端控制步进电机的转、停。当ENA、 ENB同时接高电平时L298芯片是工作的,即使能端有效,控制IN1~IN4引脚电平的频率即可控制步进电机的转速。芯片的输出引脚分别接2个续流二极管,起到保护电路作用。芯片的VCC和VSS引脚与地必须连接100nF电容器,图中0.1μF和100μF电容并联即为100nf。
对本自动系统的设计还必须满足用户想要窗帘停的某一位置停下来的需求,为此设计了步进电机停止开关,为简化程序,更加利用L298芯片本身的功能,本文采用了一个单刀双掷开关SW1,开关一端接使能端ENA、 ENB,另两端一段接+5V的电源,为芯片使能端提供高电平,另外一端接地,限制使能端的使用,当开关接到地时,两个使能端接地,L298芯片不再起作用,电机停止运动,由此达到停止的目的。
电机控制窗帘的两个极限位置------窗帘的两端,要能使电机停下来,这一问题的解决有两种方案,一种是计算步进电机在窗帘开合长度中所要转的圈数,根据步进电机本身的步长计算电机转数,写入程序里进行控制,还有一种是利用行程开关进行控制,当窗帘走到极限位置时会碰到行程开关,使行程开关闭合,这里的行程开关是接地和使能端的,开关闭合就是关闭使能端,电机停止转动,分析比较这两种方案,认为后一种较为简便且使居室的严密性得到保证,因为受限于步进电机本身的精确度和丢步失步现象,电机难免不会在某一时刻出现丢步,是窗帘在还没完全拉合的状态下停止。
行程开关控制步进电机极限位置停止:天亮时,光敏传感器接受到高电平,依程序所设步进电机正转,顺时针转动,窗帘以某一速度被慢慢拉开,走到极限位置时,窗帘碰到右端的行程开关SW3,开关闭合使能端关闭,电机停止转动。当天暗时,光敏传感器输出低电平,电机要逆时针转动了,窗帘打开,障碍物去除,开关断开,使能端打开,电机反转,同样电机反转碰到左边的行程开关SW4时,开关闭合,使能端关闭,电机停止转动。
鉴于上述考虑,我的设计电路图如下所示:
22
图12 L298控制电机电路
图13 行程开关电路部分
4软件设计 4.1程序流程
51单片机的开发除了需要硬件的支持外,同样离不开软件。CPU真正可执行的是机器码,用汇编语言或C语言等高级语言编写的源程序必须转为机器码才能被执行,转化方法有手动汇编和机器汇编两种,前者已很少使用,机器汇编是通过汇编软件将源程序转换为机器码的编译方法。这种汇编软件称为编译器,keil是目前最流行的51单片机开发软件,
23
keil提供了一个集成开发环境uVision,它包括编译器、宏汇编、连接器、库管理、和一个功能强大的仿真调试器。这样,在开发应用软件的过程中,编辑、编译、汇编、连接、调试等各个阶段都集中在一个环境中。先用编译器编写程序、接着调用编译器进行编译,连接之后即可直接运行。这样免去了过去先用编译器进行编译,再退出编辑状态进行编译,调试后又要调用编译器的反复过程。因此可以缩短开发周期。
因此我所选用的软件开发平台为Keil软件,用C语言编写具体的程序代码。主控程序流程图如图14所示。
开始 光敏传感器ULN3330 数字信号送入单片机 是 高电压? 否 正转 反转 否 到达顶部? 是 到达底部? 是 否 停止 图14:主控程序流程图 4.2 程序设计
#include
#define uchar unsigned char #define uint unsigned int
uchar code ffw[]={0xfc,0xf6,0xf3,0xf9 }; //2相励磁正转表
24