Cómo identificar la dirección de una pantalla o cualquier módulo I2C

Introducción

Algunos dispositivos como pantallas y otros que cuentan con una interfaz I2C pueden tener diferentes direcciones de fábrica. Por ello es importante verificar la dirección correcta para que el microcontrolador se comunique con el dispositivo correcto en caso de que haya varios dispositivos I2C conectados en el mismo bus. Este paso es esencial para garantizar que la comunicación entre los dispositivos se realice de manera efectiva y sin errores.

Cómo realizar la verificación utilizando un Arduino

En este ejemplo utilizaremos una pantalla LCD con interfaz I2C. Cargaremos un código de Arduino para verificar mediante el monitor serial qué dirección tiene nuestra pantalla.

Materiales necesarios:

Conexionado

Pasos a seguir

  1. Conectar la pantalla LCD al Arduino:
  • Conectar el pin GND de la pantalla al pin GND del Arduino
  • Conectar el pin VCC de la pantalla al pin 5V del Arduino
  • Conectar el pin SDA de la pantalla al pin A4 del Arduino
  • Conectar el pin SCL de la pantalla al pin A5 del Arduino
  1. Cargar el programa en el Arduino:
  • Conectar el Arduino al ordenador mediante el cable USB
  • Abrir el software del Arduino IDE en el ordenador
  • Seleccionar el tipo de placa Arduino UNO en la herramienta “Herramientas” del IDE
  • Seleccionar el puerto serial correcto en la herramienta “Herramientas” del IDE
  • Copiar y pegar el siguiente código en el IDE:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Definimos los pines a utilizar
#define boton 2

// Creamos una variable para contar los pulsos del botón
int contador = 0;

// Inicializamos la pantalla LCD
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  // Configuramos el botón como entrada
  pinMode(boton, INPUT_PULLUP);

  // Inicializamos la comunicación con la pantalla LCD
  lcd.init();

  // Encendemos la pantalla LCD
  lcd.backlight();

  // Mostramos un mensaje de bienvenida en la pantalla LCD
  lcd.setCursor(0,0);
  lcd.print(“Conteo de Pulsos”);
  lcd.setCursor(0,1);
  lcd.print(“Presione boton”);
}

void loop() {
  // Leemos el estado del botón
  int estadoBoton = digitalRead(boton);

  // Si el botón está presionado, incrementamos el contador y actualizamos la pantalla
  if (estadoBoton == LOW) {
    contador++;
    lcd.setCursor(0,1);
    lcd.print(”                “);
    lcd.setCursor(0,1);
    lcd.print(“Pulsos: “);
    lcd.print(contador);
    delay(500); // Esperamos medio segundo para evitar múltiples pulsos por un solo botón
  }
}

Una vez cargado este sketch, podremos verificar la dirección I2C de nuestro dispositivo accediendo a la herramienta “Monitor serial”

Carrito de compra