|
|
最近刚收到UNO便迫不及待的试了一下,以下是本人写出来的编码,希望各位教导一下 ....
第一次发帖待后续慢慢改善图片与视频,求帮忙指导是否正确,
没有用库函数的简单试验...
采用了28byj-48步进电机,用四相四拍的形式 ab-bc-cd-da-ab, 输入512脉冲刚好一圈,很多人都说1024个脉冲才一圈,这里我要强调一下,28byj-48步进电机,内部电机输出的转速可能与外部的转速比有可能是1比64 或者是1比32, 64的时候1024脉冲才一圈,32的时候512一圈.........................
void setup()
{
for(int i=8;i<12;i++)
{
pinMode(i,OUTPUT);
}
}
void loop()
{ int i;
int a;
a=512;
while(a--)
{
digitalWrite(11,0) ;
digitalWrite(8,1) ;
digitalWrite(9,1) ;
delay(2); /* ab的电*/
digitalWrite(8,0) ;
digitalWrite(9,1) ;
digitalWrite(10,1);
delay(2); /* bc的电 */
digitalWrite(9,0) ;
digitalWrite(10,1) ;
digitalWrite(11,1) ;
delay(2); /* cd 的电*/
digitalWrite(10,0) ;
digitalWrite(11,1) ;
digitalWrite(8,1) ;
delay(2); /* da 的电*/
}
for(i=8;i<12;i++)
{
digitalWrite(i,0) ;
}
while (1);
}
当用四相八拍的时候,电机内部转动外部不转,求知道原因, A-AB-B-BC-C-CD-D-DA-A,求知道为什么外部不转.
void setup()
{
for(int i=8;i<12;i++)
{
pinMode(i,OUTPUT);
}
}
void loop()
{ int i;
int a;
a=512;
while(a--)
{ digitalWrite(11,0) ;
digitalWrite(8,1) ;
delay(2); /* a 得电*/
digitalWrite(8,1) ;
digitalWrite(9,1) ;
delay(2); /* ab得电*/
digitalWrite(8,0) ;
digitalWrite(9,1) ;
delay(2); /* b 得电*/
digitalWrite(9,1) ;
digitalWrite(10,1) ;
delay(2); /* bc 得电*/
digitalWrite(9,0) ;
digitalWrite(10,1) ;
delay(2); /* c 得电*/
digitalWrite(10,1) ;
digitalWrite(11,1) ;
delay(2); /* cd 得电*/
digitalWrite(10,0) ;
digitalWrite(11,1) ;
delay(2); /* d 得电*/
digitalWrite(8,1) ;
digitalWrite(10,1) ;
delay(2); /* da得电*/
for(i=8;i<12;i++)
{
digitalWrite(i,0) ;
}
while (1);
}
|
|