步进电机(28BYJ-48-5V)试验

作者:卢老师,华清远见教育科技集团讲师。

试验原理:

理解4相5线步进电机原理,利用GPIO输出功能驱动步进电机转动。

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机28BYJ48型四相八拍电机,电压为DC5V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信 号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)

实验环境】:

1、FS_WSN_GATE_V2开发板

2、FS_Colink  V2.0

3、RealView MDK(Keil uVision4)

实验步骤】:

1、02FS_step_文件夹下找到并打开project.uvproj文件;

2、编译此工程;

3、通过FS_Colink下载编译好的工程到FS_WSN_GATE_V2开发板;

4、按Reset键复位,看到步进电机转动。

【原理图】:

利用光电隔离和驱动芯片2003,完成STM32与步进电机的连接。

实验现象

下载程序后,跳线帽将CON10靠近板边方向的短接,可以看到对步进电机转动。

实验分析

选用4拍的驱动方式:

ABCD四向依次输入如下电平:      1100---------0110------------0011----1001

电机转动

uint32_ti;
        FS_STEP_Init();
        while (1)
        {

                for(i = 0; i< 30000; i++); //1100
                GPIO_SetBits(GPIOB, GPIO_Pin_6);
                GPIO_SetBits(GPIOB, GPIO_Pin_7);
                GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                GPIO_ResetBits(GPIOB, GPIO_Pin_9);

                for(i = 0; i< 30000; i++); //0110
                GPIO_ResetBits(GPIOB, GPIO_Pin_6);
                GPIO_SetBits(GPIOB, GPIO_Pin_7);
                GPIO_SetBits(GPIOB, GPIO_Pin_8);
                GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                for(i = 0; i< 30000; i++);

                GPIO_ResetBits(GPIOB, GPIO_Pin_6);//0011
                GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                GPIO_SetBits(GPIOB, GPIO_Pin_8);
                GPIO_SetBits(GPIOB, GPIO_Pin_9);
                for(i = 0; i< 30000; i++);
                GPIO_SetBits(GPIOB, GPIO_Pin_6); //1001
                GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                GPIO_SetBits(GPIOB, GPIO_Pin_9);

        }