Introducción
Si queremos usar el módulo I2C para conectar nuestra LCD y ahorrar cables, es necesario (en la mayoría de casos) saber la dirección hexadecimal de dicho módulo. Dicha dirección puede (y siempre lo hace) variar.
Para ahorrarnos los problemas, alguien más hizo un sketch en Arduino que prueba con todas las direcciones posibles y en caso de encontrar algún dispositivo I2C nos avisa.
Hoy veremos cómo usar dicho sketch. Por cierto, lo encontré aquí, créditos a su autor.
Conexión
La conexión es simple. Un pin va a tierra, otro a voltaje positivo. Los otros dos son SCL y SDA. Lo que varía son estos dos últimos pines. Aquí mostraré la conexión para Arduino MEGA, UNO y Leonardo.
Arduino MEGA
- SCL: Pin 21
- SDA: Pin 20
Imagen de Fritzing:
Arduino UNO
- SDA: Pin A4
- SCL: Pin A5
Imagen de Fritzing:
Arduino Leonardo
Los pines SCL y SDA están marcados con esas leyendas. De todos modos dejo la imagen de Fritzing:
Código y modificaciones
Le hice algunas modificaciones al código original. Para comenzar, lo traduje al español y reduje el tiempo de espera en cada iteración. También lo puse en un gist de GitHub para que cualquier persona pueda copiarlo, pegarlo en el editor de Arduino y subirlo a la tarjeta.
Nada de zips, nada de “Descarga esta librería” y cosas de esas. Simplemente pega el siguiente código en tu editor:
Una vez subido al Arduino, abre el monitor serial con Ctrl + Shift + M y se verá algo así:
Así estará infinitamente. Si dice que no se encontró ninguno, por favor verifica la conexión. Ya con la dirección podemos pasar ahora sí a trabajar con una pantalla LCD que usa este módulo.
Recuerda que la dirección es tal cual la manda, por lo que en mi caso es 0x3F. Es esencial copiar tal y como está dicha dirección.
8 Comentarios
ZLiag · noviembre 27, 2022 a las 6:10 am
Gracias por compartir esto, me fue de gran ayuda.
Gianfranco · febrero 28, 2022 a las 3:12 pm
Realice las conexiones al Arduino uno y al modulo I2C cuando envío el código en el monitor serie solo me sale “Buscando dispositivos”
parzibyte · febrero 28, 2022 a las 3:48 pm
Hola. Tal vez hay un error de conexión con el módulo
Ragnar212 · septiembre 25, 2020 a las 2:15 pm
Muy bueno, funciona ok.
Sander · diciembre 22, 2019 a las 4:26 pm
simplemente **PERFECTO**
Gracias Amigo…..fue de mucha ayuda
Tomás Cogliatti · mayo 7, 2018 a las 11:17 am
Mil Gracias hermano!!! muy util. Se sabe por que es que esto pasa? gracias saludos
Juego de batalla naval con Arduino, LCD y comunicación serial - Parzibyte's blog - El blog de Luis Cabrera · abril 5, 2018 a las 5:13 pm
[…] Obtener dirección hexadecimal de módulo I2C […]
Ejemplo de Arduino y LCD con el módulo I2C - Parzibyte's blog - El blog de Luis Cabrera · febrero 8, 2018 a las 1:19 am
[…] este caso lo dejo para el Arduino MEGA pero puedes ver este otro post en donde conecto el módulo I2C al UNO y al Arduino Leonardo, lo único que cambia son los […]