某宝上买的joystick
可以看到有五个引脚:Vcc,GND,VRx,VRy,SW(switch即按钮)
网上有很多例子都是说SW接arduino数字IO口,我把它接到模拟输入IO后经过调试,发现我这玩意不按时输出电压是随意值,按下去之后电压稳定在0。
经过调试,我画了一张不同方位X,Y的输入电压变化(上方为引脚方向):
因此读者需要注意,下面是代码(接法见注释):
//x,y,z轴接在模拟输入的A1,A0,A2
#define JoyStick_X 0
#define JoyStick_Y 1
#define JoyStick_Z 2
//SW引脚按下去时输出0,不按时在0-5V间跳动
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int x,y,z;
x=analogRead(JoyStick_X);
y=analogRead(JoyStick_Y);
z=analogRead(JoyStick_Z);
Serial.print("X=");
Serial.print(x);
Serial.print("\tY=");
Serial.print(y);
if(analogRead(JoyStick_Z)==0){
Serial.println("\tButton=On");
}else{
Serial.println("\tButton=Off");
}
delay(1000);
}