带Arduino Uno R3开关控制的操纵手柄将不显示开关按下
我正试图让我的代码显示来自Arduino Uno上操纵杆的开关输入。当我在串行监视器中查看它时,我看到当我移动操纵杆时显示x轴和y轴。当我点击它时,我没有看到任何东西。我已将开关设置为Arduino上的针脚2。编译代码时没有错误带Arduino Uno R3开关控制的操纵手柄将不显示开关按下,arduino,switch-statement,arduino-uno,joystick,uno,Arduino,Switch Statement,Arduino Uno,Joystick,Uno,我正试图让我的代码显示来自Arduino Uno上操纵杆的开关输入。当我在串行监视器中查看它时,我看到当我移动操纵杆时显示x轴和y轴。当我点击它时,我没有看到任何东西。我已将开关设置为Arduino上的针脚2。编译代码时没有错误 int pin_x = A0; int position_x = 0; int pin_y = A1; int position_y = 0; int pin_z = 2; // switch pin int position_z = LOW; void setup
int pin_x = A0;
int position_x = 0;
int pin_y = A1;
int position_y = 0;
int pin_z = 2; // switch pin
int position_z = LOW;
void setup() {
Serial.begin(9600); // initialize serial communications at 9600 bps
pinMode(pin_x, INPUT); // set pin mod as INPUT
pinMode(pin_y, INPUT);
pinMode(pin_z, INPUT); // switch pin
}
void read(){
position_x = analogRead(pin_x);
position_y = analogRead(pin_y);
position_z = digitalRead(pin_z);
}
void show(){
Serial.print(" X:"); //print information to Serial Monitor
Serial.print(position_x);
Serial.print(" Y:");
Serial.print(position_y);
Serial.print(" Z:");
Serial.print(position_z);
}
void loop() {
read();
show();
delay(500);
}
有几种方法可用于查找错误,以下是一些建议:
void setup() {
Serial.begin(9600); // initialize serial communications at 9600 bps
pinMode(pin_x, INPUT); // set pin mod as INPUT
pinMode(pin_y, INPUT);
pinMode(pin_z, INPUT); // switch pin
digitalWrite(pin_z, HIGH);
}
否则代码看起来是正确的。操纵杆上的开关确实是数字的,而其他的是模拟的,你说得对
这里有一个关于如何使用操纵手柄的视频,可能会有所帮助:您是否确保开关工作正常且连接正确?我确实检查过了。开关工作正常,导线连接到正确的引脚。在两种开关状态下,您测量的电压是多少?我在按下并释放开关的情况下测试了导通性,但尚未测试电压。它正在运行的5v引脚。我必须检查电压,看看它的输出是什么