(十一)51进阶:步进电机与8051连接教程

释放双眼,带上耳机,听听看~!

介绍

(十一)51进阶:步进电机与8051连接教程

步进电机

步进电机是一种无刷直流电机,可将360°的完整旋转角度分成相等的步数。

通过施加一定量的控制信号来旋转电动机。可以通过改变施加控制信号的速率来改变旋转速度。

市场上有各种具有不同步进角和扭矩额定值的步进电机。

微控制器可用于向电机施加不同的控制信号,使其根据应用需要旋转。

步进电机与8051连接

(十一)51进阶:步进电机与8051连接教程

与8051的步进电机接口

  • 在这里,我们将连接6线单极步进电机和8051控制器。
  • 控制步进电机只需要四根线。
  • 步进电机的两根普通电线连接到5V电源。
  • ULN2003驱动器用于驱动步进电机。
  • 请注意,要知道绕组线圈及其中心抽头引线可测量引线之间的电阻。从中心引线我们将获得该绕组的半电阻值。

例程

让我们编写At89S52将步进电机顺时针旋转360°半步序列,360°逆时针旋转全步序列程序吧。

#include <reg52.h>

#define Stepper_Port P2			/* Define Stepper Motor Port */

/* Function to provide delay of 1ms at 11.0592 MHz */
void delay(unsigned int count)
{int i,j;
    for(i=0; i<count; i++)
			for(j=0; j<112; j++);
}

int main(void)
{
	int i,period;
	period = 100;	/* Set period in between two steps of Stepper Motor */
	while (1)
	{
		/* Rotate Stepper Motor clockwise with Half step sequence */
		for(i=0; i<12; i++)
		{
			Stepper_Port = 0x09;
			delay(period);
			Stepper_Port = 0x08;
			delay(period);
			Stepper_Port = 0x0C;
			delay(period);
			Stepper_Port = 0x04;
			delay(period);
			Stepper_Port = 0x06;
			delay(period);
			Stepper_Port = 0x02;
			delay(period);
			Stepper_Port = 0x03;
			delay(period);
			Stepper_Port = 0x01;
			delay(period);
		}
		/* last one step to acquire initial position */ 
		Stepper_Port = 0x09;
		delay(period);
		delay(1000);
		/* Rotate Stepper Motor Anticlockwise with Full step sequence */
		for(i=0; i<12; i++)
		{
			Stepper_Port = 0x09;
			delay(period);
			Stepper_Port = 0x03;
			delay(period);
			Stepper_Port = 0x06;
			delay(period);
			Stepper_Port = 0x0C;
			delay(period);
		}
		Stepper_Port = 0x09;
		delay(period);
		delay(1000);
	}
}

本教程完整项目工程下载:

给TA打赏
共{{data.count}}人
人已打赏
515151-高级

(十)51进阶:伺服电机(舵机)与8051连接教程

2019-4-12 15:46:09

515151-高级

(十二)51进阶:SIM900A GSM与8051连接教程

2019-4-12 16:18:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();