informe lab 3

5
Universidad de los llanos – Ingeniería electrónica. Circuitos digitales I LABORATORIO Nº 3 MANEJO DE UNA MATRIZ 4X4 Daniel Andrés Doza Chavita [email protected] Cod: 161002709 Yuly Rincón [email protected] Cod: 161002632 Julián Ramos [email protected] Cod: 161002725 RESUMEN: La práctica se trata acerca del manejo de una matriz bicolor (rojo y verde), en la cual vamos a presentar una variedad de figuras que por medio de el programa Xilinx ise 13.3 y nuestra FPGA Basys 2, vamos a programar y presentar. PALABRAS CLAVE: Fila, columna, ánodo, cátodo. ABSTRACT: The practice is about managing a matrix bicolor (red and green), in which we present a variety of figures through the program Xilinx ISE 13.1 and our FPGA Basys 2 we will schedule and present in our matrix. KEY WORDS: Row, column, anode, cathode. 1. INTRODUCCIÓN En esta práctica vamos por medio de nuestro programa compilador de VHDL (XILINX ISE 13.3) a crear un programa el cual nos permita manejar las filas y columnas de nuestra matriz, vamos a trabajar con una matriz de 8 X 8, pero solo vamos a usar 4 filas y 4 columnas, queriendo decir 4 X 4, para crear diversas figuras . 2. OBJETIVOS Identificar los ánodos y cátodos de la matriz, crear las figuras dependientes de la configuración de cada fila y columna, crear el programa que nos permita ver esas figuras en la matriz. 3. MATRIALES. - Protoboard. - Matriz de leds. - Programa compilador de VHDL; XILINX ise 31.3. - Computador personal 4. PROCEDIMIENTO. Vamos a buscar el datasheet de nuestra matriz de leds para identificar los pines y así identificar las filas y las columnas y consecuentemente identificar los ánodos y cátodos. Página 1 de 5

Upload: daniel-andres-doza-chavita

Post on 05-Aug-2015

134 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Informe Lab 3

Universidad de los llanos – Ingeniería electrónica. Circuitos digitales I

LABORATORIO Nº 3MANEJO DE UNA MATRIZ 4X4

Daniel Andrés Doza [email protected]

Cod: 161002709

Yuly Rincó[email protected]

Cod: 161002632

Julián Ramos [email protected]

Cod: 161002725

RESUMEN: La práctica se trata acerca del manejo de una matriz bicolor (rojo y verde), en la cual vamos a presentar una variedad de figuras que por medio de el programa Xilinx ise 13.3 y nuestra FPGA Basys 2, vamos a programar y presentar.

PALABRAS CLAVE: Fila, columna, ánodo, cátodo.

ABSTRACT: The practice is about managing a matrix bicolor (red and green), in which we present a variety of figures through the program Xilinx ISE 13.1 and our FPGA Basys 2 we will schedule and present in our matrix.

KEY WORDS: Row, column, anode, cathode.

1. INTRODUCCIÓN

En esta práctica vamos por medio de nuestro programa compilador de VHDL (XILINX ISE 13.3) a crear un programa el cual nos permita manejar las filas y columnas de nuestra matriz, vamos a trabajar con una matriz de 8 X 8, pero solo vamos a usar 4 filas y 4 columnas, queriendo decir 4 X 4, para crear diversas figuras .

2. OBJETIVOS

Identificar los ánodos y cátodos de la matriz, crear las figuras dependientes de la configuración de cada fila y columna, crear el programa que nos permita ver esas figuras en la matriz.

3. MATRIALES.

- Protoboard.

- Matriz de leds.

- Programa compilador de VHDL; XILINX ise 31.3.

- Computador personal

4. PROCEDIMIENTO.

Vamos a buscar el datasheet de nuestra matriz de leds para identificar los pines y así identificar las filas y las columnas y consecuentemente identificar los ánodos y cátodos.

Fig. 1.

Al identificar los pines, ánodos y cátodos de nuestra matriz procedemos a escribir la configuración de nuestras imágenes

Podemos deducir que nuestra matriz es de cátodo común, porque todos los cátodos están fijos a una misma fila la cual se activa con un pulso bajo “un cero”,

y los ánodos de cada columna nos muestra que hay un grupo para el color verde y

Página 1 de 4

Page 2: Informe Lab 3

otra para los rojos.

Fig. 2.

Vamos a describir el funcionamiento para cada color primero sería para el verde el cual sería activar todos los cátodos con un cero y los ánodos con un uno

Si queremos encender todos los leds de verde, sería enviar un uno a los pines (16, 13, 6,3) y un uno a los pines (17, 14, 2, 5)

Si queremos encender todos los leds de rojo, sería enviar un cero a los pines (16, 13, 6,3) y un uno a los pines (18, 15, 1, 4), entonces las filas son manejadas por los cátodos y las columnas por los ánodos.

Teniendo esta configuración se pueden hacer figuras variando el uso de los ánodos y los cátodos.

Vamos a programar…

Abrimos nuestro programa XILINX ISE 13.3, creamos nuestro modulo matriz modulo_1, en el cual creamos un vector para las entradas de 6 bits que son los interruptores de nuestra FPGA y 12 de salida que activan los leds de nuestra matriz, el programa va a ser por medio de tablas o tabulado en el cual el compara el dato de entrada y envía un dato dependiente de la entrada

