Arduino 20 - PS2 Shot Stick摇杆实验

PS2摇杆一般可以用来控制小车等等,其构造主要就是两个10K的电位器,还有一个按键开关。五个端口分别为VCC,X,Button,Y,GND。


接线示意图:

Source Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <LiquidCrystal.h>   //调用arduino自带的LiquidCrystal库

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//设置接口

int xpotPin = 0;  //设置模拟口0为X的信号输入端口
int ypotPin = 1;  //设置模拟口1为Y的信号输入端口
nt bpotPin = 2;  //设置模拟口2为Button的信号输入端口

int xval=0;    //设置变量
int yval=0;
int bval=0;

void setup()
{
lcd.begin(16, 2);  //初始化LCD
delay(1000); //延时1000ms
}

void loop ()
{

xval = analogRead(xpotPin);   //xval变量为从0信号口读取到的数值
yval = analogRead(ypotPin);   //yval变量为从1信号口读取到的数值
bval = analogRead(bpotPin);   //bval变量为从2信号口读取到的数值
lcd.clear(); //清屏
lcd.setCursor(0, 0) ; //设置光标位置为第一行第一个位置
lcd.print("X=");      //使屏幕显示文字X=
lcd.print(xval);
lcd.setCursor(7, 0) ; //设置光标位置为第一行第八个位置
lcd.print("Y=");      //使屏幕显示文字Y=
lcd.print(yval);

if (bval<500)
{
lcd.setCursor(0, 1) ;   //设置光标位置为第二行第一个位置
lcd.print("Button ON"); //使屏幕显示文字Button ON
}
else
{
lcd.setCursor(0, 1) ;
lcd.print("Button OFF"); //使屏幕显示文字Button OFF
}

delay(100);                     //延时0.1秒,这里也就是刷新速度。
}

实验效果,推动摇杆时,电位器阻值发生变化,相应的电压也会发生变化,液晶屏上的数字就是每一个轴的电压数字输出。按下按键后,液晶上显示的按键状态会发生变化。

Would you mind buy me a cup of coffee?