¿Cómo leo la memoria I2C con un Arduino?

2

Tengo sensor de humedad HH100D. Emite una señal de frecuencia, que sé cómo manejar. Sin embargo, también tiene una pequeña EEPROM con valores de calibración que está disponible a través de I2C. Esos valores son necesarios para obtener la humedad real.

El problema es que soy muy nuevo en I2C. No puedo averiguar cómo leer esos bytes. He buscado en Google durante medio día y todavía no tengo solución.

Hay algo que tengo:

pregunta simon

1 respuesta

3

Va a querer usar la biblioteca de conexiones de Arduino (más detalles here ) para hablar con el dispositivo (se incluye con el IDE).

Las líneas I2C que necesitará para conectar su Arduino y su Sensor son SDA, SCL y GND. A saber:

  • Pin analógico Arduino 4 = SDA = Sensor SDA (2)
  • Pin analógico Arduino 5 = SCL = Pin sensor SCL (1)
  • Arduino GND Pin = GND = Sensor Pin GND (5)

Dependiendo de la distancia entre el Sensor y el Arduino, es posible que también necesite resistencias de activación externas (por ejemplo, 3.3k Ohm) conectadas entre cada SDA, SCL y VCC.

Hay un gotcha sin embargo. El sensor parece funcionar a 3.3V y el Arduino funciona a 5V. Entonces, para "interconectar" I2C entre ellos debe usar transistores para cambiar de nivel la señalización como se describe en esta otra publicación (con esta referencia clave ). Vas a querer esas resistencias de activación que mencioné a ambos lados de los transistores de conversión de nivel.

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas