【ARM+51单片机开发板套件试用体验】 8、步进电机的控制

  • hehung
  • LV5工程师
  • |      2018-04-12 21:58:28
  • 浏览量 1111
  • 回复:0
拿到开发板还没有使用过电机与步进电机呢? 电机的控制太简单了,在这里就不演示了,直接个IO口的高低电平就可以正常控制了,所以就来操作一下稍微难一点而的步进电机。 步进电机的控制原理,应该都都知道,这个普中套件里面提供的是四线双极性步进电机,原理图如下图所示: 开发板上的连接图如下图所示: 这种步进电机可以正反转运动,同时还有三种控制方式: 1.单相四拍通电驱动时序 正转: A- B A B- 反转: B- A B A- 2.双相通电四拍驱动时序 正转:A-B AB AB- A-B- 反转:A-B- AB- AB A-B 3.半步八拍驱动时序 反转:A- A-B B AB A AB- B- A-B- 正转:A-B- B- AB- A AB B A-B A- 下面是主要代码,是单相四拍方式,反转(逆时针),如果想正转,安装上方的工作顺序自行切换就可以了
#include "reg52.h"			





#define uchar unsigned char 

#define uint  unsigned int



sbit SA = P1^0;

sbit SA_ = P1^1;

sbit SB = P1^2;

sbit SB_ = P1^3; 	



#define time 2000 



void step_Motor(void);

void delay(uint ms);

void step_Motor2(void);

void step_Motor3(void);



void main()

{	

	

	while(1)

	{	

		step_Motor();		

	}

}



void step_Motor(void)

{

	SA = 1;

	SA_ = 0;

	SB = 1;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 1;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 0;

	SA_ = 1;

	SB = 1;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 1;

	SB = 0;

	SB_ = 1;

	delay(time);

}

第一种:单相四拍方式,程序实现如上 第二种方式,如下,只提供主要操作代码:
void step_Motor2(void)

{

	SA = 1;

	SA_ = 0;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 0;

	SA_ = 1;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 0;

	SA_ = 1;

	SB = 0;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 0;

	SB = 0;

	SB_ = 1;

	delay(time);

}

第三种,半步八拍(正转,顺时针):
void step_Motor3(void)

{

	SA = 1;

	SA_ = 0;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 1;

	SA_ = 1;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 0;

	SA_ = 1;

	SB = 1;

	SB_ = 0;

	delay(time);



	SA = 0;

	SA_ = 1;

	SB = 1;

	SB_ = 1;

	delay(time);

	

	SA = 0;

	SA_ = 1;

	SB = 0;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 1;

	SB = 0;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 0;

	SB = 0;

	SB_ = 1;

	delay(time);



	SA = 1;

	SA_ = 10;

	SB = 1;

	SB_ = 1;

	delay(time);

}

值得注意的是,如果你的步进电机的相序出错的话就会造成左右都懂,这样就要检查一下你的相序是不是对的。 温馨提示:步进电机运行久了会很烫,不要用手直接触碰 对步进电机的调速,可以通过每步之间的延时来达到,延时越长,运动越慢。 好了,展示效果的时间到了。从动图中可以看到转的很慢,但是实际上转的比这个快一些,主要是动图丢帧比较严重。 好了,今天就到这里了,期望大家支持:)
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子