Está en la página 1de 17

PASO 6- TRABAJO GRUPAL RESULTADO FINAL

POR:

HELBER YESID ROJAS. CÓDIGO: 79993474

DERNEY ORTIZ RODRIGUEZ CODIGO 80180608

LUIS ANTONIO VERA

PRESENTADO A:

SANDRA MILENA GARCIA

SOFTWARE PARA INGENIERIA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

2019

1
ACTIVIDAD A DESARROLLAR.

En una empresa de publicidad, se requiere implementar un programa que permita al diseñador


bosquejar dos imágenes a visualizar en una matriz de leds a instalar al lado de un semáforo, la
idea es mostrar una imagen que le indique al peatón cuando caminar y otra para cuando parar;
para ello el aplicativo que diseñe debe permitir:

 Digitar el orden de la matriz (no inferior a 8x8)


 El programa debe permitir que el usuario establezca que leds encenderán para formar la
imagen a partir del ingreso de un 1 lógico en las casillas que determine, para cada imagen
 Mostrar la matriz diseñada con la imagen a mostrar para caminar y parar.
 Simular con un temporizador, la visualización alterna de cada matriz, el usuario
determina dicho tiempo.
 Mostrar una matriz que contenga la coincidencia de led encendido para la imagen de
caminar y parar.

MATRIZ DE LEDS.

Una matriz de leds es una pantalla diseñada con el fin de visualizar imágenes en distintos
colores o tonos el caso más representativo son los semáforos donde se evidencia los cabios de
colores y sus tiempos. Son pantallas que llevan internamente un conjunto de diodos led
dispuestos en filas y columnas donde cada led es conectado una fila y columna.

Siempre cuando se trabaja una matriz se puede entender que la técnica de multiplexado, es
decir como en una matriz de 8x8 tenemos 64 puntos los cuales claramente no podemos acceder
individualmente porque sería muy poco práctico y extremadamente lleno de conexiones, la

2
técnica para este es la de controlarlo de forma matricial con solo 16 pines, es decir 8 para las filas
y 8 para las columnas, de esta forma si se activa una fila y una columna se encenderá el punto
donde estas hacen intersección

Ejemplo.

A B C D E F G H
1
2
3
4
5
6
7
8
Tabla 1 ejemplo del encendido de led.

ORDEN MATRIZ EN MATLAB


A B C D E F G H
(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) 1
(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) 2
(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) 3
(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) 4
(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) 5
(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) 6
(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) 7
(8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) 8
Tabla 2 orden matriz encendiendo el led del ejemplo tabla 1

Por lo tanto si se quiere prender una casilla se verifica las filas y columnas con el fin de
entender el orden de una matriz y se asigna su valor lógico 1 para encender. Entonces Al activar
la columna F y la fila 3, logramos que la intersección entre estos encienda el punto de color azul,
esta sería la forma en la que podemos encender un punto en una matriz. Y aplicando el mismo
procedimiento se puede encender las intersecciones logrando visualizar la imagen que se desee.

3
Funcionalidad de la pantalla:

Teniendo presente que la pantalla está formada por filas y columnas la intersección entre ambas
contienen un led, y para que este led encienda se debe poner un 0 en la fila y un 1 en la columna.

 Apagar todas las filas.


 Escribir los valores correspondientes a la primer fila en el registro de desplazamiento,
teniendo en cuenta que el primer digito binario colocado corresponde al último LED de la
fila, y el ultimo en poner al de la primer columna.
 Encenderla primer fila, esperar un tiempo, y volver a apagarla.

Por lo tanto, es necesario identificar el orden de las filas y columnas para ingresar los datos y
así poder activar los leds correspondiente a la imagen que quiera imprimir.

Algoritmo.

Inicio del programa.

El usuario interactúa con el programa y el


Reconocer el programa y deberá crear su matriz ingresa número de
seleccionar la matriz filas, y números de columna.

El usuario tendrá la opción de seleccionar las


posiciones para encender los leds de la matirz.
Ingrese los valores de los
elementos.

Su imagen deseada
Muestra la imagen diseñada para caminar o
parar.
4
Activar segundos El usuario designa el tiempo que debe esperar
para ver el cambio de luces.

El usuario seleccionas las veces que el quiera


que la secuencia del cambio de imagen
Activar repeticiones. aparezcan.

El usuario observa el cambio de luces, donde


ve la imagen que el eligió para caminar y
Visualiza parar.

5
Código programa

//CODIGO TRABAJO FINAL SOFTWARE PARA INGENIERIA

