Recientemente he necesitado usar un display para uno de mis proyectos. Por coste y facilidad de uso
me he decantado por un LCD1602 que, como su propio nombre indica, se trata de una pantalla LCD que
permite mostrar 2 líneas de 16 caracteres cada una. Además está retroiluminado.
Si lo usamos directamente, necesitaremos un montón de conexiones (unos 11 cables) y es poco práctico.
De modo que está la opción que incluye un adaptador I2C lo cual reduce el número de conexiones a cuatro
(dos de alimentación y dos de control).
Pero… qué es I2C? Pues se trata de un bus serie que nos permite conectar varios dispositivos a un
controlador con sólo dos líneas: CLK (Serial Clock) y SDA (Serial Data). Cada dispositivo tiene una
dirección predeterminada que se usa para poderse comunicar con él.
El el artículo RTC DS3231 en Raspberry Pi ya
explicamos como configurar el protocolo I2C en la Raspberry, de modo que no vamos a repetir lo mismo.
Lo único a tener en cuenta es que, en este caso, el único módulo que tenemos que añadir al fichero
/etc/modules es el i2c-dev. Y que si queremos que un determinado usuario pueda usar el dispositivo
I2C debe pertenecer al grupo i2c:
Ejemplo de uso
Antes de probar el ejemplo tenemos que ver la dirección del módulo con el comando:
Y esa dirección hexadecimal será la que pongamos en la variable I2C_ADDR. El ejemplo es un poco largo
porque accede a display a bajo nivel. Seguramente hay alguna librería que simplifica el código, como la
hay para Arduino, pero a unas malas es sencillo hacer una.