我有一个项目,我在面包板上有一个按钮,通过编程的Arduino激活伺服。目前,这是我的代码:
#include <Servo.h>
Servo sA;
int d=2; // to store on or off value
void setup(){
sA.attach(A0);
pinMode(2,INPUT);
pinMode(A0,OUTPUT);
pinMode(13,OUTPUT);
sA.write(90);
}
void loop(){
d=digitalRead(2);
if(d==0){
sA.write(90);
digitalWrite(13,HIGH);
}elseThe
sA.write(0);}
digitalWrite(13,LOW);
}
这里的LED是对按钮的测试(我遇到了问题)。按下按钮时,LED会在if语句中按照预期亮起。伺服(TowerPro MG995)直接连接到VEX 7.2伏电池供电,我知道这对电源有用。但是,该按钮不会激活伺服或根本没有注册响应。代码有问题吗?伺服的数据线直接连接到引脚A0,如代码所示。
答案 0 :(得分:0)
我重写了您的代码,检查您的连接并尝试此代码:
#include <Servo.h>
Servo sA;
int d=2; // to store on or off value
void setup(){
pinMode(d, INPUT);
sA.attach(9); //pin 9
//sA.write(90); //will move to 90degrees
}
void loop(){
if(digitalRead(d)==HIGH){
sA.write(90);
digitalWrite(13,HIGH);
}
else{
sA.write(0);
digitalWrite(13,LOW);
}
}
请记住,只有按下按钮才会移动伺服,如果松开,伺服将会返回。
答案 1 :(得分:0)
电气问题
提醒一下。伺服电机的最大电压为6.6V。完全充电的7.2V VEX电池将为8.4V,因为7.2V只是电池的平均电压(yep)。
代码问题
pinMode(A0, OUTPUT);
其他所有 似乎 确定。