clc
disp(" DISEÑO DE SEÑALES");
disp("");
disp("");

//INICIALIZAR VARIABLES
p1=0
p2=0
s=0
c=0
f=0
c1=0
f1=0
//BLOQUE DE CONSTRUCCION
while (s<>1)

b=input("OPRIMA 1 PARA SEÑAL SEGUIR OPRIMA 2 PARA SEÑAL PARE ");

while (b<1|b>2)
disp("SELECCIONE SOLO 1 O 2");
b=input("OPRIMA 1 PARA SEÑAL SEGUIR OPRIMA 2 PARA SEÑAL PARE ");
end

select b

//CONSTRUCCION SEÑAL DE SEGUIR


case 1 then

f=input("Ingrese la cantidad de Columnas ENTRE 8 Y 15 ");


c=input("Ingrese la cantidad de Filas ENTRE 8 Y 20 ");

while(f<8|f>15 ||c<8|c>20)
disp("EL VALOR ESTA FUERA DE RANGO");

f=input("Ingrese la cantidad de Columnas ENTRE 8 Y 15 ");


c=input("Ingrese la cantidad de Filas ENTRE 8 Y 20 ");
end

// CREAR MATRIZ DE REFERENCIA DE CEROS CON DATOS DE COLUMNA Y FILA


m=zeros(c,f);

//CREAR MATRIZ DE NUMEROS GUIA


b=1;
for i=1:f
for j=1:c
A(i,j)=b;
b=b+1;

end
6
end

//CREAR MATRIZ TRASPUESTA PARA UBICAR VALOR DE POSICION


