You are on page 1of 6

práctica cubo led

Luminaria 3D
Matriz LED programable con 125 LED
Por Jerry Jacobs

Una matriz LED bidimensional no es algo espectacular. La matriz que presentamos aquí, no obstante, es
de otro calibre. Cinco de estas matrices fueron apiladas una encima de otra. Lo que ha resultado en una
verdadera matriz 3D en la que cada uno de sus LED puede encenderse y apagarse independientemente.

sólo para Windows, sino también para


Características técnicas Linux- y Mac OS X.
• 125 LED en disposición 3D
• Microcontrolador ATmega32 con frecuencia interna de 1 MHz Funcionamiento
• Conector ISP de 10 contactos para programar
La suposición de que para 125 LED se
• 5 transistores BC337 para el control de los niveles necesitarían grandes cantidades de cables
• 25 transistores BC547 para el control de las columnas puede engañar. Mediante el control por
multiplexación se reduce enormemente
“la alambrada de espino artificial”. Sólo
Los LED intermitentes siempre llaman la En contraste con el cubo borg, se trata un único cable es suficiente para activar
atención. En la mayoría de los casos se trata aquí de electrónica terrestre convencio- o desactivar los 25 LED que conforman
sencillamente de un par de LED o como nal con incorporación de un un micro- una matriz bidimensional parcial. A los
máximo de una pantalla de LED plana. Un controlador AVR. Estos controladores 25 LED de un nivel como éste, les bastan
cubo LED es algo realmente diferente. En son económicos, fáciles de conseguir, y exactamente 26 líneas. Cada cinco LED
este caso se trata de una pantalla tridimen- además, también existen para ellos sufi- superpuestos de los cinco niveles confor-
sional compuesta de LED que pueden ser cientes herramientas de desarrollo con man una columna conjunta que, de esta
controlados de manera individual. código abierto. Estos últimos existen no manera, precisa únicamente de tan sólo

Tabla 1. Control de niveles y columnas


Puerto A
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
Columna 8 Columna 7 Columna 6 Columna 5 Columna 4 Columna 3 Columna 2 Columna 1
Puerto B
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
Columna 25 – – Nivel 5 Nivel 4 Nivel 3 Nivel 2 Nivel 1
Puerto C
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0
Columna 16 Columna 15 Columna 14 Columna 13 Columna 12 Columna 11 Columna 10 Columna 9
Puerto D
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
Columna 24 Columna 23 Columna 22 Columna 21 Columna 20 Columna 19 Columna 18 Columna 17

64 elektor, electronics worldwide - 12/2008

10. 080355-ES.indd 64 1/11/08 20:28:28


D

una línea. Para


encender un
LED específico por
separado, se conecta
el nivel correspondiente a
la tensión positiva de alimen-
tación y se selecciona la respec-
tiva columna. El cubo está organi-
zado en 5 niveles y 25 columnas. De
ello se deducen lógicamente 30 líneas,
en lugar de 126 líneas independientes
para los 125 LED.
Con una frecuencia de 1 MHz, el cir-
cuito alcanza una frecuencia de ima-
gen de 39 Hz. Cada 1024 periodos se
incrementa un contador (también deno-
minado controlador). Cuando este con- la electrónica pone efectos individuales en
tador alcanza en su estado el valor 5, automáticamente el el cubo. En la Tabla 1 se
se dispara automáticamente el interrup- contenido del buffer en puede observar la conexión
tor y se reestablece el valor del conta- el respectivo patrón LED. La exacta de cada bit con el
dor. Este interruptor se encarga también rutina de interrupción ya men- puerto, columna de LED, etc. Con
de transferir el contenido del buffer a cionada se encarga de ello. El esta tabla se pueden generar tam-
un nivel LED. Una frecuencia de 1 MHz buffer se organiza de forma multidi- bién directamente muestras sin refina-
se obtine una “frecuencia de nivel” de mensional de acuerdo con el cubo, de mientos como desplazamientos o más-
195 Hz. Dado que el cubo tiene cinco tal forma que las imagenes se pueden caras de bit. Las funciones de bajo nivel
capas LED, éste se reproduce completa- “dibujar” plásticamente en el buffer. se encuentran definidas en el archivo
mente 39 veces por segundo. “draw.h”. Con ellas es posible controlar
Interrupción niveles, columnas, filas, etc. Veremos a
La función de formateo de imagenes de continuación un par de ejemplos sobre
Software la rutina de interrupción consiste en la la manera como se pueden utilizar estas
El software está escrito en C y puede correcta reproducción del contenido del funciones.
compilarse con AVR-GCC [1]. Cuenta búfer 39 veces por segundo. En conse- Control de una fila en un nivel deter-
con una amplia documentación que cuencia, cada bit en el búfer es asig- minado:
puede además consultarse en un sitio nado inequívocamente a un LED El nivel
web para más informaciones. La docu- de los bits decide entonces si un LED se set_row(ROW_1, NIVEL_1);
mentación ha sido generada con enciende o no. El usuario debe escribir clear_row(ROW_1, NIVEL_1);
Doxygen [2]. los datos de la imagen con funciones toggle_row(ROW_1, NIVEL_1);
especiales en el buffer para poder gene-
Buffer rar una imagen. Las funciones para controlar una
Se utiliza un buffer para darle forma a columna:
una imagen en el cubo de forma menos Instrucciones gráficas de bajo nivel
compleja. Como usuario, solamente es Las rutinas de bajo nivel están concebi- set_column(COLUMN_1, ON);
preciso manejar hábilmente los bits, y das de forma tal que se puedan lograr set_column(COLUMN_1, OFF);

