荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 报告体会 > 工作报告 > 步进电机正反转实验报告

步进电机正反转实验报告

网站:公文素材库 | 时间:2019-05-29 13:29:18 | 移动端:步进电机正反转实验报告

步进电机正反转实验报告

一、实验名称:

步进电机正反转训练

二、控制要求

要求实现电机的正转三圈,反转三圈,电机正转和反转的频率可不相同,然后这样循环3次,3次后电机停止转动。

三、PLCI/O地址分配表

PLC的I/O地址Y0电机转向输出点Y1电机的转速输出点连接的外部设备控制转速点CP控制转向点CW四、程序梯形图

五、程序分析:

M11、M12、M13的波形图

M21、M22、M23的波形图

电机正转的频率是20赫兹,通过MOV指令送到D5中,在电机正传三圈后,电机反转,反转的频率是40赫兹,通过MOV指令送到D5中。电机正转3次,反转2次,再通过M23得电进入正转,重复上面的循环,即电机正转后再反转,M23才得电一次,所以可以加一个M23控制一个计数器计数,当计数器计数到3时,再通过计数器的常闭开关把M10线圈断电,从而实现电机停止。

扩展阅读:微机实验报告 步进电机正反转及调速设计

微机原理与接口设计实验报告

步进电机正反转及调速设计

专业:机械设计制造及其自动化班级:10090112

小组成员:周先军10901239

张赓10901240胡一国08901312

组别:B5

摘要:本系统是基于STM8系列单片机的步进电机转速转向控制器。该系统采用STM8S103F3P6单片机作为主控制器,运用L298全桥驱动器驱动步进电机,通过摇杆、按键控制电机转速,并且通过1602液晶显示器显示当前转速。该系统中使用的四相步进电机,具有控制精度高,转动扭矩大等特点,实际生产中有广泛的运用。系统中除了传统按键控制外,还增加遥控控制,单片机通过AD读取摇杆控制信号,实时控制电机转速。整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。

关键词:控制

单片机控制驱动电路正反转摇杆四相步进电机STM8L2一、系统方案1.1控制系统方案

方案一:采用8086系列单片机。8086是Inter系列的16位微处理器,数据处理能力强。但是8086系列的CPU指令数据需要放置在内存中,需要依赖外部非易失存储器和RAM才可以工作,外部电路复杂。

方案二:采用STM8系列单片机。STM8是意法半导体生产的8位单片机,哈弗结构。拥有8K字节Flash,1K字节RAM,1KEEPROM,内部集成5路10位ADC,高级控制定时器可带死区控制PWM、以及SPI、I2C等接口。整体性能优越,价格便宜,周边电路简单。综上对比,选择方案二。

1.2驱动电路方案

方案一:采用ULN201*达林顿管阵列控制电机。ULN201*是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成,工作电压高,工作电流大,灌电流可达500mA。但系统采用通用四线四相步进电机,需要两路同时灌、输电流,该驱动设计只能满足5线步进电机的驱动,不符合要求。

方案二;采用L298集成全桥驱动芯片。L298内部含有4通道逻辑驱动电路,是一种二相和四相电机专业驱动器,内含有两个H桥的高电压大电流双全桥式驱动器,接受标准的TTL逻辑电平信号,可驱动46V、2A以下的电机。具有灌电流功能。适用于本系统采用的4线步进电机,经对比采用方案二。

1.3控制信号采集

方案一:通过按键输入,控制电机转速加减。有液晶屏幕辅助显示设定电机方案二:通过PS2摇杆和MMA7361加速度传感器产生欲控制的信号,通过单对比两种方案,方案二操作更加方便直观,用户体验乐趣强,电路设计简单。转向、转速信息。

片机的AD采样进行信号采集,进行实时控制。因此采用方案二。1.4电源供电电路

本系统中步进电机供电7.2V,单片机控制板供电5V,最小系统板供电3.3V,传感器供电3.3V。为了使用方便,本系统采用7.2V电池组统一供电。通过开关电源芯片TPS54331降压到5V,为单片机控制板供电;采用LM1117-3V3线性电源芯片降压到3.3V,为单片机和传感器供电。1.5系统组成框图

图1.5

二、硬件设计

2.1、驱动电路(L298)

图2.1

2.2、控制系统电路(STM8)

图2.2

2.3、供电电源电路(TPS54331)

图2.3

三、软件设计