mat=(A');
disp(mat);

A=[f,c]; //ACTUALIZA EL ORDEN DE LA MATRIZ

disp("");
disp("");

d=input("Cuál casila quiere activar ");


e= f*c
while (d<1|d>e);
disp("VALOR FUERA DE RANGO");
d=input("Cuál casila quiere activar ");
end
clc
disp(mat);
m(d)=1
disp("EL VALOR CERO = APAGADO EL VALOR UNO = ACTIVADO");
disp(m);
disp("");
disp("");
a= input("OPRIMA UNO PARA SALIR OPRIMA ENTER PARA CONTINUAR ");

//ACTIVAR CASILLAS

while(a<>1)

d=input("Cual casila quiere activar ");

while (d<1|d>e);
disp("VALOR FUERA DE RANGO");
d=input("Cuál casila quiere activar ");
end
clc
disp(mat);
m(d)=1
disp("EL VALOR CERO = APAGADO EL VALOR UNO = ACTIVADO");
disp(m);
disp("");
disp("");

a= input("OPRIMA UNO PARA SALIR OPRIMA ENTER PARA CONTINUAR ");


end

p1=m
clc
disp("CUADRO PARA SEÑAL DE SEGUIR");
disp(p1);

disp("");
disp("");

//CONSTRUCCION DE SEÑAL DE PARE


case 2 then

f1=input("Ingrese la cantidad de Columnas ENTRE 8 Y 15 ");


7
c1=input("Ingrese la cantidad de Filas ENTRE 8 Y 20 ");

while(f1<8|f1>15 ||c1<8|c1>20)
disp("EL VALOR ESTA FUERA DE RANGO");
f1=input("Ingrese la cantidad de Columnas ENTRE 8 Y 15 ");
c1=input("Ingrese la cantidad de Filas ENTRE 8 Y 20 ");
end

// CREAR MATRIZ DE REFERENCIA DE CEROS CON DATOS DE COLUMNA Y FILA


m1=zeros(c1,f1);

//CREAR MATRIZ DE NUMEROS GUIA


b=1;
for i=1:f1
for j=1:c1
B(i,j)=b;
b=b+1;

end
end

//CREAR MATRIZ TRASPUESTA PARA UBICAR VALOR DE POSICION


mat=(B');
disp(mat);

B=[f1,c1]; //ACTUALIZA EL ORDEN DE LA MATRIZ

disp("");
disp("");

d=input("Cuál casila quiere activar ");

e1=f1*c1
while (d<1|d>e1);
disp("VALOR FUERA DE RANGO");
d=input("Cuál casila quiere activar ");
end
clc
disp(mat);
m1(d)=1
disp("EL VALOR CERO = APAGADO EL VALOR UNO = ACTIVADO");
disp(m1);
disp("");
disp("");
a= input("OPRIMA UNO PARA SALIR OPRIMA ENTER PARA CONTINUAR ");

//ACTIVAR CASILLAS

while(a<>1)

d=input("Cual casila quiere activar ");

while (d<1|d>e1);
disp("VALOR FUERA DE RANGO");
d=input("Cuál casila quiere activar ");
end
clc
disp(mat);
m1(d)=1
disp("EL VALOR CERO = APAGADO EL VALOR UNO = ACTIVADO");
8
disp(m1);
disp("");
disp("");

a= input("OPRIMA UNO PARA SALIR OPRIMA ENTER PARA CONTINUAR ");


end

p2=m1
clc
disp("CUADRO PARA SEÑAL DE PARE");
disp(p2);
disp("");
disp("");

end

s=input("OPRIMA UNO PARA SALIR OPRIMA ENTER PARA REINICIAR ");


end

//MOSTRAR RESUMEN DE IMAGENES CREADAS


clc
disp("Plano final");
disp("SEÑAL SIGA");
disp(p1);
disp("");
disp("SEÑAL PARE");
disp(p2);

//GENERAR PRESENTACION FINAL

//CREAR BLOQUE DE TEMPORIZADO


g=0
while (g<>1)

m=zeros(c,f); //Matriz en ceros para fondo de imagen


if(c1==0 |f1==0) //Condicional de borrado de presentacion anterior
//de señal pare cuando no se ha utilizado
m1=0
else
m1=zeros(c1,f1);
end
disp("");
disp("");

siga=input("ESCRIBA TIEMPO EN SEGUNDOS DE ACTIVACION PARA SIGA ");


pare=input("ESCRIBA TIEMPO EN SEGUNDOS DE ACTIVACION DE PARE ");

for i=1:siga
clc
disp(p1); //Muestra ultima matriz guardada para señal seguir
sleep(900); //Temporizado
clc

disp(m); //Muestra fondo de solo ceros


sleep(200); //Temporizado
end
9
for i=1:pare
clc
disp(p2); //Muestra ultima matriz guardada para señal pare
sleep(900); //Temporizado
clc

disp(m1); //Muestra fondo de solo ceros

sleep(200); //Temporizado
end

disp("");
disp("");
g=input("PARA SALIR OPRIMA 1 PARA RETORNAR OPRIMA ENTER ");

end

//SALIDA FINAL
disp("GRACIAS");
disp("Fin de la presentación");

Comprobación

Presentación inicial
Solicitar elección de señal a diseñar

Filtro en caso de una elección equivocada

10
Solicitar rango de la matriz (columnas)

Solicitar rango de la matriz (filas)

Filtro en caso de una elección equivocada

11
Muestra tabla guía numerada, solicita número de casilla para activar en la
imagen.

Filtro en caso de una elección equivocada

Muestra matriz con casillas activadas con los números ingresados


Presenta opción de continuar o terminar con el diseño.

Muestra diseño final para señal seguir


Muestra opción de reiniciar para crear una imagen nueva.
12
Ingresa para diseño de señal de pare

Permite el ingreso de casillas para activar

13
Muestra diseño final para señal pare

Presenta resultado final de los diseños

14
Solicita tiempo de activación de cada señal

Muestra intermitencia de señal seguir

Muestra intermitencia de señal pare

15
BIBLIOGRAFÍA
(s.f.).
3d, p. (2019). Cómo programar una Matriz LED 8×8 – Tutorial Arduino. Obtenido de
https://piensa3d.com/tutorial-programacion-arduino-matriz-led-8x8/

mario. (19 de diciembre de 2009). Matriz de LED 8X8. Obtenido de


https://www.neoteo.com/matriz-de-led-8x8/

valle, l. d. (2019). Controlar matriz de LEDs con Arduino. Obtenido de


https://programarfacil.com/blog/controlar-matriz-de-leds-con-arduino/

Monroy, J. (2016). Conceptos Básicos de programación. [Archivo de video] Recuperado


de: http://hdl.handle.net/10596/10293

Mathworks, ( 2019) estructura de control ,obtenido de


https://la.mathworks.com/help/matlab/learn_matlab/flow-control.html

https://www.youtube.com/watch?v=GIJKTLIWLFo

https://www.abcelectronica.net/productos/leds/matriz-led/

https://es.wikipedia.org/wiki/C%C3%B3digo_binario

https://www.youtube.com/watch?v=LZaYx299D04

https://www.youtube.com/watch?v=U0CgNhPD3Xw

https://www.youtube.com/watch?v=ntoCSQcriR8

16
https://www.prometec.net/matriz-led-8x8/

17