Arduino电路打开LED但不打开伺服
我有一个项目,在试验板上有一个按钮,通过编程的Arduino激活伺服。目前,这是我的代码:Arduino电路打开LED但不打开伺服,arduino,arduino-uno,led,Arduino,Arduino Uno,Led,我有一个项目,在试验板上有一个按钮,通过编程的Arduino激活伺服。目前,这是我的代码: #包括 伺服sA; int d=2;//存储开或关值 无效设置(){ 附加(A0); pinMode(2,输入); pinMode(A0,输出); pinMode(13,输出); sA.write(90); } void循环(){ d=数字读取(2); 如果(d==0){ sA.write(90); 数字写入(13,高); }埃尔塞斯 sA.write(0);} 数字写入(13,低); } LED在这
#包括
伺服sA;
int d=2;//存储开或关值
无效设置(){
附加(A0);
pinMode(2,输入);
pinMode(A0,输出);
pinMode(13,输出);
sA.write(90);
}
void循环(){
d=数字读取(2);
如果(d==0){
sA.write(90);
数字写入(13,高);
}埃尔塞斯
sA.write(0);}
数字写入(13,低);
}
LED在这里作为按钮的测试(我有问题)。按下按钮时,LED将按照if语句中的预期点亮。伺服系统(TowerPro MG995)直接连接到VEX 7.2伏电池供电,我知道它可以供电。但是,该按钮根本没有激活伺服或记录响应。代码有问题吗?如代码所示,伺服的数据线直接连接到针脚A0。我重写了您的代码,检查您的连接并尝试此代码:
#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);
}
}
#包括
伺服sA;
int d=2;//存储开或关值
无效设置(){
pinMode(d,输入);
附加(9);//插脚9
//sA.write(90);//将移动到90度
}
void循环(){
如果(数字读取(d)=高){
sA.write(90);
数字写入(13,高);
}
否则{
sA.写入(0);
数字写入(13,低);
}
}
请记住,只有按下按钮,伺服才会移动,如果松开按钮,伺服就会返回。电气问题 只是提醒一下。您的伺服最大电压为6.6V。一个充满电的7.2V VEX电池将是8.4V,因为7.2V只是电池的平均电压(yep)
代码问题
- 无需输入
pinMode(A0,输出)代码>
其他一切似乎都是正常的。在写入pin之前,请延迟一段时间,您正试图立即旋转pin。你应该考虑电子产品,这就是代码< ELS> <代码>正确吗?但不确定,这就是您现在在arduino中编写if-else语句的方式吗?