FutureMaker 发表于 2014-1-24 17:08:21

不错哦:lol

Inner_Peace 发表于 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灯还是在闪,数据不停地变。

弘毅 发表于 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);
}

誓言只是失言 发表于 2014-3-24 13:09:25

弘毅 发表于 2014-3-23 11:12 static/image/common/back.gif
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

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

543352664 发表于 2014-4-7 16:17:07

弘毅 发表于 2014-3-23 11:12 static/image/common/back.gif
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

那么用软件滤波,怎么更改代码?

赫焱 发表于 2014-7-2 21:47:38

弘毅 发表于 2014-3-23 11:12 static/image/common/back.gif
很正常。你这个摇杆的电位器不太好,会飘,所以数值会在小范围内变化,这种情况需要做滤波。过滤小幅波动。

楼主您好,同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 static/image/common/back.gif
你好,我使用的用串口显示摇杆的值。摇杆用的三维控制杆




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

枯木叶 发表于 2014-7-12 14:44:21

我想问一下,摇杆摆动,LCD上XY方向不能从0到1023,可能原因是什么

枯木叶 发表于 2014-7-15 08:51:48

誓言只是失言 发表于 2014-3-24 13:09 static/image/common/back.gif
想问问弘毅老前辈, 为什么摇杆的vcc和GND连接串口(电脑)的数值和连接电池的数值不一样

用什么滤波呢,能不能给一下代码让我学习一下啊

疏雨梧桐 发表于 2014-7-29 14:07:11

哈哈 原来输出是这样的啊 !太感谢你了!!!

ourutopia 发表于 2014-10-18 22:50:59

如果不用10k的电位器呢

qxh_168 发表于 2014-11-5 17:05:30

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

qxh_168 发表于 2014-11-5 17:06:33

mjgzdnw 发表于 2011-9-5 09:53 static/image/common/back.gif
不错不错,偶测试过用摇杆控制两个舵机,原理是一样,有机会,大家多交流。

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

49741933o 发表于 2014-12-28 13:41:23

弘毅大哥是否知道有那种非自动复位的摇杆吗?知道的话,麻烦给我个链接。
页: 1 [2] 3
查看完整版本: arduino学习笔记16 - PS2摇杆/游戏摇杆实验