极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 43216|回复: 19

【求助】如何用Arduino模拟一个比例电位器(摇杆电位器)

[复制链接]
发表于 2015-7-23 09:10:01 | 显示全部楼层 |阅读模式

就是上边这个玩意。。。。

通常用在游戏机手柄上或者遥控器上边的

具体作用就是控制方向什么的嘛。

我想远程用Arduino控制一下

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-7-23 13:17:09 | 显示全部楼层
摇杆就是个A/D转换,你想用单片机模拟,可以直接输出数据,就是不知道你前期的数据怎么来。
回复 支持 反对

使用道具 举报

发表于 2015-7-23 16:06:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-23 18:15:28 | 显示全部楼层
老胖熊 发表于 2015-7-23 13:17
摇杆就是个A/D转换,你想用单片机模拟,可以直接输出数据,就是不知道你前期的数据怎么来。

我也是这么想的。。。
用DA输出值到摇杆那边对应引脚。

前期数据?我是直接手机通过wifi透传到串口,让Arduino解析协议生成的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-23 18:16:23 | 显示全部楼层
asdfcgdc 发表于 2015-7-23 16:06
参考这个
http://www.geek-workshop.com/thread-96-1-1.html

怎么用我是明白的。但是反过来模拟一个它在起作用,脑袋思路有点模糊
回复 支持 反对

使用道具 举报

发表于 2015-7-23 18:42:49 | 显示全部楼层
楼上通通理解错误。楼主问的不是如何读取电位器,是问如何通过Arduino模拟一个电位器。
很简单,弄个数字电位器芯片就可以了。
回复 支持 反对

使用道具 举报

发表于 2015-7-24 08:32:01 | 显示全部楼层
楼主,可以用数字电位器AD5131,来模拟普通电位器  http://www.hacker-china.com/maker/336.html
回复 支持 反对

使用道具 举报

发表于 2015-7-24 08:38:55 | 显示全部楼层
在arduino官网找到的数字电位器AD5171  https://www.arduino.cc/en/Tutorial/DigitalPotentiometer
回复 支持 反对

使用道具 举报

发表于 2015-7-24 10:12:24 | 显示全部楼层
maxims 发表于 2015-7-23 18:16
怎么用我是明白的。但是反过来模拟一个它在起作用,脑袋思路有点模糊

反正就是显示两个轴加一个开关
回复 支持 反对

使用道具 举报

发表于 2015-7-24 10:44:04 | 显示全部楼层
本帖最后由 darkorigin 于 2015-7-24 11:01 编辑

不需要什么所谓的模拟啊
楼主贴的这个 可以理解为2个电位器 (X轴和Y轴)

最简单的原理就是 输出电位值。。。 只要ARDUINO的GND和需要输出电路的GND相连 然后用PWM模拟脚直接输出数据就好了。。。2个脚 输出2个值。。。


楼主这个设计估计是要求做成某些设备的遥控接受器(比如航模 电动模型)
就是输出模拟量就好  ARDUINO直接自带DA脚  只要用程序设置模式 然后用函数直接输出模拟值即可. 不需要什么外挂芯片...  



  1. int Pin_e = 9;  // 输出连接到数字引脚9


  2. void setup()
  3. {
  4. pinMode(Pin_e,OUTPUT);  //设置引脚为输出引脚
  5. }

  6. void loop()

  7. {
  8. for (int i=0; i <= 255; i++) analogWrite(Pin_e,i);  //  用I的值作为模拟输出量输出 ,用电位绘制曲线会是一个斜线
  9. }
复制代码


代码很简单  就是设置模式 和模拟输出 2个函数  

你只要写好你的接受和数据处理代码  然后直接用PWM方式输出数据即可 490HZ的频率 输出模拟值
回复 支持 反对

使用道具 举报

发表于 2015-7-24 10:57:03 | 显示全部楼层
开关量 直接就是一个数字脚即可 给1就是高电平 给0就是低电平 主要是状态信息  比如控制某一个LED的开启,控制起落架 等等。。。
回复 支持 反对

使用道具 举报

发表于 2015-7-24 12:43:26 | 显示全部楼层
越说越乱了
回复 支持 反对

使用道具 举报

发表于 2015-7-24 12:46:35 | 显示全部楼层
比如,10位深度,那么这个摇杆对应的就是0-1023,从手机那里发送0-1023间的数据就行了,这边就处理这个数就行。中间只是省去了读摇杆电阻转换成0-1023的过程。希望我理解的是错的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-24 15:44:59 | 显示全部楼层
darkorigin 发表于 2015-7-24 10:44
不需要什么所谓的模拟啊
楼主贴的这个 可以理解为2个电位器 (X轴和Y轴)

不,你理解错了。我不是做接收端。

而是在模拟你手工操作摇杆的样子。。。。

它的构造我明白的,但问题是,这个XY在操作过程中有一个相关联的相互作用……

单独一个电位器用DA输出很容易就模拟它了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-24 15:50:36 | 显示全部楼层
老胖熊 发表于 2015-7-24 12:46
比如,10位深度,那么这个摇杆对应的就是0-1023,从手机那里发送0-1023间的数据就行了,这边就处理这个数就 ...

是的,你的理解是正确的。

就是模拟它的一个变化过程。

不过重点是XY在变化的时候,他们有互相影响的。。

比如,我表示一个向左操作(相当于时钟表盘的9点整/270度角),X变化了,Y不动还是中点值。

不过如果我要表示一个右上操作呢(相当于2点半/45度角)?按说,可以先模拟X再模拟Y……
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 13:52 , Processed in 0.039842 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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