En este post expliqué cómo hacer funcionar un display de 4 dígitos de 7 segmentos con la Raspberry Pi. Ahora voy a explicar como hacerlo de forma más sencilla, empleando el display de Adafruit, que lleva un controlador incorporado y podemos controlarlo por medio de I2C empleando sólo cuatro cables. Está todo muy bien explicado en la página de Adafruit, así que sigo tal cual los pasos allí indicados.
Lo primero que tenemos que hacer es configurar la Raspberry Pi para I2C.
Luego ejecuto sudo raspi-config
y activo I2C, indicando que se cargue en el arranque:
8- Advanced Options
A7 I2C Enable/Disable automatic loading of I2C Kernel module
Would you like the ARM I2C interface to be enabled?
Would you like the I2C kernel module to be loaded by default?
Edito el fichero sudo nano /etc/modules
y añado estas dos líneas al final:
i2c-bcm2708 i2c-dev
Edito el fichero sudo nano /boot/config.txt
y añado al final:
dtparam=i2c1=on dtparam=i2c_arm=on
Reinicio.
Ahora instalo lo siguiente:
sudo apt-get install python-smbus i2c-tools
Ahora conecto el display, de la siguiente forma:
Display VCC —-> RPi 5V (por ejemplo, pin 5)
Display GND —-> RPi GND (por ejemplo, pin6)
Display SDA —-> RPi SDA (pin 3)
Display SCL —-> RPi SCL (pin 5)
Compruebo a ver si funciona, ejecutando:
sudo i2cdetect -y 1
Me sale:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: 70 -- -- -- -- -- -- --
El 70 está indicando que tengo algo conectado ahí, así que por el momento, todo bien.
Ahora me voy a instalar las librerías de Adafruit:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git cd Adafruit-Raspberry-Pi-Python-Code cd Adafruit_LEDBackpack
Y pruebo el ejemplo del reloj:
sudo python ex_7segment_clock.py
¡Funciona!
Referencias