实验:驱动步进电机。
参考链接:
参考1
参考2
首先看下做完的效果:
动态gif图:
晚上,看了下电路图,对步进电机的原理了解了下,发现步进电机是如此的简单,我所认为的简单是一个简单的驱动,具体到步进电机的设计什么的,肯定复杂的很,只不过我现在只是以一个菜鸟级别的身份去写个简单的驱动。步进电机主要是靠对A,B,C,D各个磁极进行通电,然后由于磁力作用,导致电机慢慢转动,转动原理如下,下图采用单三拍的方式,主要是原理弄清楚即可:
在开发板上,步进电机的原理图如下:
实现代码如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wela = P2 ^ 7;
sbit dula = P2 ^ 6;
uchar code ele[] = {0x20, 0x10, 0x08, 0x04};//顺时针
uchar code ele_v[] = {0x04, 0x08, 0x10, 0x20};//逆时针
void delay(uint time)
{
	uint x, y;
	for (x = time; x > 0; x--)
		for (y = 110; y > 0; y--);
}
//对A,B,C,D口进行电平设置
void diplay()
{
	uint i = 0;
	for (; i < 4; i++) {
		P0 = ele_v[i];
		delay(5);
	}
}
void main()
{
	//关闭数码管显示
	wela = 1;
	P0 = 0xff;
	wela = 0;
	delay(50);
	dula = 1;
	P0 = 0x00;
	dula = 0;
	delay(50);
	while (1) {
		diplay();
	}	
}
文章的脚注信息由WordPress的wp-posturl插件自动生成




 
                 微信扫一扫,打赏作者吧~
微信扫一扫,打赏作者吧~ 
	![[整理]三极管驱动继电器](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2014/02/11.jpg&w=280&h=210&zc=1)



