wing 发表于 2013-4-7 20:47:57

adxl345+cc2530实验

以前做的一个实验,用adxl345测出三个方向的加速度,再用zigbee把数据传输到上位机。本实验使用了最傻瓜的ZIGBEE透传模式(无视接收方身份,应该是广播吧),同时也最大限度地浪费了cc2530内置的8051 {:soso_e128:}




#include <Wire.h>//调用arduino自带的I2C库


#define Register_ID 0

#define Register_2D 0x2D

#define Register_X0 0x32

#define Register_X1 0x33

#define Register_Y0 0x34

#define Register_Y1 0x35

#define Register_Z0 0x36

#define Register_Z1 0x37





int ADXAddress = 0xA7>>1;//转换为7位地址

int reading = 0;

int val = 0;

int X0,X1,X_out;

int Y0,Y1,Y_out;

int Z1,Z0,Z_out;

double Xg,Yg,Zg;



void setup()

{
Serial.begin(38400);//ZigBee

delay(100);

Wire.begin();//初始化I2C

delay(100);

Wire.beginTransmission(ADXAddress);

Wire.send(Register_2D);

Wire.send(8);

Wire.endTransmission();

}



void loop()

{

Wire.beginTransmission(ADXAddress);

Wire.send(Register_X0);

Wire.send(Register_X1);

Wire.endTransmission();

Wire.requestFrom(ADXAddress,2);

if(Wire.available()<=2);

{

    X0 = Wire.receive();

    X1 = Wire.receive();

    X1 = X1<<8;

    X_out = X0+X1;

}



Wire.beginTransmission(ADXAddress);

Wire.send(Register_Y0);

Wire.send(Register_Y1);

Wire.endTransmission();

Wire.requestFrom(ADXAddress,2);

if(Wire.available()<=2);

{

    Y0 = Wire.receive();

    Y1 = Wire.receive();

    Y1 = Y1<<8;

    Y_out = Y0+Y1;

}



Wire.beginTransmission(ADXAddress);

Wire.send(Register_Z0);

Wire.send(Register_Z1);

Wire.endTransmission();

Wire.requestFrom(ADXAddress,2);

if(Wire.available()<=2);

{

    Z0 = Wire.receive();

    Z1 = Wire.receive();

    Z1 = Z1<<8;

    Z_out = Z0+Z1;

}

   //


Xg = X_out/256.00;//把输出结果转换为重力加速度g,精确到小数点后2位。

Yg = Y_out/256.00;

Zg = Z_out/256.00;

Serial.println(Xg);
Serial.println(Yg);
Serial.println(Zg);
Serial.println('---------------------');   //

delay(700);//延时0.7秒,刷新频率这里进行调整
}

questfish 发表于 2013-4-8 08:32:46

看了这个图 发现zigbee模块也挺袖珍的 可以考虑入两块玩玩

wing 发表于 2013-4-8 10:26:01

上图的zigbee模块不是最小size的,还有小很多的

MicroCao 发表于 2013-4-8 11:06:22

1、ZIGBEE内写了什么代码,或者这个ZIGBEE卖家已家烧成串口透传模块了?
2、ZIGBEE是3.3V的串口吧,直接使用5V驱动?
3、能PM那种更小的ZIGBEE模块型号与淘宝地址吗?
4、淘宝上见过一种ZIGBEE模块,卖家已烧写代码,做点对点传送非常方便

wing 发表于 2013-4-8 21:03:13

MicroCao 发表于 2013-4-8 11:06 static/image/common/back.gif
1、ZIGBEE内写了什么代码,或者这个ZIGBEE卖家已家烧成串口透传模块了?
2、ZIGBEE是3.3V的串口吧,直接使 ...

透传代码已经写好的
电压是3.3的,nano有3.3输出
图上的模块是 “丘捷” 的产品,TB搜素店名可以找到

我的实验其实是为了验证功耗做的,整套电路工作电流60毫安
我个人认为纯粹为了透传使用zigbee不太好

隔壁男生 发表于 2013-4-8 21:28:28

CC2530本身功能就非常强大了,不利用太可惜:Q:Q

MicroCao 发表于 2013-4-8 21:53:17

wing 发表于 2013-4-8 21:03 static/image/common/back.gif
透传代码已经写好的
电压是3.3的,nano有3.3输出
图上的模块是 “丘捷” 的产品,TB搜素店名可以找到


但TTL电平是5V的,即然你在用了,应该是没事的。

现在看了淘宝上三家卖zigbee模块(已带自动组网与透传代码的,非那种开发板类的)
1、http://qiujie8.taobao.com
2、http://dtkcn.taobao.com
3、http://zatech.taobao.com
真不知道选哪家下手好,家家都说自己的好
1)、第三家所说的休眠功能,其他的透传功能应该会差不多;
2)、实际应用时第二、三家都有小体积贴片的产品供选择;
3)、第三家没找到合适的USB转换接口板以及仿真调适器比较蛋疼。

wing 发表于 2013-4-9 10:51:44

大部分3.3v的芯片的IO口都可以承受5v的电压,这方面还是比较安全的。
cc2530的技术已经比较成熟,大部分基于该芯片的模块都是同质量的。如果要区分好坏真是要试过才知道了...

wing 发表于 2013-4-9 10:53:46

隔壁男生 发表于 2013-4-8 21:28 static/image/common/back.gif
CC2530本身功能就非常强大了,不利用太可惜

的确的是这样的,不过就我而言在cc2530上写程序比在AVR上写难太多了

MicroCao 发表于 2013-4-10 11:17:33

wing 发表于 2013-4-9 10:51 static/image/common/back.gif
大部分3.3v的芯片的IO口都可以承受5v的电压,这方面还是比较安全的。
cc2530的技术已经比较成熟,大部分基 ...

哈哈,买了套学习套件先学习下先。单纯的透传模块还是选不好哪家,先观望一下吧。

catalina 发表于 2015-4-2 11:37:43

请问,如何将CC2530与Arduino uno链接起来,将CC2530无线接收到的数据传送给Arduino

liu11 发表于 2015-12-9 10:13:24

楼主,在吗,我有点事想请教你,真心求教,谢谢了!
页: [1]
查看完整版本: adxl345+cc2530实验