Tengo un sensor de presión Honeywell ASDXRRX100PD2A5 I2C que quiero leer utilizando un Arduino.
Mirando la hoja de datos, sé que la dirección I2C es 0x28, y he jugado con bits de código que he encontrado en Internet, pero ninguno de ellos tiene ningún sentido. Los números aumentan a medida que aumenta la presión, pero no en la escala que se muestra en la hoja de datos.
Aquí hay un enlace a dicha hoja de datos: enlace
Aquí hay una hoja de datos que contiene información sobre cómo comunicarse con los sensores Honeywell usando I2C: enlace
Sin tener mucha experiencia con I2C en el pasado, es difícil para mí entenderlo.
También, aquí hay una foto de mi configuración:
Elcódigoqueestoyusandoparaprobarloenestemomentoeselsiguiente:
#include<Wire.h>#definesensor0x28//Uniquebusaddressvoidsetup(){Wire.begin();//WakesupI2CbusSerial.begin(9600);}voidgetdata(byte*a,byte*b){//Moveregisterpointerbacktofirstregister//Wire.beginTransmission(sensor);//Wire.write(1);//Wire.endTransmission();Wire.requestFrom(sensor,2);//Sendscontentoffirsttworegisters*a=Wire.read();//firstbyterecievedstoredhere*b=Wire.read();//secondbyterecievedstoredhere}voidshowdata(){byteaa,bb;floatpressure=0;getdata(&aa,&bb);Serial.print("byte 1: ");Serial.println(aa,DEC);
Serial.print("byte 2 ");Serial.println(bb,DEC);
delay(1000);
}
void loop()
{
showdata();
}
Estoy obteniendo los siguientes resultados con las siguientes presiones:
0psi byte1: 31
byte2: 246
10psi byte1: 34
byte2: 102
20psi byte1: 32
byte2: 30
30psi byte1: 39
byte2: 167
Cualquier ayuda que me indique la dirección correcta sería muy apreciada.