A continuación una breve explicación de cómo el dato de salida:

Acá aplicamos las sugerencias anteriores acerca del encendido de la matriz de color verde y rojo

Color verdeCátodo Ánodo verde Ánodo rojo1111 0000 1111Color rojoCátodo Ánodo verde Ánodo rojo1111 1111 0000

Al quererse manejar las filas y las columnas basta con desactivar cada “subgrupo” con si bit contrario, si se activa con 1, entonces se desactiva con 0 y viceversa

Apagar primera fila verdeCátodo Ánodo verde Ánodo rojo0111 0000 1111Apagar primera columna verdeCátodo Ánodo verde Ánodo rojo1111 1000 1111

Apagar primera fila rojoCátodo Ánodo verde Ánodo rojo0111 1111 0000Apagar primera columna rojoCátodo Ánodo verde Ánodo rojo1111 1111 1000

Después de hacer esa comparación con todas las figuras deseadas el programa se hace por medio de la comparación sería el siguiente:

library IEEE;use IEEE.STD_LOGIC_1164.ALL;

entity matriz_1 is Port ( a : in STD_LOGIC_VECTOR (4 downto 0);

salidas: out STD_LOGIC_VECTOR (11 downto 0));

end matriz_1;

architecture Behavioral of matriz_1 isbegin

process(a) begin

case a is

when "00000" =>salidas<="111100001111";

when "00001" =>salidas<="111111110000";

when "00010" =>salidas<="110000111100";

when "00011" =>salidas<="001111000011";--cuadro rojo y verde

when "00100" =>salidas<="001100111100";--cuadro verde y rojo

when "00101" =>salidas<="011010111110";--cuadro central rojo y verde5

when "00110" =>salidas<="011011011011";--cuadro central rojo y verde

when "00111" =>salidas<="111100000000";--cuadro naranja

when "01000" =>salidas<="111111000011";--1ra y segunda columna rojos, el resto verdes

when "01001" =>salidas<="111100111100";--1ra y segunda columna verdes, el resto rojos

when "01010" =>salidas<="011111110000";--apaga 1ra fila rojo

when "01100" =>salidas<="011011111010";--cuadro en el centro rojo

when "01101" =>salidas<="011010011111";--cuadro en el centro verde

when "01110" =>salidas<="100111110101";--puntos extremos

when "01111" =>salidas<="100101101111";--puntos extremo

Página 2 de 4

Page 3: Informe Lab 3

when "10000" =>salidas<="011111110000";--apaga 1ra fila rojo

when "10001" =>salidas<="101111110000";--apaga 2da fila

when "10010" =>salidas<="110111110000";--apaga 3da fila

when "10011" =>salidas<="111011110000";--apaga 4da fila

when "10100" =>salidas<="111111111000";--apaga 1ra columna

when "10101" =>salidas<="111111110100";--apaga 2ra columna

when "10110" =>salidas<="111111110001";--apaga 4ra columna

when "10111" =>salidas<="111111110010";--apaga 3ra columna

when "11000" =>salidas<="011100001111";--apaga 1ra fila verde

when "11001" =>salidas<="101100001111";--apaga 2da fila

when "11010" =>salidas<="110100001111";--apaga 3da fila

when "11011" =>salidas<="111000001111";--apaga 4da fila

when "11100" =>salidas<="111110001111";--apaga 1ra columna

when "11101" =>salidas<="111101001111";--apaga 2ra columna

when "11110" =>salidas<="111100101111";--apaga 3ra columna

when "11111" =>salidas<="111100011111";--apaga 4ra columna

when others =>salidas<="ZZZZZZZZZZZZ";

end case;

end process;

end Behavioral;

Este programa es el que nos muestra la configuración que usamos para mostrar las diversas figuras que podemos presentar

Ahora a crear el circuito…

Nosotros pusimos de forma directa los pines de la FPGA a los de la matriz de leds, pero se puede añadir un circuito el cual se monta con transistores en corte el cual tiene una corriente de colector mínima (prácticamente igual a cero) y un voltaje colector emisor

xx máximo (casi igual al voltaje de alimentación), para reducir la corriente y evitar el daño de los elementos frágiles, los omitimos puesto que no hay amenaza alguna

Fig.3.

La imagen anterior nos muestra de manera esquemática como es la conexión de nuestra tarjeta de desarrollo a nuestra matriz de leds.

Y aquí está la simulación

4. Conclusiones

Al no tener el manejo de frecuencia, solamente podemos variar la fila o la columna independientemente, mientras que si lo aplicamos podemos tener un muchísimo más manejo de nuestra matriz.

Para crear un tercer color debe haber una diferencia de potencial eléctrico notable para que las dos frecuencias de nuestros dos colores (verde y rojo) se puedan mezclar.

5. REFERENCIAS

[1] Archivo de referencia: http://www.arduteka.com/2012/02/tutorial-arduino-0008-matriz-led-8x8-bicolor-74ch595/

[2] Fig.1:http://www.element14.com/community/groups/arduino/blog/tags/bicolor

[3] Fig. 2: http://www.fullcustom.es/guias/instalacion-

Página 3 de 4

Page 4: Informe Lab 3

diodos-led

6. Anexos.

- Fotos del circuito.

Página 4 de 4