先来图看看,没忍住全部抄下来:(感谢万能的淘宝,以及商家 8毛钱一个还要啥自行车 @ https://item.taobao.com/item.htm?spm=a230r.1.14.65.472f69f3zFqx6H&id=590142046187&ns=1&abbucket=8#detail)
手头有个STC89C51开发板,送的就是上边的步进电机。也不太懂这四个线的作用,好在有百度。百度了是arduino,单片机的也有。
控制方法见这里:https://wenku.baidu.com/view/8579bf2349649b6649d747ea.html 第四页下侧。
看了之后该电机可以4拍8拍的运行。步进电机的特点是,误差不累积。
单片机不能直接控制它,因为电流不够。开发板上有个 TC1508S (https://wenku.baidu.com/view/6e6dbe0302d8ce2f0066f5335a8102d276a261b7.html)
专门是用来做玩具马达的。这个片子很容易,输入四个 ,输出四个 可以控制两个直流电机(突然我有开玩具厂做遥控车的想法,哈哈)做到真正的四驱。
这里也可以控制好输出的时序来控制这个两线四相的步进电机。关于连线附属电容参看TC1508S的内容。
用了P1的0,1,2,3端口 接 TC1508S的 ina inb inc ind 关于真值表看文档
TC1508S的 outa outb outc outd 接到 步进电机的 A+ A- B+ B-
按上边的就是间接的用 0,1,2,3口控制步进电机的 A+ A- B+ B-
代码我在贴吧看到一个,拷过来能用,是4拍的:
sbit A_OUT=P1^0; //位定义
sbit B_OUT=P1^1; //位定义
sbit C_OUT=P1^2; //位定义
sbit D_OUT=P1^3; //位定义
void delay(i)//延时函数
{
unsigned char j,k;
for(j=0;j<3;j++)
for(k=0;k<i;k++);
}
FuncNum=200;
while (--FuncNum) {
A_OUT=1;
B_OUT=0;
C_OUT=1;
D_OUT=0;
delay(y);
//
A_OUT=0;
B_OUT=1;
C_OUT=1;
D_OUT=0;
delay(y);
//
A_OUT=0;
B_OUT=1;
C_OUT=0;
D_OUT=1;
delay(y);
//
A_OUT=1;
B_OUT=0;
C_OUT=0;
D_OUT=1;
delay(y);
}
P1=0; //恢复低电平,防止烧坏电机
至于八拍的就看上边的关于步进电机的文档补充上就好了。
这个电机虽小,可以做很多有意思的东西。
另外如果接TC1508S的 outa outb , outc outd 可以分两组控制两个普通马达,小时候最喜欢四驱车就是这个,淘宝2快两个,想当年四驱车暴利啊。
现在越来越喜欢单片机了。能控制能动的马达,无限的想象力就来了。
为什么放在QT因为我在做上位机和下位机控制。串口通信把小马达们控制起来,加个蓝牙,无线模块,无限可能有木有。
来源:oschina
链接:https://my.oschina.net/u/4396169/blog/3596330