整个系统软件分为AD信号采集和电机信号输出两个部分。采集信号的AD值与程序设定的中值范围(AD0-AD1)进行比较。小于AD0,输出反转信号;大于AD1,输出正转信号。实际AD值与中间值差值,对应输出信号频率,从而控制步进电机转速。(附录1)

开始初始化While(1)AD采样

AD=中间值停止4.2电机控制信号测试

为了检测单片机输出信号,在控制电路板上安装了一组LED灯。通过观察LED灯的闪烁顺序,校验输出电机的信号相序。单片机通过PA5采集传感器信号,通过PC3、PC4、PC5、PC6四个I/O口输出控制信号。默认状态为低电平,对于LED为亮;当I/O口置高,LED灯熄灭。用摇杆摆动输入欲控制信号,单片采样处理后输出,通过观察熄灭LED灯的流动顺便和周期大小,可以直观的反映I/O口输出信号,从而能很好的校验输出相序信号。

4.3测试结果分析

连接好个模块电路,接通电源。首先使用摇杆做传感器,摇杆复位处于中间状态时,电机停止;往左摇动,电机反转,往右摇动,电机正转。而且摇动幅度越大,转速越快。使用加速度,将传感器平放,电机停止;向左倾斜,电机反转;向右倾斜,电机正转;倾斜角度越大,转速越快。经过以上测试,该系统比较好完成了题目的设计要求。

五、总结

本设计较完满的完成了题目的基本要求。采用STM8单片机,运用C语言编写程序;运用AltiumDesigner设计PCB电路,通过打印、转印、腐蚀、钻孔等工序制作腐蚀电路板;通过网站下载芯片PDF文档,学习了怎么使用新的电子芯片,设计周边电路。传感器部分使用PS2摇杆和加速度传感器,使得实际操控有很多的乐趣。通过本设计,很好的了解了电路板的设计制作过程,增强了团队的合作精神。通过测试,成功实现了四线步进电机的正反转及转速控制。

附件1

/**微机原理与接口设计B5LED流水灯(步进电机)周先军

201*425*//*Includes------------------------------------------------------------------*/#include"stm8s.h"#include"USART.h"#include"delay.h"#include"1602.h"#include"PWM.h"#include"TIM.h"#include"ADC.h"#include"GPIO.h"#include"eeprom.h"#include

/*Privatedefines-----------------------------------------------------------*/voidCLK_Configuration(void);voidGPIO_Configuration(void);voidEXTI_Init(void);

/*Privatefunctionprototypes-----------------------------------------------*///串口参数

u8RxBuffer1[40];u8RxCounter1=0;u8RxBuffer2[40];u8RxCounter2=0;

voidmain(void){

u16AD;inti;

CLK_Configuration();GPIO_Configuration();

ADC_Init(2,ADC1_PRESSEL_FCPU_D8);ADC_Init(3,ADC1_PRESSEL_FCPU_D8);ADC_Init(4,ADC1_PRESSEL_FCPU_D8);ADC_Init(5,ADC1_PRESSEL_FCPU_D8);ADC_Init(6,ADC1_PRESSEL_FCPU_D8);

Init_1602();

//UART1_DeInit();Uart1_Init(115200);

__enable_interrupt();//开中断printf("\\r\\nprintfisOK");while(1){

AD=Get_ADC1_Value(3);//*25000L/512L;3.3V对应1024PD2B4(1);B5(1);C3(0);C4(0);C5(0);C6(0);i=1000;if(ADC4(1);

delay_ms(i);C4(0);

C5(1);

delay_ms(i);C5(0);

C3(1);

delay_ms(i);C3(0);}else{

i=0;}

i=Get_ADC1_Value(3);

printf("ANI3=%d\\t\\n",i);//i=Get_ADC1_Value(4);//printf("ANI4=%d\\t",i);//delay_ms(200);}}

/**************系统时钟初始化*********************/voidCLK_Configuration(void){

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);}

voidGPIO_Configuration(void){

PA3_OUT

PC3_OUTPC4_OUTPC5_OUTPC6_OUTPD4_OUTPD5_OUTPD6_OUTGPIO_DeInit(GPIOD);

GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST);}

#ifdefUSE_FULL_ASSERT

voidassert_failed(u8*file,u32line){

while(1){}}

#endif

友情提示:本文中关于《步进电机正反转实验报告》给出的范例仅供您参考拓展思维使用,步进电机正反转实验报告:该篇文章建议您自主创作。

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


步进电机正反转实验报告》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/704023.html
相关文章