实验:驱动步进电机。
参考链接:
参考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)


