关于步进电机问题
#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(); // 接收下一个值 }
}
}
遥控正反转 各自都能实现 但是 当电机正转是 按下反转按钮 就无法实现 程序设计为:在步进电机在运行时不解码红外信号,当然在步进电机运行时就无法切换了!:lol
如要实现不能让步时电机长时间占用程序运行时间! chensg 发表于 2015-2-27 10:26 static/image/common/back.gif
程序设计为:在步进电机在运行时不解码红外信号,当然在步进电机运行时就无法切换了!
如要实现不能让 ...
要怎么才能控制步进电机占用程序的时间= = 1012958620 发表于 2015-2-27 18:55 static/image/common/back.gif
要怎么才能控制步进电机占用程序的时间= =
比如你那个程序中的512个循环分成十几次或几十次完成,不要一次占用太长时间。 chensg 发表于 2015-2-28 14:56 static/image/common/back.gif
比如你那个程序中的512个循环分成十几次或几十次完成,不要一次占用太长时间。
可是 转360度是512 要是不用512 会不会转不到1圈啊= = 1012958620 发表于 2015-2-28 20:24 static/image/common/back.gif
可是 转360度是512 要是不用512 会不会转不到1圈啊= =
我的意思是每走几步,解码一次红外信号,最后还是走完总步数,这样也不会影响转的圈数。 chensg 发表于 2015-3-1 17:32 static/image/common/back.gif
我的意思是每走几步,解码一次红外信号,最后还是走完总步数,这样也不会影响转的圈数。
我大概懂了= =因为其实我在走的时候...单片机没办法同时解码..只有在停了以后。。。才能开始解码...
是这个意思吗= =
页:
[1]