我试图制造一种类型的机械臂"我在学校的项目。
我的问题是:当爪子得到什么东西时伺服停止并且IR变得疯狂。我尝试了所有我知道但没有任何工作,项目进展得很晚......
这与我的项目类似,但我没有盾牌:
#include <IRremote.h>
#include <Servo.h>
#define rec A1
#define claw 5
Servo g;
bool i = false;
IRrecv irrecv(rec);
decode_results results;
void setup() {
Serial.begin(9600);
g.attach(claw);
g.write(25);
irrecv.enableIRIn();
}
void loop(){
if(irrecv.decode(&results)){
delay(250);
Serial.println(results.value);
if(results.value == 551522925) {
i = !i;
change(i);
}
}
}
void change(bool i) {
switch (i) {
case false:
g.write(0);
break;
case true:
g.write(25);
break;
}
}
答案 0 :(得分:0)
当爪子发出咔哒声时,伺服停止,IR变得疯狂。
很可能这是一个电源问题,从不同于Arduino电源的电源供应伺服电机,并确保它具有足够的额定电流。
答案 1 :(得分:0)
delay(250)
。这将使所有代码停止250mS。我想你试图阻止命令重复和切换太快,但添加延迟是行不通的。首先使用2个按钮。然后,如果收到多个相同类型的命令并不重要。