步进电机控制_第1页
步进电机控制_第2页
步进电机控制_第3页
步进电机控制_第4页
步进电机控制_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、杭州电子科技大学电子系统设计综合实验设计报告实验名称: 步进电机控制 实验序号: 4 小 组 号: 4A 姓名学号: 张永杰13083137 黄涛 13083612 郑康佳 13083411 指导教师: 黄继业 2015年1月4日1 引言: 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。常见的步进电机分三种:永磁式(PM),反应式(VR)和

2、混合式(HB)。实验中使用的是永磁式步进电机24BY 型,下图是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5 根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM 端标识为C,只要AC、A C、BC、B C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM 端接正电源,那么只要用开关元件(如三极管),将A、A 、B、B 轮流接地。2 实验要求:1 (基本):控制四相六线式步进电机的转动(四相八拍方式)2 (基本):显示步进电机的转动圈数、角度和方向3 (扩展):用非接触的方式实时监测步进电机的工作状态4 实验器材清

3、单:名称型号数量驱动芯片L2981片霍尔元件cs31441个二极管80508个电容100uf、0.1uf各2个电阻2K1个四:实验电路原理图1:驱动电路原理图:2:驱动电路工作原理:L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。OUT1、OUT2和OUT3、OUT4之间分别 接两电机。IN1、IN2、IN3、IN4引脚从单片机接输入控制电平,控制电机正反转。3:L298控制单双八拍的逻辑表:A电机B电机IN1IN2IN3IN401000110001

4、010101000100100010101 4.霍尔模块电路图4:霍尔模块工作原理:霍尔传感器是对磁敏感的传感元件,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。根据这些输出的脉冲可以实现实时监测电机的工作状态。5.实验所用

5、的程序代码:源码目录:USER:main.cSTM32: (库文件)Driver:key.ckey.hstepmotor.cstepmotor.hkey.ckey.hTIM3.cTIM3.h12864.c12864.h/*要求:控制步进电机转动,8拍显示步进电机转动圈数,角度,方向。非接触方式实时监测*/#include "stepmotor.h"#include "TIM3.h"#include "key.h"#include "12864.h"#include "stm32f10x_exti.h&qu

6、ot;u8 i,j,keynum,direction=0;u16 Speedtime,loop_num1=0,loop_num2=0,interrupt_num=0,interrupt_speed=0;double angle=0;EXTI_InitTypeDef EXTI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;void EXTIX_Init(void)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);GP

7、IO_InitStructure.GPIO_Pin = GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOD, &GPIO_InitStructure);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource15); EXTI_InitStructure.EXTI_Line=EXTI_Line15; EXTI_InitSt

8、ructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F; NVIC_InitStr

9、ucture.NVIC_IRQChannelSubPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); void EXTI15_10_IRQHandler(void) interrupt_num +; /霍尔元件监测到一次EXTI_ClearITPendingBit(EXTI_Line15); int main()delay_init();EXTIX_Init();KEY_Init();Motor_GPIO_Init();lcd_gpio_init

10、();lcd_init();TIM3_Int_Init(9999,7199); /1sSpeedtime=900;lcd_6x8(0,0,"Motor Test.");lcd_6x8(0,3,"Loop Num1:");lcd_6x8(0,4,"Loop Num2:");lcd_6x8(0,5,"Angle:");lcd_6x8(0,7,"Speed:");lcd_6x8(60,7,"N/s");while(1)keynum=New_KEY_Scan();switch(key

11、num)case 1:direction+;if(direction=4)direction=0;break;case 2: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);

12、else if(direction=1)Motor_8(Speedtime);i+;angle=7.2 * 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,"Forward direction ! ");else if(direction=2) lcd_6x8_double(45,5,angle);lcd_6x8_num(70,3,loop_num1);lcd_6x8_num(70,4,loop_num2);else if(di

13、rection=3)Motor_8_back(Speedtime);j+;angle=7.2 * 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,"Backward direction ! ");void TIM3_IRQHandler(void) /static u16 a=0;if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) /检查指定的TIM中断发生与否:TIM 中断源 TIM_ClearITPendingBit(TIM3, TIM_IT_Update); /清除TIMx的中断待处理位:TIM 中断源 interrupt_speed=interrupt_num ; / N/sinterrupt_num=0;五:实验测试结果本次实验最后验收的效果是比较好的,基本上没有出错,完成了所有要求的内容,测量的结果也比较精确。六:设计总结本次实验的设计主要体现在驱动电路上,本来准备是采用ULN2003来作为驱动芯片,后来查了一下资料发现ULN2003,只能向它灌入电流,输出为高阻态,基本没输出电流。它一般用来吸收电流的。比如数码管驱动,或者两相五线、两相六线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论