12/2008 - elektor, electronics worldwide 65

10. 080355-ES.indd 65 1/11/08 20:28:32


1/11/08 20:28:34
elektor, electronics worldwide - 12/2008
IC1
K1
3
D1 7805 +5V
1 1 3
2
1N4001
C1 C2 C3
2

COL25 470u 100n 100n COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8
25V
R55 R7 R8 R9 R10 R11 R12 R13 R14
+5V +5V +5V +5V +5V

150R

150R

150R
150R

150R

150R

150R
150R

150R
T30 T5 T4 T3 T2 T1 T6 T7 T8 T9 T10 T11 T12 T13
+5V
R1 R6 R5 R4 R3 R2
LAY5 LAY4 LAY3 LAY2 LAY1
330R

330R

330R
330R

330R
100k

R56 +5V R15 R16 R17 R18 R19 R20 R21 R22

1k8

1k8

1k8

1k8

1k8

1k8

1k8

1k8
1k8

C4

La gran cantidad de transistores se encargan de proveer la tensión necesaria.


Imagen 1. Todos los LED son controlados mediante un microcontrolador AVR.
10

30

32
1u
100V

AREF
VCC

AVCC
1 40
K2 PB0 (XCK/T0) PA0 (ADC0)
2 39
PB1 (T1) PA1 (ADC1)
2 1 MOSI 3 38
PB2 (AIN0/INT2) PA2 (ADC2)
4 3 4 37
PB3 (AIN1/OC0) PA3 (ADC3)
6 5 RST 5 36
PB4 (SS) PA4 (ADC4)
8 7 SCK 6 35
PB5 (MOSI) IC2 PA5 (ADC5)
10 9 MISO 7 34
PB6 (MISO) PA6 (ADC6)
8 33
GND PB7 (SCK) PA7 (ADC7)
14 ATmega32-16PC 22
PD0 (RXD) PC0 (SCL)
15 23
PD1 (TXD) PC1 (SDA)
16 24
PD2 (INT0) PC2 (TCK)
17 25
PD3 (INT1) PC3 (TMS)
18 26
PD4 (OC1B) PC4 (TDO)
19 27
PD5 (OC1A) PC5 (TDI)
20 28
PD6 (ICP) PC6 (TOSC1)
21 29
PD7 (OC2) PC7 (TOSC2)
9
RESET

XTAL2

XTAL1
GND

GND
11

31

12

13
R39 1k8R40 R41 R42 R43 R44 R45 R46 R23 R24 R25 R26 R27 R28 R29 R30

1k8

1k8

1k8
1k8

1k8

1k8

1k8

1k8

1k8

1k8

1k8

1k8

1k8
COL20
1k8

1k8
COL17 COL18 COL19 COL21 COL22 COL23 COL24 COL16 COL15 COL14 COL13 COL12 COL11 COL10 COL9
cubo led

R47 R48 R49 R50 R51 R52 R53 R54 R31 R32 R33 R34 R35 R36 R37 R38
150R

150R

150R

150R
150R

150R

150R

150R
150R

150R

150R

150R

150R

150R

150R

150R
T22 T23 T24 T25 T26 T27 T28 T29 T1 ... T5 = BC337 T21 T20 T19 T18 T17 T16 T15 T14
T6 ... T30 = BC547

10. 080355-ES.indd 66
práctica
080355 - 11

66
En estas funciones se utilizan denomina-
ciones como ON, OFF y COLUMN_1.

PB4

PB3

PB2

PB1

PB0
Se trata aquí de constantes con valores
fijos. Por ejemplo: ON tiene 1 y OFF

R6

R5

R4

R3

R2
tiene 0 como valor.
Algunas de estas funciones se pueden

LAY1
PA0
emplear una tras otra para crear una

T1
figura determinada. Otras explicaciones

LAY2
R15
se encuentran disponibles en el código
fuente que se puede descargar gratuita-

T2
COL1

LAY3
mente desde el sitio web de Elektor.

R7
T6

T3
LAY4
Hardware

080355 - 12

T4
La electrónica se puede montar com-

LAY5
pletamente con componentes conven-

T5
cionales y, a pesar ello, la placa de

