SOLUCIÓN
" QUIEN NO VIVE PARA SERVIR, NO SIRVE PARA VIVIR" TERESA DE CALCUTA. EL COMPARTIR ME DA FELICIDAD
martes, 21 de abril de 2015
domingo, 15 de marzo de 2015
Luces estacionarias dobles con salida optoacoplada utilizando Tarjeta Digilent Basys 2 con VHDL
Se prueba inicialmente con un LED disponible en la tarjeta y luego se trabajan las estacionarias con salida optoacoplada a fin de protejer la tarjeta al no exigirle más corriente de lo permitido:
La tarjeta Digilent Basys 2 dispone de un reloj a cristal de 50 Mhz, y el Led hay que hacerlo encender y apagar con una frecuencia de 1 Hz, de tal manera que lo primero requerido es un divisor de frecuencia.
La tarjeta Digilent Basys 2 dispone de un reloj a cristal de 50 Mhz, y el Led hay que hacerlo encender y apagar con una frecuencia de 1 Hz, de tal manera que lo primero requerido es un divisor de frecuencia.
El divisor de frecuencia es un componente para reducir la frecuencia de entrada. Éste se implementa con ayuda de una Escala y un contador, donde la Escala es la relación o división entre la frecuencia de entrada y la frecuencia de salida deseada:
Recordemos que la frecuencia y el periodo de la señal son inversamente proporcionales, tal como se observa en las ondas mostradas, las cuales corresponden a un contador binario ascendente de 3 bits.
Como el contador cuenta del 0 al 7 (modo 8) al dividir la señal de entrada (50 Mhz) por 8 nos dá 6.25 Mhz, en el bit más significativo del contador.
Como el cristal tiene una frecuencia de 50MHz ( frecuencia de entrada) y deseamos una salida de 1 Hz, tenemos que:
Escala = 50 Mhz / 1Hz = 50 000 000
Si el reloj tiene el mismo tiempo en alto que en bajo:
SI empezamos el conteo desde cero, y un contador al llegar a 24 999 999 genera un pulso, esto quiere decir que la frecuencia de salida , de los pulsos generados, debe ser de 1 Hz.
Veamos el programa en VHDL:
--Divisor de frecuencia de 50MHz a 1Hz para parpadeo de LED
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity clk1Hz is
Port (
clk50Mhz: in STD_LOGIC;
reset : in STD_LOGIC;
led : out STD_LOGIC
);
end clk1Hz;
architecture Behavioral of clk1Hz is
signal pulso: STD_LOGIC;
signal contador: integer range 0 to 24999999 := 0;
begin
divisor_frecuencia: process (reset, clk50Mhz) begin
if (reset = '0') then
pulso <= '0';
contador <= 0;
elsif rising_edge(clk50Mhz) then
if (contador = 24999999) then
pulso <= NOT(pulso);
contador <= 0;
else
contador <= contador+1;
end if;
end if;
end process;
led <= pulso;
end Behavioral;
El contador dispone de una entrada de reset que se activa con nivel bajo, es decir si reset = 0, sin importar el flanco del reloj el contador se resetea.
La primera vez que el contador llega al 24999999, la señal interna pulso pasa del nivel bajo a nivel alto, el contador pasa a 0, y vuelve a comenzar a contar, mientras la entrada reset sea alta, y al volver a llegar a
--Divisor de frecuencia de 50MHz a 1Hz para parpadeo de LED
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity clk1Hz is
Port (
clk50Mhz: in STD_LOGIC;
reset : in STD_LOGIC;
led : out STD_LOGIC
);
end clk1Hz;
architecture Behavioral of clk1Hz is
signal pulso: STD_LOGIC;
signal contador: integer range 0 to 24999999 := 0;
begin
divisor_frecuencia: process (reset, clk50Mhz) begin
if (reset = '0') then
pulso <= '0';
contador <= 0;
elsif rising_edge(clk50Mhz) then
if (contador = 24999999) then
pulso <= NOT(pulso);
contador <= 0;
else
contador <= contador+1;
end if;
end if;
end process;
led <= pulso;
end Behavioral;
El contador dispone de una entrada de reset que se activa con nivel bajo, es decir si reset = 0, sin importar el flanco del reloj el contador se resetea.
La primera vez que el contador llega al 24999999, la señal interna pulso pasa del nivel bajo a nivel alto, el contador pasa a 0, y vuelve a comenzar a contar, mientras la entrada reset sea alta, y al volver a llegar a
24999999,pulso pasa ahora de 1 a 0, completando un pulso completo, o sea un periodo de reloj;
de esta forma la salida es de solo 1 Hz.
de esta forma la salida es de solo 1 Hz.
¡ Cada 50 millones de pulsos a la entrada se produce 1 pulso a la salida !
Con captura esquemática es imposible lograr esto; en cambio con lenguaje VHDL se hace de una
forma muy sencilla. Por eso VHDL se impone cada día mas, como lenguaje para describir hardware y efectuar en forma simple y práctica el diseño digital, pero se requiere, por ejemplo, de una FPGA
donde el programa se pueda aplicar e implementar.
Con el navegador de proyectos de Xilinx ISE 10.1 creamos como nuevo proyecto: LedParpadeo, y como nueva fuente en Módulo VHDL: clk1Hz.
Copiamos y pegamos el programa ya visto, salvamos y chequeamos sintaxis
Para este caso no es necesario efectuar la simulación.
Procedemos a elaborar la síntesis y la asignación de pines. El pin del Clock de 50 MHZ es B8.
Procedemos ahora a estudiar la salida optoacoplada con el chip de 4 pines PC817, el cual se muestra en la figura siguiente:
El chip PC817 dispone internamente de un diodo infrarojo y un fototransistor tal como se muestra en el siguiente diagrama
En muchas ocasiones se hace indispensable, para evitar ruidos que pueden incidir en un mal funcionamiento de un circuito secuencial, el uso de un optoacoplador que aisle la carga del circuito secuencial. Para este situación es muy util implementar una salida optoacoplada con el PC817, tal como se muestra en el siguiente esquema para manejar a traves de un relé de 5 voltios una bombilla azul y otra roja, a 120 voltios AC.
Si la Entrada es 0 el relé está desenergizado y se activa la bombilla roja, y si la entrada es 1 se energiza el relé y se activa la bombilla roja. Como el motor funciona al crearse un campo electromagnético en el, si no existiera el aislamiento eléctrico causará ruido y molestaría en el circuito lógico que lo está activando, y por la alta corriente exigida dañaría la salida de la FPGA.
El Optoacoplamiento, quiere decir que el acoplamiento de las bombillas con el circuito lógico que lo activa, se hace en forma óptica, a través del diodo infrarojo y el fototransistor que existen en el interior del chip de 4 pines PC817. Con el 0 lógico el led infrarojo no emite luz, y el fototransistor está abierto, en cambio, si se tiene un 1 lógico a la entrada, el led emite luz. y el fototransistor conduce.
Observe además que se están utilizando tanto los contactos normalmente abiertos como los normalmente cerrados, o sea los 5 pines de que dispone el relé de 5 voltios.El diodo de conmutacion dispuesto inversamente y en paralelo con la bobina del relevo actúa como supresor de picos de corriente cotrarrestando la Ley de Lenz ( VL = - L di / dt), y evitando que el voltaje autoinducido negativo que se genera en la bobina del relevo queme el transistor 2N2222A que se está utilizando como interface entre la salida del optoacoplador y la bobina o entrada del relevo.
Mas información sobre este interesante tema del optoacoplamiento se puede obtener en http://es.wikipedia.org/wiki/Optoacoplador
Mas información sobre este interesante tema del optoacoplamiento se puede obtener en http://es.wikipedia.org/wiki/Optoacoplador
miércoles, 28 de enero de 2015
LA VELA MÁGICA: Proyecto de laboratorio
La fotografía fue tomada en Expociencia Juvenil en Corferias donde se presentó este proyecto por parte del Club de Física del INEM Santiago Perez-Tunal de Bogotá:
Veamos los detalles de los elementos que intervienen en el desarrollo del proyecto:
Se llama fototransistor a un transistor sensible a la luz. La luz
incide sobre la región de base, generando portadores en ella. Esta carga de
base lleva el transistor al estado de conducción.
En el mercado se
encuentran fototransistores tanto con conexión de base como sin ella y tanto en
cápsulas plásticas como metálicas (TO-72, TO-5) provistas de una lente.
El símbolo del fototransistor es el mostrado en la figura:
Para
información sobre fototransistor consultar: http://es.wikipedia.org/wiki/Fototransistor
Veamos un esquema eléctrico de la Vela Electrónica:
Como elemento de memoria biestable se utiliza un flip-flop SET RESET Latch implementado con dos compuertas NOR 74LS02:
Observe
además que la base del fototransistor de
tres pines no está conectada. Se deja al
aire.
En lugar del fototransistor se puede utilizar
un fotodiodo o una fotoresistencia, en un divisor de tensión. Consultar http://es.wikipedia.org/wiki/Fotodiodo
, o, http://es.wikipedia.org/wiki/Fotorresistencia
“La
fotorresistencia, como su nombre lo indica, es un resistencia cuyo valor depende
de la energía luminosa incidente en ella, específicamente son resistencias cuyo
valor de resistividad disminuye a medida que aumenta la energía luminosa
incidente sobre ella y viceversa. Una fotorresistencia se compone de un
material semiconductor cuya resistencia varia en función de la iluminación. La
fotorresistencia reduce su valor resistivo en presencia de rayos luminosos.
Es
por ello por lo que también se le llama resistencias dependientes de luz (LDR: light
dependent resistors), fotoconductores o células fotoconductoras”.
Suscribirse a:
Entradas (Atom)