作者:卢老师,华清远见教育科技集团讲师。
试验原理:
理解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);
}