CUBO LED
-
Upload
erick-velasco -
Category
Documents
-
view
3.363 -
download
2
Transcript of CUBO LED
práctica cubo led
64 elektor, electronics worldwide - 12/2008
Luminaria 3DMatriz LED programable con 125 LEDPor 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.
Los LED intermitentes siempre llaman la atención. En la mayoría de los casos se trata sencillamente de un par de LED o como máximo de una pantalla de LED plana. Un cubo LED es algo realmente diferente. En este caso se trata de una pantalla tridimen-sional compuesta de LED que pueden ser controlados de manera individual.
En contraste con el cubo borg, se trata aquí de electrónica terrestre convencio-nal con incorporación de un un micro-controlador AVR. Estos controladores son económicos, fáciles de conseguir, y además, también existen para ellos sufi -cientes herramientas de desarrollo con código abierto. Estos últimos existen no
sólo para Windows, sino también para Linux- y Mac OS X.
FuncionamientoLa suposición de que para 125 LED se necesitarían grandes cantidades de cables puede engañar. Mediante el control por multiplexación se reduce enormemente “la alambrada de espino artifi cial”. Sólo un único cable es sufi ciente para activar o desactivar los 25 LED que conforman una matriz bidimensional parcial. A los 25 LED de un nivel como éste, les bastan exactamente 26 líneas. Cada cinco LED superpuestos de los cinco niveles confor-man una columna conjunta que, de esta 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
Características técnicas• 125 LED en disposición 3D
• Microcontrolador ATmega32 con frecuencia interna de 1 MHz
• Conector ISP de 10 contactos para programar
• 5 transistores BC337 para el control de los niveles
• 25 transistores BC547 para el control de las columnas
10. 080355-ES.indd 64 1/11/08 20:28:28
6512/2008 - elektor, electronics worldwide
Luminaria 3DMatriz LED programable con 125 LED
una línea. Para encender un LED específi co 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-tador alcanza en su estado el valor 5, se dispara automáticamente el interrup-tor y se reestablece el valor del conta-dor. Este interruptor se encarga también de transferir el contenido del buffer a un nivel LED. Una frecuencia de 1 MHz se obtine una “frecuencia de nivel” de 195 Hz. Dado que el cubo tiene cinco capas LED, éste se reproduce completa-mente 39 veces por segundo.
SoftwareEl software está escrito en C y puede compilarse con AVR-GCC [1]. Cuenta con una amplia documentación que puede además consultarse en un sitio web para más informaciones. La docu-mentación ha sido generada con Doxygen [2].
BufferSe utiliza un buffer para darle forma a una imagen en el cubo de forma menos compleja. Como usuario, solamente es preciso manejar hábilmente los bits, y
la electrónica pone automáticamente el contenido del buffer en el respectivo patrón LED. La rutina de interrupción ya men-cionada se encarga de ello. El buffer se organiza de forma multidi-mensional de acuerdo con el cubo, de tal forma que las imagenes se pueden “dibujar” plásticamente en el buffer.
InterrupciónLa función de formateo de imagenes de la rutina de interrupción consiste en la correcta reproducción del contenido del búfer 39 veces por segundo. En conse-cuencia, cada bit en el búfer es asig-nado inequívocamente a un LED El nivel de los bits decide entonces si un LED se enciende o no. El usuario debe escribir los datos de la imagen con funciones especiales en el buffer para poder gene-rar una imagen.
Instrucciones gráfi cas de bajo nivelLas rutinas de bajo nivel están concebi-das de forma tal que se puedan lograr
efectos individuales en el cubo. En la Tabla 1 se
puede observar la conexión exacta de cada bit con el
puerto, columna de LED, etc. Con esta tabla se pueden generar tam-
bién directamente muestras sin refi na-mientos como desplazamientos o más-caras de bit. Las funciones de bajo nivel se encuentran defi nidas en el archivo “draw.h”. Con ellas es posible controlar niveles, columnas, fi las, etc. Veremos a continuación un par de ejemplos sobre la manera como se pueden utilizar estas funciones.Control de una fi la en un nivel deter-minado:
set_row(ROW_1, NIVEL_1);clear_row(ROW_1, NIVEL_1);toggle_row(ROW_1, NIVEL_1);
Las funciones para controlar una columna:
set_column(COLUMN_1, ON);set_column(COLUMN_1, OFF);
10. 080355-ES.indd 65 1/11/08 20:28:32
práctica cubo led
66 elektor, electronics worldwide - 12/2008
12
34
56
78
910
K2
25V
C1470u
C2100n
C3
100n
PB0 (XC
K/T0)
1
PB1 (T1)
2
PB2 (A
IN0/IN
T2)3
PB3 (A
IN1/O
C0)
4
PB4 (SS)
5
PB5 (M
OSI)
6
PB6 (M
ISO)
7
PB7 (SC
K)8
RESET
9
PD0 (R
XD)14
PD1 (TXD
)15
PD2 (IN
T0)16
PD3 (IN
T1)17
PD4 (O
C1B
)18
PD5 (O
C1A
)19
PD6 (IC
P)20
PD7 (O
C2)
21
XTAL212
XTAL113
GND11
PC0 (SC
L)22
PC1 (SD
A)23
PC2 (TC
K)24
PC3 (TM
S)25
PC4 (TD
O)
26
PC5 (TD
I)27
PC6 (TO
SC1)
28
PC7 (TO
SC2)
29
AREF32
AVCC30
GND31
PA7 (A
DC
7)33
PA6 (A
DC
6)34
PA5 (A
DC
5)35
PA4 (A
DC
4)36
PA3 (A
DC
3)37
PA2 (A
DC
2)38
PA1 (A
DC
1)39
PA0 (A
DC
0)40
VCC10
IC2
ATm
ega32-16PC
13
2
IC17805
T1
+5VD
1
1N4001
2 31
K1
R1100k100V
C4
1u
+5V
+5V
T6
R2330R
+5V
T2
R3
330R
+5V
T3
R4
330R
+5V
T4
R5
330R
+5V
T5
R6
330R
+5V
R15
1k8T21
T7
R16
1k8
T8
R17
1k8
T9
R18
1k8
T10
R19
1k8
T11
R20
1k8
T12
R21
1k8
T13
R22
1k8
MO
SI
MISO
RST
SCK
GN
D
CO
L1R7150R
CO
L2R8150R
CO
L3R9150R
CO
L4R10
150R
CO
L5R11
150R
CO
L6R12
150R
CO
L7R13
150R
CO
L8R14
150R
R31
150R
R23
1k8T20
CO
L16
R32
150R
R24
1k8
T19
CO
L15
R33
150R
R25
1k8
T18
CO
L14
R34
150R
R26
1k8
T17
CO
L13
R35
150R
R27
1k8
T16
CO
L12
R36
150R
R28
1k8
T15
CO
L11
R37
150R
R29
1k8
T14
CO
L9R38
150R
R30
1k8
CO
L24
R54
150R
R46
1k8
T28
CO
L23
R53
150R
R45
1k8
T27
CO
L22
R52
150R
R44
1k8
T26
CO
L21
R51
150R
R43
1k8
T25
CO
L20
R50
150R
R42
1k8
T24
CO
L19R49
150R
R41
1k8
T23
CO
L18
R48
150R
R40
1k8
T22
CO
L17
R47
150R
R39
1k8
T30
R56
1k8
CO
L25
R55
150R
CO
L10
LAY5
LAY4
LAY3
LAY2
LAY1T29
T1 ... T5 = BC
337T6 ... T30 = B
C547
080355 - 11
Imagen 1. Todos los LED son controlados mediante un microcontrolador AVR. La gran cantidad de transistores se encargan de proveer la tensión necesaria.
10. 080355-ES.indd 66 1/11/08 20:28:34
6712/2008 - elektor, electronics worldwide
En estas funciones se utilizan denomina-ciones como ON, OFF y COLUMN_1. Se trata aquí de constantes con valores fijos. Por ejemplo: ON tiene 1 y OFF tiene 0 como valor.Algunas de estas funciones se pueden emplear una tras otra para crear una figura determinada. Otras explicaciones se encuentran disponibles en el código fuente que se puede descargar gratuita-mente desde el sitio web de Elektor.
HardwareLa electrónica se puede montar com-pletamente con componentes conven-cionales y, a pesar ello, la placa de circuito impreso resultante es bastante compacta.Podemos utilizar un adaptador de red 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-cada al circuito. El diodo D1 lo protege de los efectos negativos de polarizacio-nes inversas.
Con los transistores T1 a T5 se conecta la tensión de alimentación de 5 V a los cinco niveles. Con los transistores T6 a T30 se controlan las columnas poniendo los LED
a tierra y cerrando de esta manera el cir-cuito (véase Imagen 1 e Imagen 2).La corriente que circula entre los LED depende de la diferencia de potencial
R2
T1PB
0
LAY1
R3
T2PB
1
R4
T3PB
2
R5
T4PB
3
R6
T5PB
4
R7
T6R
15PA
0
+5V
LAY2LAY3
LAY4LAY5
CO
L1
080355 - 12
Imagen 2. Esta imagen muestra el recorrido que sigue la corriente entre los LED medios de la primera columna.
Imagen 3. El aspecto de la cara superior de la placa de circuito impreso es bastante claro.
10. 080355-ES.indd 67 1/11/08 20:28:37
práctica cubo led
68 elektor, electronics worldwide - 12/2008
aplicada sobre ellos, de la tensión de ali-mentación menos la diferencia de poten-cial colector-emisor de dos transistores y de las 25 resistencias de columnas. De esta manera, los valores de resistencia se calculan así:
R = (5V-2*UCE-ULED)/20mA
Enlaces:[1] AVR-GCC-Toolchain:-Para Windows: http://winavr.sourceforge.net
- Para Mac: http://www.obdev.at/products/avrmacpack
[2] Doxygen:http://www.doxygen.org
Por lo tanto, en los LED rojos, verdes y amarillos, los 150 Ω indicados en el esquema de circuitos para R7 a R14, R31 a R38 y R47 a R55. En los LED blancos serían 82 Ω o incluso mejor 68 Ω.Para programar el controlador del cubo se puede emplear la interfaz ISP en el K2.
(080355)
Lista de materialesResistencias:R1 = 100kΩR2 a R6 = 330ΩR7 a R14, R31 a R38, R47 a R55 = 150Ω,
véase textoR15 a R30, R39 a R46, R56 = 1kΩ8
Condensadores:C1 = 470μF/25V
C2,C3 = 100nFC4 = 1μF/100V
Semiconductores:IC1 = 7805IC2 = Atmega32D1 = 1N4001T1 a T5 = BC337T6 a T30 = BC547125 LED
Además:Conector macho 2x5 contactos, paso 2,54 mmZócalo para ICConector frontal SIL 4 x 10 contactos, paso
2,54 mmDisipador de calor para TO-220 con 5°C/W (IC1)Distanciador hexagonal 4 x M3x5 de 10 mm
de longitudEnchufe hembra para adaptador de redPlaca de circuito impreso ref. 080355-1
Montaje
Paso 1Primero 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 2Luego 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.
10. 080355-ES.indd 68 1/11/08 20:28:38
6912/2008 - elektor, electronics worldwide
Paso 4Ahora, 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 5A 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 6Para 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.
Sobre el autorJerry 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.
10. 080355-ES.indd 69 1/11/08 20:28:41