Trabajo Colab. 1 Sistemas Digitales Secuenciales
Enviado por smcastronieto • 23 de Septiembre de 2014 • 2.101 Palabras (9 Páginas) • 668 Visitas
1 FASE 1 DESCRIPCION DEL PROBLEMA
Una vez estudiados los contenidos de la unidad I, usando una circuitería combinacional y circuitos secuenciales, se debe diseñar un pequeño vehículo impulsado por dos motores DC, uno en cada rueda trasera. El carro contará con dos sensores en la parte frontal que servirán para detectar el impacto del carro con un obstáculo. El diseño debe ser tal que el vehículo inicie su marcha en reversa durante 3 segundos y luego seguir su marcha normal hacia adelante; una vez éste impacte debe recordar que el choque activa uno de los sensores con el fin que el vehículo retroceda girando en un sentido diferente. No importa cuál de los dos sensores se active o haga el impacto siempre debe cambiar de giro, no importa que impacte dos veces con el mismo microswitche. Una vez que uno de los sensores haya detectado el impacto del carro, éste deberá retroceder por un tiempo de tres (3) segundos y reiniciar su marcha hacia adelante, este tiempo debe ser controlado usando un temporizador 555 en modo monoestable.
2 FASE 2 IMPLEMENTACION
• El estudiante debe describir la necesidad o problema muy bien.
Se diseña un carro que detecta obstáculos en el camino, y cambia su rumbo dependiendo de cada vez que choche con cualquier obstáculo. El carro para iniciar generar su movimiento hacia delante y atrás necesita 1 motor DC, adicional a esto también tiene otro motor que generan movimientos hacia la izquierda y derecha, estos movimientos de derecha, izquierda, adelante y atrás se logra invirtiendo su polaridad de alimentación y todo esto se logra con un puente en H.
• Elaborar una lista de materiales.
CANTIDAD REFERENCIA DESCRIPCION
1 74L04 COMPUERTA NOT
2 7408 COMPUERTAS AND
1 74LS32 COMPUERTA OR
1 L293D PUENTE H
1 74LS76 FLIP FLOP TIPO JK
2 555 INTEGRADO
2 MOTORES 12 Vdc
2 SS0505A MICRO SWITCH
3 100µF CONDENSADORES
1 470µF CONDENSADORES
2 330Ω RESISTENCIAS
1 10kΩ RESISTENCIAS
1 27kΩ RESISTENCIAS
2 LLANTAS
1 RODACHIN
1 PROTOBOAR
1 PILA 12V
• Elaborar un diagrama de bloques.
• Definir las variables lógicas de entrada y salida del sistema.
Las variables lógicas de entrada y salida están dadas por los micro switch, cuando el interruptor se pone en cualquier estado, ya sea 1 o 0 lógico ingresa una señal que genera el cambio de dirección del carro que mantenga su dirección.
En su estado normal los micro switch están en 0 lógico cuando choca contra un obstáculo se pone en 1 lógico.
• Realizar el programa en la herramienta de VHDL.
CÓDIGO:
--------------------------------------------
-- Carrito Evasor de obstáculos ----
--------------------------------------------
library IEEE; -- llamado a la libreria
use IEEE.STD_LOGIC_1164.ALL; -- referencia o carga del paquete
use IEEE.NUMERIC_STD.ALL; -- “all” es para indicar que deseamos utilizar
-- referencia al paquete numeric_std
entity compl is
Port ( s_fcc, s_fcd, s_fci, reset, ss, c, i, d : in STD_LOGIC;
clk: inout STD_LOGIC;
e1, e2, e3, e4 : out STD_LOGIC);
end compl;
architecture Behavioral of compl is
constant N : integer := 03; -- tamaño de bits para bajar de frecuencia
signal a: std_logic;
signal q_reg, q_reg1, q_reg2, q_next, q_next1, q_next2 : unsigned (N-1 downto 0);
signal sel : std_logic_vector (1 downto 0);
begin
process (s_fcc, s_fcd, s_fci,c,d,i,clk,ss,reset)
begin
if (reset = '0') when "00"=>
---- inicia retroceso
e1<= '1';
e2<= '0';
e3<= '1';
e4<= '0';
end if;
else
if (c = '1' and d = '0' and i= '0') then
---- Seguir ADELANTE
e1<= '0';
e2<= '1';
e3<= '0';
e4<= '1';
end if;
if (reset = '0') then
---- GIRA ADELANTE
e1<= '0';
e2<= '1';
e3<= '0';
e4<= '1';
if (ss= '1') then
if (s_fcc = '1' ) then
...