+5V
circuito impreso resultante es bastante
compacta.
Podemos utilizar un adaptador de red
Imagen 2. Esta imagen muestra el recorrido que sigue la corriente entre los LED medios de la primera columna.
comercial corriente con una salida de
9 V capaz de suministrar 600 mA para
alimentar el circuito. El regulador IC1,
un 7805, estabilizará la tensión apli- Con los transistores T1 a T5 se conecta la a tierra y cerrando de esta manera el cir-
cada al circuito. El diodo D1 lo protege tensión de alimentación de 5 V a los cinco cuito (véase Imagen 1 e Imagen 2).
de los efectos negativos de polarizacio- niveles. Con los transistores T6 a T30 se La corriente que circula entre los LED
nes inversas. controlan las columnas poniendo los LED depende de la diferencia de potencial

Imagen 3. El aspecto de la cara superior de la placa de circuito impreso es bastante claro.

12/2008 - elektor, electronics worldwide 67

10. 080355-ES.indd 67 1/11/08 20:28:37


práctica cubo led

Lista de materiales C2,C3 = 100nF


C4 = 1μF/100V
Además:
Conector macho 2x5 contactos, paso 2,54 mm
Resistencias: Zócalo para IC
R1 = 100kΩ Conector frontal SIL 4 x 10 contactos, paso
R2 a R6 = 330Ω Semiconductores:
IC1 = 7805 2,54 mm
R7 a R14, R31 a R38, R47 a R55 = 150Ω, Disipador de calor para TO-220 con 5°C/W (IC1)
IC2 = Atmega32
véase texto Distanciador hexagonal 4 x M3x5 de 10 mm
D1 = 1N4001
R15 a R30, R39 a R46, R56 = 1kΩ8 de longitud
T1 a T5 = BC337
Condensadores: T6 a T30 = BC547 Enchufe hembra para adaptador de red
C1 = 470μF/25V 125 LED Placa de circuito impreso ref. 080355-1

aplicada sobre ellos, de la tensión de ali- Por lo tanto, en los LED rojos, verdes Enlaces:
mentación menos la diferencia de poten- y amarillos, los 150 Ω indicados en el [1] AVR-GCC-Toolchain:
cial colector-emisor de dos transistores y esquema de circuitos para R7 a R14, R31 -Para Windows: http://winavr.sourceforge.net
de las 25 resistencias de columnas. De a R38 y R47 a R55. En los LED blancos
- Para Mac: http://www.obdev.at/products/
esta manera, los valores de resistencia serían 82 Ω o incluso mejor 68 Ω.
avrmacpack
se calculan así: Para programar el controlador del cubo se
puede emplear la interfaz ISP en el K2. [2] Doxygen:
R = (5V-2*UCE-ULED)/20mA (080355) http://www.doxygen.org

Montaje
Paso 1
Primero se montan los distanciadores debajo de la placa de circuito impreso y luego
se corta a medida un pedazo de papel para sostener bien los LED en los huecos.

Paso 2
Luego se colocan cinco LED en la fila superior con el ánodo (conexión más largo)
arriba y con el cátodo (conexión más corta) abajo. Después se dobla el primer LED
hacia la izquiera y se sigue con el segundo LED, que se suelda fijamente en el pri-
mero. De la misma manera se continúa también con el tercero, cuarto y quinto LED.
Así se tiene, tenemos lista una fila. Para cada superficie son necesarias cinco de
estas filas. Después se prosigue de la misma manera con las filas 2 a 5. Cuando
estén listas las cinco filas se unen los ánodos doblados con dos hilos verticales.

Paso 3
Una vez estén listos los cinco niveles se puede soldar todo para formar una cons-
trucción en cubo. Esto se consigue colocando un nivel encima de la placa de cir-
cuito impreso y doblando las 25 columnas aproximadamente 3 mm después de los
ánodos del siguiente nivel. La segunda capa se coloca entonces encima de la pri-
mera. Las capas se sueldan en las esquinas conservando la misma distancia.

68 elektor, electronics worldwide - 12/2008

10. 080355-ES.indd 68 1/11/08 20:28:38


Sobre
el autor
Jerry Jacobs,
nacido en 1989
en Heerlen
(Países Bajos)
es estudiante
de Telecomu-
nicación en el
ROC (Leeuwen-
borg Colle-
ge en Sittard,
Países Bajos).
Su fascina-
ción por la informática y la electrónica le
ha acompañado durante bastante años.
Aparte de ello, es un apasionado del sis-
tema Linux. El proyecto aquí descrito es el
trabajo presentado como culminación de
su periodo de prácticas en el laboratorio
de Elektor.

Paso 4
Ahora, instalaremos los componentes en la placa de circuito impreso. Hay que
prestar atención para no intercambiar los transistores BC 337 y BC 547. Para com-
pletar el montaje, montaremos el regulador de tensión con su correspondiente
radiador.

Paso 5
A continuación se unen los niveles individuales con los transistores respectivos.
T1 se encarga del nivel inferior y T5 del superior. Para ello es adecuado el hilo de
cobre estañado.

Paso 6
Para finalizar se pone el firmware en el microcontrolador. Junto con el código
abierto se puede descargar igualmente el archivo hexadecimal ya compilado desde
el sitio web de Elektor. En el mismo sitio se encuentra también un enlace para
realizar el pedido de la placa de circuito impreso.

12/2008 - elektor, electronics worldwide 69

10. 080355-ES.indd 69 1/11/08 20:28:41

You might also like