黄工无刷电机学习
登录
直播中
张亮
7年用户
1313经验值
私信
关注
[问答]
如何通过编程控制步进电机的正转,反转,加速,减速?
开启该帖子的消息推送
步进电机
如何通过编程控制步进电机的正转,反转,加速,减速?
回帖
(1)
王丽娟
2021-10-18 11:22:23
一、实验目的
1.了解步进电机的工作方式及原理
2.通过编程控制步进电机的正转,反转,加速,减速
二、前言
步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:当步进驱动
器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可
通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的
频率来控制电机的转速和加速度;从而达到调速的目的。
三、 实验器件
1.步进电机,分为六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER)
2.ULN2003(大电流驱动阵列)
ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V的电压,输出还可以在高负载电流并行运行。
引脚1:CPU脉冲输入端,端口对应一个信号输出端。
引脚2:CPU脉冲输入端。
引脚3:CPU脉冲输入端。
引脚4:CPU脉冲输入端。
引脚5:CPU脉冲输入端。
引脚6:CPU脉冲输入端。
引脚7:CPU脉冲输入端。
引脚8:接地。
引脚10:脉冲信号输出端,对应7脚信号输入端。
引脚11:脉冲信号输出端,对应6脚信号输入端。
引脚12:脉冲信号输出端,对应5脚信号输入端。
引脚13:脉冲信号输出端,对应4脚信号输入端。
引脚14:脉冲信号输出端,对应3脚信号输入端。
引脚15:脉冲信号输出端,对应2脚信号输入端。
引脚16:脉冲信号输出端,对应1脚信号输入端。
威廉希尔官方网站 基本理论
当步进驱动器接
收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换
相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉
冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即
给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频
率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机的基本参数:
(一)步进电机的静态指标术语
1、相数:产生不同对N、S磁场的激磁线圈对数。常用m表示。
2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
3、步距角:对应一个脉冲信号,电机转子转过的角位移用Θ表示,Θ=360°(转子齿数
运行拍数),以四相50齿电机为例,四拍运行时步距角为Θ=360°/(4
50)=1.8°(整步)。
(二)步进电机动态指标术语
1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差,用百分比表示,误差/步距角*100%,四拍控制5%以内,八拍控制15%以内。
2、电机正反转控制:当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时正转,通电时序为DA-D-CD-C-BC-B-AB-A时为反转。
步进电机的工作原理
步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步。步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情况下,电机的转速、停止位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。
图1是该四相反应式步进电机的工作原理图。
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0,3号齿对齐,同时,转子的1,4号就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源时,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2,5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
六线电机对应的连线标号.
延时函数
这个delay()的时间长短是控制转速的,有一定范围的,在一定范围内,越小越快,超过了的话,电机识别不了脉冲就不转了。延时函数过长,电机动一下停一下,过短则速度快。
电机的选择
MOTOR-STEPPER:步进电机
MOTOR-BLDCM:无刷直流电机
以下是源码
#include
#define uchar unsigned char
#define uint unsigned int
***it key1 = P1^0;
***it key2 = P1^1;
***it key3 = P1^2;
***it key4 = P1^3;
uchar speed=65;
uchar code zheng[] = {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar code fan[] = {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
void delay1ms(uint t){
char i;
while(t--){
for(i=0;i<113;i++);
}
}
void main()
{
uchar i;
while(1){
if (key1==0){
for(i=0;i<8;i++){
P2 = fan
;
delay1ms(speed);
}
}
if (key2==0){
for(i=0;i<8;i++){
P2 = zheng
;
delay1ms(speed);
}
}
if (key3==0){
speed = speed + 5;
if (speed>100) speed = 100;
}
if (key4==0){
speed = speed - 5;
if (speed<40) speed = 40;
}
}
}
问题
一开始选错电机,导致电机只朝一个方向移动,与预期结果不合,后换电机,问题得到解决。
后序改进
可以做一个数码管,显示正反转和当前对应的转速.
文章难免有错误之处,恳请留言指正
一、实验目的
1.了解步进电机的工作方式及原理
2.通过编程控制步进电机的正转,反转,加速,减速
二、前言
步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:当步进驱动
器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可
通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的
频率来控制电机的转速和加速度;从而达到调速的目的。
三、 实验器件
1.步进电机,分为六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER)
2.ULN2003(大电流驱动阵列)
ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V的电压,输出还可以在高负载电流并行运行。
引脚1:CPU脉冲输入端,端口对应一个信号输出端。
引脚2:CPU脉冲输入端。
引脚3:CPU脉冲输入端。
引脚4:CPU脉冲输入端。
引脚5:CPU脉冲输入端。
引脚6:CPU脉冲输入端。
引脚7:CPU脉冲输入端。
引脚8:接地。
引脚10:脉冲信号输出端,对应7脚信号输入端。
引脚11:脉冲信号输出端,对应6脚信号输入端。
引脚12:脉冲信号输出端,对应5脚信号输入端。
引脚13:脉冲信号输出端,对应4脚信号输入端。
引脚14:脉冲信号输出端,对应3脚信号输入端。
引脚15:脉冲信号输出端,对应2脚信号输入端。
引脚16:脉冲信号输出端,对应1脚信号输入端。
威廉希尔官方网站 基本理论
当步进驱动器接
收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换
相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉
冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即
给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频
率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机的基本参数:
(一)步进电机的静态指标术语
1、相数:产生不同对N、S磁场的激磁线圈对数。常用m表示。
2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
3、步距角:对应一个脉冲信号,电机转子转过的角位移用Θ表示,Θ=360°(转子齿数
运行拍数),以四相50齿电机为例,四拍运行时步距角为Θ=360°/(4
50)=1.8°(整步)。
(二)步进电机动态指标术语
1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差,用百分比表示,误差/步距角*100%,四拍控制5%以内,八拍控制15%以内。
2、电机正反转控制:当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时正转,通电时序为DA-D-CD-C-BC-B-AB-A时为反转。
步进电机的工作原理
步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步。步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情况下,电机的转速、停止位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。
图1是该四相反应式步进电机的工作原理图。
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0,3号齿对齐,同时,转子的1,4号就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源时,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2,5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
六线电机对应的连线标号.
延时函数
这个delay()的时间长短是控制转速的,有一定范围的,在一定范围内,越小越快,超过了的话,电机识别不了脉冲就不转了。延时函数过长,电机动一下停一下,过短则速度快。
电机的选择
MOTOR-STEPPER:步进电机
MOTOR-BLDCM:无刷直流电机
以下是源码
#include
#define uchar unsigned char
#define uint unsigned int
***it key1 = P1^0;
***it key2 = P1^1;
***it key3 = P1^2;
***it key4 = P1^3;
uchar speed=65;
uchar code zheng[] = {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar code fan[] = {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
void delay1ms(uint t){
char i;
while(t--){
for(i=0;i<113;i++);
}
}
void main()
{
uchar i;
while(1){
if (key1==0){
for(i=0;i<8;i++){
P2 = fan
;
delay1ms(speed);
}
}
if (key2==0){
for(i=0;i<8;i++){
P2 = zheng
;
delay1ms(speed);
}
}
if (key3==0){
speed = speed + 5;
if (speed>100) speed = 100;
}
if (key4==0){
speed = speed - 5;
if (speed<40) speed = 40;
}
}
}
问题
一开始选错电机,导致电机只朝一个方向移动,与预期结果不合,后换电机,问题得到解决。
后序改进
可以做一个数码管,显示正反转和当前对应的转速.
文章难免有错误之处,恳请留言指正
举报
更多回帖
rotate(-90deg);
回复
相关问答
步进电机
如何去
控制
步进
电机
的
减速
、
加速
以及正
反转
?
2021-06-30
1073
请问51单片机如何
控制
步进
电机
加速
、
减速
及
反转
?
2021-10-18
1092
三轴
步进
电机
的设计
2012-10-16
3289
普中的开发板(会附上原理图),如何
通过
四个独立按键来
控制
四相五线
步进
电机
,使其
正
转
、
反转
、
加速
、
减速
。
2017-02-18
11697
S3c44b0
控制
步进
电机
2012-03-29
2237
求助!基于PWM进行调速
控制
的
步进
电机
仿真。
2017-05-03
3793
请问51单片机按键如何
控制
步进
电机
加
减速
及正
反转
?
2021-10-14
3159
对
步进
电机
的
控制
,
加速
和
减速
是如何实现的?
2023-10-15
282
l297+l298
控制
步进
电机
,
正
转
准确,
反转
不准。
2014-05-04
2435
STC89C52,用驱动器,
控制
步进
电机
,按下按键
电机
正
转
90度,暂停5秒后
反转
90度
2017-03-27
6169
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分