Documente Academic
Documente Profesional
Documente Cultură
EVALUACION FINAL
TUTOR
JUAN MONROY
Problema a resolver
Una industria de carroceras, en la seccin de pintura, dispona de un tablero donde se indicaba
a travs de una matriz de leds de 5*10, el momento en que se desarrollaba un proceso
determinado y el tiempo que restaba para que terminara. El equipo de cmputo donde resida
el cdigo fuente que controlaba dicha visualizacin, sufri un ataque de un virus troyano, por
tanto, a la empresa le urge generar un cdigo prototipo temporal, que realice la misma
visualizacin con el mismo hardware (matriz de leds de 5*10).
Es importante aclarar que:
Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 1
Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 2
Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 3
Convertir nmero binario a decima que equivale al nmero de segundos que dura la
fase 4
Para dar solucin al problema planteado utilice los siguientes documentos encontrados en
internet que nos explican todo lo relacionado con Matlab, comandos, funciones etc.
En este paso podemos observar la matriz de leds donde nos indica en la parte inferior
en qu fase estamos y los leds que van encendiendo de acuerdo al tiempo que resta
para terminar el proceso, como se haba planteado en la idea de solucin.
Una vez terminado la primera fase vuelve a recibir el nmero binario para establecer
el tiempo de la segunda fase y dar inicio a la segunda fase mostrando el indicador
de en qu fase se encuentra y el tiempo que le resta para terminar el proceso lo
mismo realizar con la tercera y final mente mostrar en pantalla proceso terminado
como se observa a continuacin:
CDIGO EN MATLAB
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 1er N binario de 11 bits para establecer el
tf1\n', 's');
numerodec = bin2dec(numerobin);
tenemos el proceso de recibir el numero binario y paso de binario a decimal para ver la
cantidad de segundos y en seguida creamos las variables necesarias para desarrollo las
cuales son d que la utilizaremos para que nos indique en cual columna nos va indicar el
tiempo restante encendiendo un led esta variable la utilizamos en el contador junto con la
variable tf1, tf2, tf3
d=numerodec;
tf1=d ;
%tablero que indica en que fase se encuantra "f 1"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 0 5;5 0 0 0 5 5
5 0 0 5;5 0 0 0 5 5 0 0 0 5];
ac tenemos la matriz de nuestra mquina y el cdigo nos va a iniciar
indicando que fase esta
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 5 segundos')
pause(0.5)
else
Hay que tener en cuenta que el tiempo debe ser mayor que 3 segundos ya que es el tiempo
mnimo que puede durar un proceso por tal razn se le coloco la condicin que funcione si
es mayor de 3 segundos,
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if (d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 2do N binario de 11 bits para establecer el
tf2\n', 's');
numerodec = bin2dec(numerobin);
d=numerodec;
tf2=numerodec ;
%tablero que indica en que fase se encuantra "f 2"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 5 5;5 0 0 0 5 5
5 0 5 5;5 0 0 5 0 5 0 0 5 5];
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 3 segundos')
pause(0.5)
else
while (d>1)
clc;
d = d-1;
fprintf('%02d\n',d);
% cuanta regresiva del tiempo que resta para terminar el proceso
if(d>10)
a(d-10,4)=3;
else
a(d,3)=3;
end
disp(a)
pause(1);
end
end
clc;
%codigo que convierte de binario a deciamal
numerobin = input('Recibe 3do N binario de 11 bits para establecer el
tf3\n', 's');
numerodec = bin2dec(numerobin);
tf3=numerodec ;
d=numerodec;
%tablero que indica en que fase se encuantra "f 3"
a=[0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0;0 0 0 0 0 5 5 0 5 5;5 0 0 0 5 5
5 0 5 5;5 0 0 0 5 5 0 0 5 5];
fprintf('%02d\n',d);
disp(a)
pause(0.5)
if (tf1<3)
disp('El tiempo es inferior a 3 segundos')
pause(0.5)
else