Tengo el ADS1113 ADC conectado al Arduino usando el protocolo I2C. Solo estoy tratando de leer los datos analógicos del ADC. Tengo 5 voltios conectados a las entradas AIN0 y AIN1. Cuando verifico el valor de Wire.endTransmission () sigo obteniendo un cero de vuelta, lo que significa que los datos se transmitieron con éxito. Sin embargo, cuando solicito 4 bytes, sigo recibiendo esto, incluso si cambio el voltaje en las entradas AIN0 y AIN1.
SoybastantenuevoenelusodeI2CyenaprenderaconfigurarICparticularesalleerlahojadedatos:
Entonces, supongo que mi pregunta es, ¿cómo obtengo los valores de segundo y tercer byte? ¿O estoy completamente fuera de servicio y ni siquiera se supone que estoy leyendo los datos del registro de conversión?
#include <Wire.h>
void setup()
{
Serial.begin(9600);
Wire.begin();
}
void loop()
{
int sensorValue = analogRead(A0); //compare to ADC data
float voltage = sensorValue * (5.0 / 1023.0);
Serial.println(voltage);
Serial.println();
Wire.beginTransmission(B1001000); //Address of ADC
Wire.write(1);
int ack = Wire.endTransmission();
Serial.print("I2C = ");
Serial.print(ack);
Serial.println();
delay(15);
Wire.requestFrom(B1001000,4,1); //Requesting 4 bytes
while(Wire.available()){
float RAW = Wire.read();
float RAW_voltage = (RAW*4.096/32768.0);
Serial.print("Raw ADC value = ");
Serial.print(RAW);
Serial.print("\tVoltage = ");
Serial.print(RAW_voltage);
Serial.println();
}
delay(1000);
}