我正在尝试获取代码,以显示来自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() {
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);
}
答案 0 :(得分:0)
您可以使用几种方法来查找错误,这是一些建议:
也就是说,编写代码的方式是希望将开关引脚连接到Vcc,请检查是否确实如此。
答案 1 :(得分:0)
尝试一下:
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);
}
否则,代码看起来正确。游戏杆上的开关确实是数字开关,而其他开关则是模拟开关,您没错。
以下是有关如何使用操纵杆的视频,可能会有所帮助:https://www.youtube.com/watch?v=MlDi0vO9Evg