极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 123417|回复: 37

arduino学习笔记16 - PS2摇杆/游戏摇杆实验

[复制链接]
发表于 2011-8-30 10:27:53 | 显示全部楼层 |阅读模式
PS2摇杆一般可以用来控制小车等等,其构造主要就是两个10K的电位器,还有一个按键开关。五个端口分别为VCC,X,Button,Y,GND。

先来看看实物图








老的液晶屏用来做其他东东了,所以换了一个,不同型号的1602液晶调节对比度的电阻阻值是不同的,所以这次我就换用了一个电位器,调节起来方便一些。

先上硬件连接图






把下面的代码下载到arduino控制器中
  1. #include <LiquidCrystal.h>   //调用arduino自带的LiquidCrystal库

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

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

  6. int xval=0;    //设置变量
  7. int yval=0;
  8. int bval=0;

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

  14. void loop ()                     
  15. {

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

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

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2012-11-28 20:11:21 | 显示全部楼层
普通人 发表于 2012-11-28 18:59
我手上有一个摇杆,不过没焊在板子上,看了一下有8个引脚,怎么变成5个啊
就是想问一下怎么焊的

额。。。。你看看是不是有两个电位器一个电位器是3个引脚,一个按钮是两个引脚。算上共用引脚就刚好是5个。
回复 支持 0 反对 1

使用道具 举报

发表于 2011-9-5 09:53:09 | 显示全部楼层
本帖最后由 mjgzdnw 于 2014-11-5 21:00 编辑

向弘毅大哥学习
回复 支持 反对

使用道具 举报

发表于 2012-7-1 14:44:31 | 显示全部楼层
这种模式,我试验中,数据跳动比较厉害,能有平滑模式算法?
回复 支持 反对

使用道具 举报

发表于 2012-11-28 18:59:38 | 显示全部楼层
本帖最后由 普通人 于 2012-11-28 19:01 编辑

我手上有一个摇杆,不过没焊在板子上,看了一下有8个引脚,怎么变成5个啊
就是想问一下怎么焊的
回复 支持 反对

使用道具 举报

发表于 2012-11-28 20:45:50 | 显示全部楼层
求问哪里有摇杆不带电路板单卖的呀@@,找了一晚上淘宝了,不知道要用什么关键字搜,joystick,ps2,摇杆 都试过了
麻烦大家帮帮忙,谢谢~
回复 支持 反对

使用道具 举报

发表于 2012-11-28 22:21:17 | 显示全部楼层
弘毅 发表于 2012-11-28 20:11
额。。。。你看看是不是有两个电位器一个电位器是3个引脚,一个按钮是两个引脚。算上共用引脚就刚好是5个 ...

对啊,两个电位器,一个按钮=3+3+2=8
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-29 08:44:49 | 显示全部楼层
zhujunsan 发表于 2012-11-28 20:45
求问哪里有摇杆不带电路板单卖的呀@@,找了一晚上淘宝了,不知道要用什么关键字搜,joystick,ps2,摇杆 都 ...

额。。。。介个貌似我也没见到过。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-29 08:45:18 | 显示全部楼层
普通人 发表于 2012-11-28 22:21
对啊,两个电位器,一个按钮=3+3+2=8

vcc gnd可以复用
回复 支持 反对

使用道具 举报

发表于 2012-12-1 12:10:21 | 显示全部楼层
弘毅 发表于 2012-11-29 08:44
额。。。。介个貌似我也没见到过。。。

我记得我以前在淘宝见过,然后没存,这两天想买来着就找不到了。。。
回复 支持 反对

使用道具 举报

发表于 2012-12-2 22:50:26 | 显示全部楼层
弘毅 发表于 2012-11-29 08:45
vcc gnd可以复用

上面两个是按键开关,右边和下边是两个电位器的三个脚,不知道对不对,还有VCC和GND是不是是两边的两个点。可不可以帮我看一下错了没,帮我标一下脚呗。哦,还有就是一个摇杆吗,有没有别的什么元件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-4-18 10:13:36 | 显示全部楼层
这么好的帖子一年都没人来说一句话。。太扯淡了。我顶你个狒狒
回复 支持 反对

使用道具 举报

发表于 2013-7-11 13:52:26 | 显示全部楼层
zhujunsan 发表于 2012-11-28 20:45
求问哪里有摇杆不带电路板单卖的呀@@,找了一晚上淘宝了,不知道要用什么关键字搜,joystick,ps2,摇杆 都 ...

关键字:摇杆电位器
回复 支持 反对

使用道具 举报

发表于 2013-7-21 21:33:46 | 显示全部楼层
圣骑士by 发表于 2013-7-11 13:52
关键字:摇杆电位器

感谢!~~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2013-9-3 15:24:58 | 显示全部楼层
楼主为什么这个按钮也是模拟量输入呢?还有那500是什么的值来的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 21:14 , Processed in 0.068181 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表