Xadow Grove Adaptor 转接模块

From Wiki
Jump to: navigation, search

产品简介

Xadow Grove Adopter是一个将Grove 接口转换为兼容Xadow接口的装置。它可以将两个模拟Grove接口输出的信号,经过A/D转换后以数字I2C输出;还有一个Grove I2C接口,是将Grove 模块的I2C信号直接引出,最终实现:Grove的信号从Xadow 接口中的I2C总线输出。板上的A/D转换器是选用12位转化精度的ADC121C021芯片,能实现很高的转换精度。


300px-X adaptor 01.jpg

规格参数

工作电压: 3.3V A/D分辨率:12位 采样速率: 188.9 ksps I2C 地址可变 外形尺寸: 25.43mm x 20.35mm 应用示例

下面我们将展示如何通过Xadow Grove Adaptor来读取Grove模块的输出值。

使用模拟Grove接口 如果你选用的Grove模块输出的是模拟量,那么你需要将Grove连接到板上的模拟Grove接口,即标识为A0,A1的接口。 硬件连接:


XadowAdaptor2.jpg


在这里我们将Grove - Gas Sensor 连接到了A0口,所以在代码中,我们定义的I2C 地址为0x58(默认)。如果你将Grove模块连接到了A1口,那么I2C地址就应该为0x59. 当然,A0口和A1口也是可以同时使用的。 测试代码:

  1. include <Wire.h>
  2. include <Streaming.h>
  1. define ADDR_ADC121 0x58
  1. define V_REF 3.00
  1. define REG_ADDR_RESULT 0x00
  2. define REG_ADDR_ALERT 0x01
  3. define REG_ADDR_CONFIG 0x02
  4. define REG_ADDR_LIMITL 0x03
  5. define REG_ADDR_LIMITH 0x04
  6. define REG_ADDR_HYST 0x05
  7. define REG_ADDR_CONVL 0x06
  8. define REG_ADDR_CONVH 0x07

unsigned int getData; float analogVal=0; // convert void init_adc() {

 Wire.beginTransmission(ADDR_ADC121);        // transmit to device
 Wire.write(REG_ADDR_CONFIG);                // Configuration Register
 Wire.write(0x20);
 Wire.endTransmission();  

}

void read_adc() //unsigned int *data {


   Wire.beginTransmission(ADDR_ADC121);        // transmit to device
   Wire.write(REG_ADDR_RESULT);                // get reuslt
   Wire.endTransmission();
   Wire.requestFrom(ADDR_ADC121, 2);           // request 2byte from device
   delay(1);
   if(Wire.available()<=2)
   {
     getData = (Wire.read()&0x0f)<<8;
     getData |= Wire.read();
   }
   Serial.print("getData:");
   Serial.println(getData);
   delay(5);
   Serial.print("The analog value is:");
   Serial.print(getData*V_REF*2/4096); 
   Serial.println("V");

} void setup() {

 Serial.begin(9600);
 Wire.begin();
 init_adc();

}

void loop() {

 read_adc();//adcRead);
 delay(50);

} 下载程序到Xadow Main Board,然后打开串口就可以看到:


Xadow Grove Adaptor Result.png


使用Grove I2C 接口 当你的Grove模块是I2C通信方式,那么你需要将它连接到Xadow Grove Adaptor上标识为I2C的接口。此时的Xadow Grove Adaptor只起到了转接的作用。 以Grove - Digital Light Sensor为例,来学习具体的使用方法。 硬件连接:


XadowAdaptor1.jpg


下载程序: 从github下载Grove - Digital Light Sensor 的库文件,并将该库文件安装到Arduino Library。关于如何安装库文件,请参考WIKI首页的Arduino库文件的安装。 安装完成后打开程序。 /* Digital Light sensor demo V1.0

  1. include <Wire.h>
  2. include <Digital_Light_TSL2561.h>

void setup() {

 Wire.begin(); 
 Serial.begin(9600);
 TSL2561.init(); 

}

void loop() {

 unsigned long  Lux;
 TSL2561.getLux();
 Serial.print("The Light value is: ");
 Serial.println(TSL2561.calculateLux(0,0,1));
 delay(1000);
 }

下载程序后,打开串口,可以看到当前的光强值。人为地改变当前的光强,可看到串口输出的值的变化。

Digital Light Sensor Score Picture.jpg .

Xadow Grove Adaptor 和Grove - I2C ADC使用了相同的ADC转换芯片,当然,改变I2C地址的方法也是一样的,关于具体的I2C地址变更方法,请参考Grove - I2C ADC的Reference部分。需要补充的是:板上标识的0和1是A0接口的I2C地址设置区,2和3是A1接口的I2C地址设置区。


File:Adc121c021.PDF