步进电机控制.docx

上传人:b****7 文档编号:10734874 上传时间:2023-02-22 格式:DOCX 页数:9 大小:60.28KB
下载 相关 举报
步进电机控制.docx_第1页
第1页 / 共9页
步进电机控制.docx_第2页
第2页 / 共9页
步进电机控制.docx_第3页
第3页 / 共9页
步进电机控制.docx_第4页
第4页 / 共9页
步进电机控制.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

步进电机控制.docx

《步进电机控制.docx》由会员分享,可在线阅读,更多相关《步进电机控制.docx(9页珍藏版)》请在冰豆网上搜索。

步进电机控制.docx

步进电机控制

文件排版存档编号:

[UYTR-OUPT28-KBNTL98-UYNN208]

 

步进电机控制

杭州电子科技大学

电子系统设计综合实验

设计报告

实验名称:

步进电机控制

实验序号:

4

小组号:

4A

姓名学号:

指导教师:

黄继业

2015年1月4日

1.引言:

步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。

通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

常见的步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB)。

实验中使用的是永磁式步进电机24BY型,下图是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。

要使用步进电机转动,只要轮流给各引出端通电即可。

将COM端标识为C,只要AC、AC、BC、BC,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、A、B、B轮流接地。

2.实验要求:

1.(基本):

控制四相六线式步进电机的转动(四相八拍方式)

2.(基本):

显示步进电机的转动圈数、角度和方向

3.(扩展):

用非接触的方式实时监测步进电机的工作状态

4.实验器材清单:

名称

型号

数量

驱动芯片

L298

1片

霍尔元件

cs3144

1个

二极管

8050

8个

电容

100uf、

各2个

电阻

2K

1个

四:

实验电路原理图

1:

驱动电路原理图:

2:

驱动电路工作原理:

L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

OUT1、OUT2和OUT3、OUT4之间分别接两电机。

IN1、IN2、IN3、IN4引脚从单片机接输入控制电平,控制电机正反转。

3:

L298控制单双八拍的逻辑表:

A电机

B电机

IN1

IN2

IN3

IN4

0

1

0

0

0

1

1

0

0

0

1

0

1

0

1

0

1

0

0

0

1

0

0

1

0

0

0

1

0

1

0

1

4.霍尔模块电路图

4:

霍尔模块工作原理:

霍尔传感器是对磁敏感的传感元件,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。

将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。

使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。

如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。

根据这些输出的脉冲可以实现实时监测电机的工作状态。

5.实验所用的程序代码:

源码目录:

USER:

STM32:

(库文件)

Driver:

 

/*

要求:

控制步进电机转动,8拍

显示步进电机转动圈数,角度,方向。

非接触方式实时监测

*/

#include""

#include""

#include""

#include""

#include""

u8i,j,keynum,direction=0;

u16Speedtime,loop_num1=0,loop_num2=0,interrupt_num=0,interrupt_speed=0;

doubleangle=0;

EXTI_InitTypeDefEXTI_InitStructure;

GPIO_InitTypeDefGPIO_InitStructure;

NVIC_InitTypeDefNVIC_InitStructure;

voidEXTIX_Init(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

=GPIO_Pin_15;

=GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOD,&GPIO_InitStructure);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource15);

=EXTI_Line15;

=EXTI_Mode_Interrupt;

=EXTI_Trigger_Rising;

=ENABLE;

EXTI_Init(&EXTI_InitStructure);

=EXTI15_10_IRQn;

=0x0F;

=0x0F;

=ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

voidEXTI15_10_IRQHandler(void)

{

interrupt_num++;.");

lcd_6x8(0,3,"LoopNum1:

");

lcd_6x8(0,4,"LoopNum2:

");

lcd_6x8(0,5,"Angle:

");

lcd_6x8(0,7,"Speed:

");

lcd_6x8(60,7,"N/s");

while

(1)

{

keynum=New_KEY_Scan();

switch(keynum)

{

case1:

direction++;if(direction==4)direction=0;break;

case2:

Speedtime-=100;if(Speedtime==600)Speedtime=900;break;

default:

break;

}

lcd_6x8_num(45,7,interrupt_speed);//每秒转速

lcd_6x8_num(100,7,interrupt_num);

if(direction==0)

{

lcd_6x8_double(45,5,angle);

lcd_6x8_num(70,3,loop_num1);

lcd_6x8_num(70,4,loop_num2);

}

elseif(direction==1)

{

Motor_8(Speedtime);

i++;

angle=*i;

if(i==50)//达到一圈

{

i=0;

loop_num1++;

}

lcd_6x8_double(45,5,angle);

lcd_6x8_num(70,3,loop_num1);

lcd_6x8(0,2,"Forwarddirection!

");

}

elseif(direction==2)

{

lcd_6x8_double(45,5,angle);

lcd_6x8_num(70,3,loop_num1);

lcd_6x8_num(70,4,loop_num2);

}

elseif(direction==3)

{

Motor_8_back(Speedtime);

j++;

angle=*j;

if(j==50)

{

j=0;

loop_num2++;

}

lcd_6x8_double(45,5,angle);

lcd_6x8_num(70,4,loop_num2);

lcd_6x8(0,2,"Backwarddirection!

");

}

}

}

voidTIM3_IRQHandler(void)

{

//staticu16a=0;

if(TIM_GetITStatus(TIM3,TIM_IT_Update)!

=RESET)//检查指定的TIM中断发生与否:

TIM中断源

{

TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//清除TIMx的中断待处理位:

TIM中断源

interrupt_speed=interrupt_num;//N/s

interrupt_num=0;

}

}

五:

实验测试结果

本次实验最后验收的效果是比较好的,基本上没有出错,完成了所有要求的内容,测量的结果也比较精确。

六:

设计总结

本次实验的设计主要体现在驱动电路上,本来准备是采用ULN2003来作为驱动芯片,后来查了一下资料发现ULN2003,只能向它灌入电流,输出为高阻态,基本没输出电流。

它一般用来吸收电流的。

比如数码管驱动,或者两相五线、两相六线的步进电机,这种步进电机有一个或两个公共端可以接电源正极,驱动电机,电流从其他各引线经过ULN2003流到地线上。

通过控制ULN2003的输出状态来控制电机的节拍。

但是对于本次实验用的两相四线的电机不太合适,所以最后采用L298来驱动,最后驱动的效果也是比较好的。

拓展模块则采用cs3144霍尔元件来实现。

(本次实验黄涛同学负责编写程序部分,郑康佳、张永杰同学负责做驱动电路等硬件部分,黄涛负责最后测量与修改,实验报告最终由郑康佳同学完成)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1