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.

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: 

Escala = \frac{f_{entrada}}{f_{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:

t_{alto} = t_{bajo} = \frac{50 000 000}{2} = 25 000 000

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  

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.


¡ 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

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”.