/*********注意事项及相关资料**************/
/*用 51 单片机控制步进电机,注意不能直接使用 GPIO 来驱动电机,而需要相应的
驱动芯片来实现,我们使用 TC1508S 芯片来驱动配置的四线双极性步进电
机。要实现的功能是:控制步进电机旋转.
步进电机介绍
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载
情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负
载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关
系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得步进电机
在速度、位置等控制领域的控制操作非常简单。虽然步进电机应用广泛,但它并
不像普通的直流和交流电机那样在常规状态下使用,它必须由双环形脉冲信号、
功率驱动电路等组成控制系统方可使用。因此用好步进电机也非易事,它涉及机
械、电机、电子及计算机等许多专业知识。
步进电机主要分为以下几类:
(1)永磁式(PM):一般为二相,转矩和体积较小,步距角一般为 7.5°或
15°。
(2)反应式(VR): 一般为三相,可实现大转矩输出.步距角一般为 1.5°,但
噪声和振动都很大。在欧美等发达国家 20 世纪 80 年代已经淘汰。
(3)混合式(HB):指混合了永磁式和反应式的优点。它又分为二相和五相,二
相步距角一般为 180°,而五相步距角一般为 0.72°。这种步进电机的应用最
为广泛。
步进电机主要技术指标如下:
(1)相数:电机内部的线圈组数。 目前常用的有二相、 三相、 四相、 五
相步进电机。电机相数不同, 其步距角也不同。 一般二相电机的步距角为 0.9°
/1.8°, 三相为 0.75°/1.5°、 五相为 0.36°/0.72°。 在没有细分驱动器时,
用户主要靠选择不同相数的步进电机来满足自己步距角的要求。 如果使用细分驱
动器,则“相数”将变得没有意义,用户只需在驱动器上改变细分数,就可以改
变步距角。
(2)步距角:表示控制系统每发一个步进脉冲信号, 电机所转动的角度。
电机出厂时给出了一个步距角的值, 如 86BYG250A 型电机的值为 0.9°
/1.8° ( 表示半步工作时为 0.9° 、整步工作时为 1.8° ) , 这个步距角
可称为“ 电机固有步距角” , 它不一定是电机实际工作时的真正步距角, 真
正的步距角和驱动器有关。
(3)拍数:完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转
过一个步距角所需脉冲数。以四相电机为例,有四相四拍运行方式,即
AB-BC-CD-DA-AB;四相八拍运行方式, 即 A-AB-B-BC-C-CD-D-DA-A。
(4)保持转矩:步进电机通电但没有转动时, 定子锁住转子的力矩。 它
是步进电机最重要的参数之一, 通常步进电机在低速时的力矩接近保持转矩。由
于步进电机的输出力矩随速度的增大而不断衰减, 输出功率也随速度的增大而
变化,所以保持转矩就成了衡量步进电机最重要参数之一。 比如, 当人们说 2N· m
的步进电机时,在没有特殊说明的情况下,是指保持转矩为 2N·m 的步进电机。
步进电机工作原理
步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置。 它
具有快速启、停能力, 在电机的负荷不超过它能提供的动态转矩时, 可以通过
输入脉冲来控制它在一瞬间的启动或停止。 步进电机的步距角和转速只和输入
的脉冲频率有关, 和环境温度、 气压、 振动无关, 也不受电网电压的波动和
负载变化的影响。 因此, 步进电机多应用在需要精确定位的场合。步进电机有
三线式、 四线式、 五线式和六线式, 但其控制方式均相同, 都
要以脉冲信号电流来驱动。假设每旋转一圈需要 200 个脉冲信号来励磁, 可以
计算出每个励磁信号能使步进电机前进 1.8°。 其旋转角度与脉冲的个数成正
比。步进电动机的正、反转由励磁脉冲产生的顺序来控制。 六线式四相步进电
机是比较常见的,
它有 4 条励磁信号引线 A,/A, B,/B 通过控制这 4 条引线上励磁脉冲产
生的时刻,即可控制步进电机的转动。每出现一个脉冲信号, 步进电机只走一
步。 因此,只要依序不断送出脉冲信号,步进电机就能实现连续转动。
励磁方式
步进电机的励磁方式分为全步励磁和半步励磁两种。 其中全步励磁又有一
相励磁和二相励磁之分, 半步励磁又称一二相励磁。 假设每旋转一圈需要 200
个脉冲信号来励磁,可以计算出每个励磁信号能使步进电动机前进 1.8° 。简
要介绍如下:
①一相励磁: 在每一瞬间,步进电机只有一个线圈导通.每送一个励磁信号,
步进电机旋转 1.8, 这是三种励磁方式中最简单的一种。
其特点是:精确度好、 消耗电力小,但输出转矩最小, 振动较大。 如果以
该方式控制步进电机正转, 对应的励磁顺序如下表所示。
若励磁信号反向传送,则步进电机反转。表中的 1 和 0 表示送给电机的高
电平和低电平。
②二相励磁:在每一瞬间,步进电动机有两个线圈同时导通。每送一个励磁
信号, 步进电机旋转 1.8。
其特点是: 输出转矩大, 振动小, 因而成为目前使用最多的励磁方式,若励
磁信号反向传送,
则步进电机反转。
③一二相励磁:为一相励磁与二相励磁交替导通的方式。 每送一个励磁信
号, 步进电机旋转 0.9。
其特点是:分辨率高, 运转平滑, 故应用也很广泛。若励磁信号反向传送, 则步
进电机反转。
TC1508S 芯片介绍
单片机主要是用来控制而非驱动,如果直接使用芯片的 GPIO
管脚去驱动大功率器件,要么是将芯片烧坏,要么就是驱动不起来。所以要驱动
大功率器件,比如电机。就必须搭建外部驱动电路,我们开发板上集成了两种直
流电机驱动电路,一种使用的驱动芯片是 TC1508S,该芯片是一款双通道直流马
达驱动器,不仅可以用来驱动我们的直流电机,还可用来驱动开发板配置的四线
双极性步进电机,另一种使用的驱动芯片是 ULN2003,
该芯片是一个单片高电压、高电流的达林顿晶体管阵列集成电路。不仅可以用来
驱动我们的直流电机,还可用来驱动五线四相步进电机,比如 28BYJ-48 步进电
机。我们使用 TC1508S 来驱动直流电机,下面来具体介绍下 TC1508S 芯片的使用:
(1)特点
①双通道内置功率 MOS 全桥驱动
②驱动前进、后退、停止及刹车功能
③超低的待机电流和工作电流
④低导通电阻(1.0 欧)
⑤最大连续输出电流可达 1.8A/每通道,峰值 2.5A
⑥宽电压工作范围
⑦采用 SOP-16 封装形式
使用该芯片驱动直流电机,可实现正反转、停止控制。
********************END*******************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能
#include<intrins.h> //因为要用到左右移函数, 所以加入这个头文件
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit MOTOA = P1^0;
sbit MOTOB = P1^1;
sbit MOTOC = P1^2;
sbit MOTOD = P1^3;
#define SPEED 300 //修改此值可改变电机旋转速度,不能过大或过小
void delay(u16 i)
{
while(i--);
}
void main()
{
P1=0X00;
while(1)
{
MOTOA = 1;
MOTOB = 0;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 1;
MOTOD = 0;
delay(SPEED);
MOTOA = 0;
MOTOB = 1;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 0;
MOTOD = 1;
delay(SPEED);
}
}
电机图片:
步进电机.rar
(483.72 KB, 下载次数: 34)
|