Recientemente he tenido que aprender a usar pantallitas de 4 dígitos con 7 segmentos en Arduino. Es decir, algo como ésto:

4 digit, 7 segment display

4 digit, 7 segment display

Como pasa con todo la primera vez siempre cuesta. Y más si hay distintos tipos de displays y por tanto varias formas de hacer las cosas según el modelo que te haya caído a ti (los chinos no son muy dados a mandar manuales de uso para estas cosas). Y no son sutilezas, más bien hay dos formas, totalmente opuestas, así que os voy a dejar un par de ejemplos.
Antes de verlos decir que en cualquier caso es necesario entender que la pantalla hay que pintarla una y otra vez. Es decir, no basta con pintar y dejarlo encendido, porque eso es imposible. Básicamente porque en realidad “pintar la pantalla” no es una tarea, son cuatro: pintar el primer dígito, luego el segundo, luego el tercero y finalmente el cuarto.
Y cuando digo “luego” quiero decir unos milisegundos más tarde. No se pueden hacer las cuatro tareas a la vez, sólo se puede pintar de dígito en dígito. Seguramente esto se entienda viendo un esquema de pines:

Esquema de pines

Como podéis ver hay 4 pines, uno para cada dígito. Esos son los pines que usaremos para seleccionar el dígito que queramos pintar. ¿Se entiende ahora lo de que son 4 tareas que no se pueden hacer a la vez?
Pues visto esto, vamos a los casos concretos:

Primer ejemplo:

Para el display de la primera imagen, que es de tipo cátodo común y tiene 12 pines (por cierto, ojo que un trasto de estos te deja casi sin pines en arduino!), comprado en Dealextreme por 2$:

Ahora que más o menos tenemos la idea, vamos a ver código de verdad:

Segundo ejemplo:

Este otro display es casi igual, solo que tiene dos puntos en medio y por tanto un pin más, pero lo importante es que el funcionamiento es opuesto al que acabamos de ver:

¿Diferente verdad? Veamos código de verdad:

Eso es todo, espero que os sirva, a mi me llevó varias horas dar con la fórmula para cada uno de los displays 😛