1012958620 发表于 2015-2-26 23:07:18

关于步进电机问题


#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
for(int i=8;i<12;i++)
{
    pinMode(i,OUTPUT);
}
irrecv.enableIRIn(); //初始化红外遥控
}

void loop()
{
if (irrecv.decode(&results))
{
    if(results.value==0xFF30CF)      //确认接收到的第一排按键1的编码,此码是预先读出来的按键编码。
    {
      int a;
      a=512;
      while(a--)
       {
      for(int i=8;i<12;i++)
      {
         digitalWrite(i,1);
         delay(10);
         digitalWrite(i,0);
         }
      }
   }
    else if(results.value==0xFF18E7)   //确认接收到的第一排按键2的编码
    {
   int a;
   a=512;
   while(a--)
   {
       for(int i=12;i>=8;i--)
      {
       digitalWrite(i,1);
       delay(10);
       digitalWrite(i,0);
       }
      }
   }
   irrecv.resume(); // 接收下一个值   }
}
}







遥控正反转 各自都能实现 但是 当电机正转是 按下反转按钮 就无法实现

chensg 发表于 2015-2-27 10:26:27

程序设计为:在步进电机在运行时不解码红外信号,当然在步进电机运行时就无法切换了!:lol
如要实现不能让步时电机长时间占用程序运行时间!

1012958620 发表于 2015-2-27 18:55:50

chensg 发表于 2015-2-27 10:26 static/image/common/back.gif
程序设计为:在步进电机在运行时不解码红外信号,当然在步进电机运行时就无法切换了!
如要实现不能让 ...

要怎么才能控制步进电机占用程序的时间= =

chensg 发表于 2015-2-28 14:56:01

1012958620 发表于 2015-2-27 18:55 static/image/common/back.gif
要怎么才能控制步进电机占用程序的时间= =

比如你那个程序中的512个循环分成十几次或几十次完成,不要一次占用太长时间。

1012958620 发表于 2015-2-28 20:24:07

chensg 发表于 2015-2-28 14:56 static/image/common/back.gif
比如你那个程序中的512个循环分成十几次或几十次完成,不要一次占用太长时间。

可是 转360度是512 要是不用512 会不会转不到1圈啊= =

chensg 发表于 2015-3-1 17:32:26

1012958620 发表于 2015-2-28 20:24 static/image/common/back.gif
可是 转360度是512 要是不用512 会不会转不到1圈啊= =

我的意思是每走几步,解码一次红外信号,最后还是走完总步数,这样也不会影响转的圈数。

1012958620 发表于 2015-3-1 21:32:37

chensg 发表于 2015-3-1 17:32 static/image/common/back.gif
我的意思是每走几步,解码一次红外信号,最后还是走完总步数,这样也不会影响转的圈数。

我大概懂了= =因为其实我在走的时候...单片机没办法同时解码..只有在停了以后。。。才能开始解码...

是这个意思吗= =
页: [1]
查看完整版本: 关于步进电机问题