求助帖,关于Xbee通信问题,如何用Xbee传输模拟信号(电...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4454|回复: 5

[已解决] 求助帖,关于Xbee通信问题,如何用Xbee传输模拟信号(电...

[复制链接]
发表于 2013-12-10 18:28 | 显示全部楼层 |阅读模式
求助论坛各位大神。

玩Arduino有一段时间了,现在纠结于Xbee通信问题。

前段时间, 试验通过Arduino, 用电位器控制伺服电机,成功。

以下为程序:

// 使用可变电阻控制伺服电机位置
#include <Servo.h> //

Servo myservo;  //
int potpin = 0;  // 设定连接可变电阻的模拟引脚
int val1;    // 创建变量,储存从模拟端口A0读取的值(0-1023)
int val2;
void setup()
{
  myservo.attach(9);  // 9号引脚输出电机控制信号
}
void loop()
{
  val1 = analogRead(potpin);

// 读取来自可变电阻A0的模拟值(0到1023之间)
  val2 = map(val1, 0, 1023, 0, 179);     // 利用“map”函数缩放该值,得到伺服电机需要的角度(0到180之间)
  myservo.write(val2);     // 设定伺服电机的位置

  delay(15);            
}


现在有新设想:

通过Xbee无线连接,使用两个Arduino,实现用电位器控制伺服电机。


现在Xbee设置好并工作正常,简单的Xbee实验也成功了。


问题:

我找到的资料只能使用串口通信,Serial.print(), 只可以传递单个字母。

我希望通过Xbee传递模拟信号,即电位器的读数。



如何实现此设想。望高手解答!


多谢!
发表于 2013-12-10 22:04 | 显示全部楼层
最简单的方法,就是把读数除以4,然后print传出去
 楼主| 发表于 2013-12-10 22:19 | 显示全部楼层
奈何col 发表于 2013-12-10 22:04
最简单的方法,就是把读数除以4,然后print传出去

能详细说明一下吗?
0-1023的范围除4?
用什么命令传输出去呢?Serial.print() ?  然后从机用Serial.read()读取?
怎么保证命令的实时性呢?电位器变化后从机实时做相应动作。

多谢!
发表于 2013-12-10 23:18 | 显示全部楼层
int i;
i=analogread(X)/4;
Serial.write(i);


读的时候:
int i;
Serial.read(i);
 楼主| 发表于 2013-12-12 18:55 | 显示全部楼层
奈何col 发表于 2013-12-10 23:18
int i;
i=analogread(X)/4;
Serial.write(i);

这种方法我还在尝试,不过目前还没成功。
我感觉还有可能是因为定义数据类型的问题,我尝试使用函数库中的StringtoInt函数,是否可行?

点评

读的时候也要用int型的变量存储, 肯定可行的  详情 回复 发表于 2013-12-12 20:51
发表于 2013-12-12 20:51 | 显示全部楼层
cxwkarl 发表于 2013-12-12 18:55
这种方法我还在尝试,不过目前还没成功。
我感觉还有可能是因为定义数据类型的问题,我尝试使用函数库中 ...

读的时候也要用int型的变量存储, 肯定可行的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-4 03:57 , Processed in 0.080890 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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