I2C con NodeMCU ESP8266 - Averiguar dirección hexadecimal

Dirección de I2C con ESP8266

Al usar una LCD con la ESP8266 podemos usar un circuito I2C que nos ahorra conexiones. Todo funciona de maravilla, pero debemos saber la dirección del circuito I2C.

I2C con NodeMCU ESP8266 - Averiguar dirección hexadecimal
I2C con NodeMCU ESP8266 – Averiguar dirección hexadecimal

En este post te mostraré cómo averiguar la dirección hexadecimal del circuito I2C usando la NodeMCU ESP8266 para conectar a una pantalla o LCD.

Circuito

El circuito de conexión es realmente sencillo. Conectamos el voltaje de la tarjeta al del I2C, así como la tierra.

Por otro lado conectamos el SDA al pin D2 y el SCL al pin D1. Queda mejor explicado con la imagen del circuito en fritzing:

Dirección I2C con ESP8266
Dirección I2C con ESP8266

No olvides que dentro del I2C hay un jumper que conecta dos pines (lo puedes ver de color verde en la imagen superior, está en la esquina superior izquierda, abajo de donde dice LED).

Código

Después de eso cargamos el siguiente código. Puedes usar cualquier IDE, yo usaré VSCode con PlatformIO, si tú usas otro no olvides hacer las adecuaciones necesarias.

#include <Arduino.h>
#include <Wire.h>

void setup()
{
  // put your setup code here, to run once:
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  // put your main code here, to run repeatedly:
  byte codigoDeRespuesta, direccion;
  int dispositivosEncontrados = 0;
  Serial.println("\n\nBuscando dispositivos...");

  for (direccion = 1; direccion < 127; direccion++)
  {
    Wire.beginTransmission(direccion);
    codigoDeRespuesta = Wire.endTransmission();

    if (codigoDeRespuesta == 0)
    {
      Serial.print("Dispositivo encontrado en la dirección 0x");
      if (direccion < 16)
        Serial.print("0");
      Serial.print(direccion, HEX);

      dispositivosEncontrados++;
    }
    else if (codigoDeRespuesta == 4)
    {
      Serial.print("Error desconocido en la dirección 0x");
      if (direccion < 16)
        Serial.print("0");
      Serial.println(direccion, HEX);
    }
  }
  if (dispositivosEncontrados == 0)
    Serial.println("No se encontró ningún dispositivo");
  delay(1000);
}

Ahora abre el monitor serial, y si has conectado todo correctamente, verás la dirección impresa. En mi caso es 0x3F:

Averiguar dirección de I2C para LCD con ESP8266
Averiguar dirección de I2C para LCD con ESP8266

Ahora que ya conoces la dirección, solo debes indicarla al crear tu objeto de LCD así:

LiquidCrystal_I2C lcd(0x3f, 16, 2);

Por aquí te dejo más sobre Electrónica.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *