极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 弘毅

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

[复制链接]
发表于 2014-1-24 17:08:21 | 显示全部楼层
不错哦
回复 支持 反对

使用道具 举报

发表于 2014-3-22 13:35:36 | 显示全部楼层
你好,我使用的用串口显示摇杆的值。摇杆用的三维控制杆



我参照楼主的代码,自己设计的代码如下:

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

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

void setup()
{
  Serial.begin(9600);  //9600bit/s
  Serial.print("Ready");
//  pinMode(xpotPin, INPUT);
}

void loop()
{
  xval = analogRead(xpotPin);   //xval变量为从0信号口读取到的数值
  yval = analogRead(ypotPin);   //yval变量为从1信号口读取到的数值
  zval = analogRead(zpotPin);   //bval变量为从2信号口读取到的数值
  Serial.print("X=");      //使屏幕显示文字X=
  Serial.print(xval);
  Serial.println(",");
  Serial.print("Y=");      //使屏幕显示文字Y=
  Serial.print(yval);
  Serial.println(",");
  Serial.print("Z=");      //使屏幕显示文字Y=
  Serial.print(zval);
  Serial.println(",");

  delay(100);   //100ms刷新一次   
   
}

但是问题出来了:
1.我的摇杆没有动,串口显示的数据一直都在变
2.我重新设置I/O口,与上条结果一样。
3.我不插摇杆,数据TX灯还是在闪,数据不停地变。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-23 11:12:22 | 显示全部楼层
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。
回复 支持 反对

使用道具 举报

发表于 2014-3-24 12:56:38 | 显示全部楼层





int L_X = 0; //x
int L_Y = 1; //y
int L_Z = 3; //key
int R_X =A3;
int R_Y =A2;
int R_Z =A1;
void setup()
{
pinMode(L_X, INPUT);
pinMode(L_Y, INPUT);
pinMode(L_Z, INPUT);
pinMode(R_X, INPUT);
pinMode(R_Y, INPUT);
pinMode(R_Z, INPUT);



Serial.begin(9600);
}
void loop()
{
int Lx,Ly,Lz,Rx,Ry,Rz;

Lx=analogRead(L_X);
Ly=analogRead(L_Y);
Lz=digitalRead(L_Z);
Rx=analogRead(R_X);
Ry=analogRead(R_Y);
Rz=digitalRead(R_Z);

Serial.print(Lx ,DEC);
Serial.print(",");
Serial.print(Ly ,DEC);
Serial.print(",");
Serial.println(Lz ,DEC);
Serial.print(Rx ,DEC);
Serial.print(",");
Serial.print(Ry ,DEC);
Serial.print(",");
Serial.println(Rz ,DEC);
delay(100);
}

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2014-3-24 13:09:25 | 显示全部楼层
弘毅 发表于 2014-3-23 11:12
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

想问问弘毅老前辈, 为什么摇杆的vcc和GND连接串口(电脑)的数值和连接电池的数值不一样        

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2014-4-7 16:17:07 | 显示全部楼层
弘毅 发表于 2014-3-23 11:12
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

那么用软件滤波,怎么更改代码?
回复 支持 反对

使用道具 举报

发表于 2014-7-2 21:47:38 | 显示全部楼层
弘毅 发表于 2014-3-23 11:12
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

楼主您好,同17楼一样,我也是用Arduino连接了三维摇杆,但需要将摇杆的动作隐射到PC中的一个软件(c#开发)中的变量值来表示,是不是在在串口通信中将上述程序的(X,Y,Z)的数值(电阻值)直接传到PC中,在程序里判断数值来代表摇杆的动作,比如X=0,即代表X一方向压到底,X=1024 ,即代表X这一相反方向压到底,请教一下楼主?谢谢
回复 支持 反对

使用道具 举报

发表于 2014-7-2 21:52:00 | 显示全部楼层
Inner_Peace 发表于 2014-3-22 13:35
你好,我使用的用串口显示摇杆的值。摇杆用的三维控制杆

请教一下,如果使用的是四维控制杆,多了个旋转按钮应该怎么连接板子了,谢谢
回复 支持 反对

使用道具 举报

发表于 2014-7-12 14:44:21 | 显示全部楼层
我想问一下,摇杆摆动,LCD上XY方向不能从0到1023,可能原因是什么
回复 支持 反对

使用道具 举报

发表于 2014-7-15 08:51:48 | 显示全部楼层
誓言只是失言 发表于 2014-3-24 13:09
想问问弘毅老前辈, 为什么摇杆的vcc和GND连接串口(电脑)的数值和连接电池的数值不一样

用什么滤波呢,能不能给一下代码让我学习一下啊
回复 支持 反对

使用道具 举报

发表于 2014-7-29 14:07:11 | 显示全部楼层
哈哈 原来输出是这样的啊 !太感谢你了!!!
回复 支持 反对

使用道具 举报

发表于 2014-10-18 22:50:59 | 显示全部楼层
如果不用10k的电位器呢
回复 支持 反对

使用道具 举报

发表于 2014-11-5 17:05:30 | 显示全部楼层
老师您好,我现在正在做一款两轮驱动智能小车,要求要用摇杆来控制小车前进后退转弯,具体怎么控制不是太懂,能指点一下吗?我的qq:310430345。
回复 支持 反对

使用道具 举报

发表于 2014-11-5 17:06:33 | 显示全部楼层
mjgzdnw 发表于 2011-9-5 09:53
不错不错,偶测试过用摇杆控制两个舵机,原理是一样,有机会,大家多交流。

老师您好,我现在正在做一款两轮驱动智能小车,要求要用摇杆来控制小车前进后退转弯,具体怎么控制不是太懂,能指点一下吗?我的qq:310430345。
回复 支持 反对

使用道具 举报

发表于 2014-12-28 13:41:23 | 显示全部楼层
弘毅大哥是否知道有那种非自动复位的摇杆吗?知道的话,麻烦给我个链接。
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-3-28 17:15 , Processed in 0.046092 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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