Diseño y montaje de un generador de funciones Portal Alipso.com: http://www.alipso.com/ Apuntes y Monografías > Física > URL original: http://www.alipso.com/monografias/desaprodue/ Fecha de inclusión en Alipso.com: 2011-08-02 Enviado por: Anonimo (anonimo@alipso.com) Contenido Diseño y montaje de un generador de funciones Imprimir Recomendar a un amigo Recordarme el recurso Descargar como pdf {literal} var addthis_config = {"data_track_clickback":true}; {/literal} Seguinos en en Facebook Agregado: 02 de AGOSTO de 2011 (Por Anonimo) | Palabras: 6073 | Votar! | Sin Votos | Sin comentarios | Agregar ComentarioCategoría: Apuntes y Monografías > Física >Material educativo de Alipso relacionado con Diseno montaje generador funcionesDiseño de Cimentaciones sobre Pilotes. Estado del Arte.: ...Ilustración, ciencia y técnica en América: ...Conjunto Imagen- Ecuacion Segmentaria- Funciones.: Enlaces externos relacionados con Diseno montaje generador funciones { "@context": "http://schema.org", "@type": "NewsArticle", "headline": "Diseño y montaje de un generador de funciones", "alternativeHeadline": "Diseño y montaje de un generador de funciones", "image": [ "http://www.alipso.com/monografias/desaprodue//./index_archivos/image001.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image002.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image004.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image005.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image006.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image007.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image008.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image009.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image010.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image011.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image012.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image013.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image014.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image015.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image016.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image018.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image019.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image021.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image023.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image025.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image027.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image029.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image031.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image033.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image035.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image037.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image039.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image041.jpg", Alipso.com - http://www.alipso.com Página 1/132 Diseño y montaje de un generador de funciones "http://www.alipso.com/monografias/desaprodue//./index_archivos/image043.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image045.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image047.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image049.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image051.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image053.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image055.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image057.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image059.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image060.gif", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image062.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image064.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image066.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image068.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image070.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image072.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image075.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image077.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image079.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image081.jpg", "http://www.alipso.com/monografias/desaprodue//./index_archivos/image083.jpg" ], "datePublished": "2011-08-02T08:00:00+08:00", "description": "", "articleBody": " INDICE TEMA PAGINA · INDICE ............................................................. Pág. 1. · OBJETIVO DE LA PRACTICA ...................... Pág. 2. · DIAGRAMA DE BLOQUES............................ Pág. 3. · DESARROLLO DE LA PRACTICA................ pag 4. · MATLAB 5.1 .................................................... Pág. 5. · D.A.C.(Digital-to-Analog Converter)................ Pág. 30. · MEMORIA EPROM.......................................... Pág. 33. · AMPLIFICADOR OPERACIONAL................. Pág. 35. · CIRCUITERIA EXTERNA .............................. Pág. 41. · MATERIAL UTILIZADO................................. Pág. 46. Alipso.com - http://www.alipso.com Página 2/132 Diseño y montaje de un generador de funciones · PRESUPUESTO DE LA PRACTICA............... Pag. 47. Alipso.com - http://www.alipso.com Página 3/132 Diseño y montaje de un generador de funciones OBJETIVO DE LA PRACTICA El objetivo de la práctica es diseñar y montar un generador de funciones. Dicho generador nos debe proporcionar las siguientes funciones: · Ser variable en frecuencia, la cual debe ser la máxima que podamos sin que afecte a la onda, alrededor de 15 KHz. · Ser variable en amplitud, intentando conseguir el valor máximo de pico a pico, también como la anterior sin que ofrezca ninguna deformación a la onda · Ser variable en offset, debe desplazar la onda lo máximo posible hasta el valor de saturación. · Debe representar cuatro tipos diferentes de onda( En nuestro caso representaremos ocho tipos diferentes por petición expresa del profesor) las cuales son: 1. Onda Coseno. 2. Onda Cuadrada. 3. Onda Diente de sierra. Alipso.com - http://www.alipso.com Página 4/132 Diseño y montaje de un generador de funciones 4. Onda Exponencial 5. Onda Senoidal. 6. Onda Rectificada. 7. Onda Triangular. 8. Onda Muela (Es una suma de seno y coseno). DIAGRAMA DE BLOQUES 555 PULSADOR CONTADOR Alipso.com - http://www.alipso.com Página 5/132 74393 Diseño y montaje de un generador de funciones INVERSOR TRIGGER 74LS14 MEMORIA EPROM SG 27C256/B CONTADOR 74LS190 D.A.C 08-1 AMPLIFICADOR OPERACIONAL LM741 OSCILOSCOPIO Alipso.com - http://www.alipso.com Página 6/132 Diseño y montaje de un generador de funciones DESARROLLO DE LA PRACTICA El desarrollo de la practica se va a dividir en cinco grandes bloques: 1. El primero lo compone el programa matemático de ordenador MATLAB, un potente programa de matemáticas capaz de cualquier cosa y muy fácilmente programable. 2. El segundo lo compone el D.A.C.(Digital To Analog Converter) convertidor digital a analógico en cristiano. 3. El tercero lo compone la memoria EPROM y su programador EXPRO. 4. El cuarto bloque lo compone el amplificador operacional. 5. El quinto bloque lo compone la circuiteria que mueve todo esto como son contadores, 555 en su modo astable, pulsador, etc... Alipso.com - http://www.alipso.com Página 7/132 Diseño y montaje de un generador de funciones 1.BLOQUE MATLAB 5.1 El primer bloque lo compone el MATLAB. La versión que hemos utilizado nosotros es la MATLAB 5.1, ya que era la mas actualizada que disponíamos, en el instituto era el MATLAB 4.0, y lo mas importante, que corregía un error que en un principio nos tenia locos a todos referente a la representación de los números hexadecimales. Al principio del prototipo comenzamos utilizando el programa MATLAB 4.0 con el que las cosas empezaron bastante bien hasta que llego el momento de pasar los valores decimales a hexadecimales, aquí el MATLAB 4.0 no hacia bien dos operaciones, una primera, no colocaba un ‘0’ delante de los valores hexadecimales donde los cuatro bits mas significativos estaban a nivel bajo ‘0’, es decir, que en vez de marcarte 01 en hexadecimal que es el 1 en decimal te marcaba 1en hexadecimal, este problema tenia mayor importancia cuando al sacar la cadena de todos los valores en hexadecimal de una onda los sacaba uno detrás de otro sin dejar espacio por lo que era casi imposible saber que valores eran los que interesaban y no se podían meter en una matriz ya que cada valor estaba compuesta por dos bits por lo que el programa nos daba error al generar la matriz de valores, por esas razones nos cambiamos al MATLAB 5.1 . Ahora con el MATLAB 5.1 el problema de los valores hexadecimales estaba resuelto, aunque nosotros ya habíamos sacado la forma de operar con los valores del MATLAB 4.0 continuamos con el MATLAB 5.0, y ya comenzábamos a sacar los valores de las ondas. Otra aplicación también muy interesante de este otro programa era la opción de un asistente para generar programas de no mucha aplicación pero que mejoraba bastante la presentación. Alipso.com - http://www.alipso.com Página 8/132 Diseño y montaje de un generador de funciones COMENZANDO A OPERAR. Lo primero será crear los archivos correspondientes a cada onda, estos están hechos en bloc de notas pero poniéndoles la extensión *.m el programa los reconocerá y los ejecutara, seguidamente se programara un menú con unos submenús que nos mostraran fácilmente todos los datos de cada onda. La programación del menú la realizaremos mas adelante, ahora comenzaremos con los programas de las ondas. ONDA COSENO Para cada tipo de onda tendremos que hacer cinco programas: 1. Valores decimales de la onda. 2. Valores hexadedimales de la onda. 3. Matriz de valores. 4. Grafica de la onda. 5. Creación de archivo con los valores de la matriz. Comenzaremos con el programa primero, generación de los valores decimales de la onda cosenoidal, para lo que utilizaremos el siguiente programa, luego explicaremos que la función de cada línea. Alipso.com - http://www.alipso.com Página 9/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; dcose=round(x); [dcose'] Este programa que recibe el nombre de ‘decicose.m’ nos genera los valores decimales de la onda coseno, su desarrollo es sencillo. En la primera línea de programa lo que hacemos es dividir 1 en 256 partes iguales ya que van a ser el numero de valores que vamos a poder introducir en la memoria, estos van a representar un periodo de la onda y se van a almacenar los valores en una variable llamada ‘t’. En la segunda línea de comando almacenamos en la variable ‘x’ los valores del coseno en cada una de las 256 posiciones del periodo. En la tercera operamos la amplitud, la amplitud del coseno es de ‘1’ a ‘–1’ pero al estar trabajando con números hexadecimales esta amplitud la tendremos que dividir en 256 valores dando así una correspondencia de que a ‘1’ le corresponde el 255 y a ‘-1’ el 0, para ello utilizamos esta línea de comando y la siguiente. Ahora tenemos en números decimales la onda coseno dividida en 256 partes en tiempo y amplitud, lo siguiente es redondear los números decimales ya que un numero con decimales no se puede pasar a hexadecimal, para ello se utiliza la quinta línea de comando con la orden round(var) . La ultima línea de comando lo que hace es representar los valores de una manera ordenada por pantalla. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=dec2hex(x); Alipso.com - http://www.alipso.com Página 10/132 Diseño y montaje de un generador de funciones [h] El segundo programa es el que genera los valores hexadecimales y recibe el nombre de ‘hexacose.m’. En este programa lo único que hacemos es añadir una nueva línea de comando, la sexta, en esta línea lo que hacemos es transformar los valores decimales redondeados en valores hexadecimales a través de la instrucción ‘dec2hex(var)’ y luego se representan por pantalla. En el tercer programa se genera la matriz de dimensiones 16x16 que mas tarde será enviada al programador de EPROM, este programa responde al nombre de ‘matrizcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; Alipso.com - http://www.alipso.com Página 11/132 Diseño y montaje de un generador de funciones COSENO(i,p)=h(v); end end COSENO Aquí hasta la sexta línea es como en el programa de generar los valores decimales, luego usamos la sentencia ‘sprintf(‘%+.02 ‘,x)’ que nos transformara en hexadecimal los valores decimales y además nos dejara un espacio blanco entre cada numero hexadecimal. Las dos siguientes líneas son dos variables de contador para generar la matriz, el resto del programa es un bucle que va colocando bit a bit los números hexadecimales de la forma que deseamos. El cuarto programa tiene como función representar la onda con los valores decimales, el nombre que recibe este archivo es ‘grafcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); plot(t,x) En este programa se representa la onda coseno con una amplitud de 256 y un periodo de 1 pero dividido en 256 valores. El programa vuelve a ser igual que el que genera los valores decimales pero añadiendo una nueva línea que hace la representación, la sentencia que lo realiza es ‘plot(t,x)’ Alipso.com - http://www.alipso.com Página 12/132 Diseño y montaje de un generador de funciones El quinto programa lo que hace es transformar los valores para poder mandarlos al programador de EPROM y crea un archivo, el nombre del programa es ‘archcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\coseno.bin','w'); fprintf(tmp,'%c',x); fclose('all'); Aquí otra vez comienza como el primer archivo, en la séptima línea se abre el archivo con el comando ‘tmp=fopen(‘ruta’,’w’)’ y en la siguiente línea se transforma el hexadecimal en código ASCID. En la ultima se cierra el archivo. Alipso.com - http://www.alipso.com Página 13/132 Diseño y montaje de un generador de funciones Alipso.com - http://www.alipso.com Página 14/132 Diseño y montaje de un generador de funciones ONDA SENO Como hemos dicho anteriormente se compone de cinco archivos cada onda, ahora iremos un poco mas rápido ya que casi todos los programas son similares, el único que puede variar un poco es el de generar los valores decimales. El primer archivo crea los valores decimales de la onda seno, que recibe el nombre de ‘deciseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; dseno=round(x); [dseno'] Alipso.com - http://www.alipso.com Página 15/132 Diseño y montaje de un generador de funciones Este archivo carece de explicación ya que es igual que el de la onda coseno. El segundo archivo genera los números hexadecimales de la onda seno, que recibe el nombre de ‘hexaseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=dec2hex(x); [h] Alipso.com - http://www.alipso.com Página 16/132 Diseño y montaje de un generador de funciones El tercer archivo genera la matriz de valores de la onda senoidal, que recibe el nombre de ‘matrizseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; SENO(i,p)=h(v); end end SENO Alipso.com - http://www.alipso.com Página 17/132 Diseño y montaje de un generador de funciones El cuarto archivo nos crea la representación grafica de la onda seno. Este archivo posee el nombre de ‘grafseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); plot(t,x) El quinto archivo creara el archivo para programar la EPROM, el nombre de el archivo es ‘archseno.m’. t=0:0.00392:1; x=sin(2*pi*t); Alipso.com - http://www.alipso.com Página 18/132 Diseño y montaje de un generador de funciones x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\seno.bin','w'); fprintf(tmp,'%c',x); fclose('all'); Se creara el archivo de la misma manera que en la onda coseno. Alipso.com - http://www.alipso.com Página 19/132 Diseño y montaje de un generador de funciones ONDA CUADRADA Esta onda posee también cinco archivos como las demás, el archivo que genera los valores decimales as algo distinto a los demás. El primer archivo es la creación de los valores decimales de la onda cuadrada , el archivo recibe el nombre de ‘decicuadra.m’. t=0:0.00392:1; Alipso.com - http://www.alipso.com Página 20/132 Diseño y montaje de un generador de funciones for i=1:256 if t(i)<=0.5 dcua(i)=255; end if t(i)>0.5 dcua(i)=0; end end [dcua'] La creación de los valores de la onda cuadrada se resume en una función a trozos los cuales dan valor alto hasta la mitad del periodo y bajo desde la mitad hasta la final. El segundo archivo es el que genera los valores hexadecimales, aquí ya vuelve a ser como en los casos anteriores, el nombre del archivo es ‘hexacuadra.m’. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 r(i)=0; end Alipso.com - http://www.alipso.com Página 21/132 Diseño y montaje de un generador de funciones end h=dec2hex(r); [h] El tercer archivo crea la matriz de valores hexadecimales, el nombre del archivo es ‘matrizcuadra.m’. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 r(i)=0; end end h=sprintf('%+.02x ',r); Alipso.com - http://www.alipso.com Página 22/132 Diseño y montaje de un generador de funciones c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; CUADRADA(i,p)=h(v); end end CUADRADA En l cuarto archivo llamado ‘grafcuadra.m’ se representa la onda cuadrada. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 r(i)=0; end end Alipso.com - http://www.alipso.com Página 23/132 Diseño y montaje de un generador de funciones plot(t,r) En el quinto archivo se crea el archivo que se manda al programador de EPROM. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 r(i)=0; end end h=sprintf('%+.02x ',r); tmp=fopen('c:\windows\escritorio\memoria\cuadrada.bin','w'); fprintf(tmp,'%c',r); fclose('all'); Alipso.com - http://www.alipso.com Página 24/132 Diseño y montaje de un generador de funciones ONDA TRIANGULAR Como en la onda anterior solo comentaremos la generacin de los valores decimales. En el primer archivo con nombre ‘decitri.m’ se generan los valores decimales de la onda. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; dtri=round(r); Alipso.com - http://www.alipso.com Página 25/132 Diseño y montaje de un generador de funciones [dtri'] Esta fue la onda mas complicada de sacar ya que se divide en cuatro partes, una primera de 0 a 1, luego de 1 a 0, 0 a –1 y de –1 a 0, por lo que se hará una función a trozos de cuatro partes. En el segundo archivo ya volvemos a los casos anteriores, en el se genera el código hexadecimal y recibe el nombre ‘hexatri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); h=dec2hex(r); Alipso.com - http://www.alipso.com Página 26/132 Diseño y montaje de un generador de funciones h En el tercer archivo se genera la matriz de valores, el nombre que recibe este archivo es ‘matriztri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); h=sprintf('%+.02x ',r); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; Alipso.com - http://www.alipso.com Página 27/132 Diseño y montaje de un generador de funciones v=v+1; TRIANGULO(i,p)=h(v); end end TRIANGULO En este archivo se representa la onda, el nombre del archivo es ‘graftri.m’. t=0:0.00392:1; m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); Alipso.com - http://www.alipso.com Página 28/132 Diseño y montaje de un generador de funciones plot (t,r) En el ultimo archivo generamos el archivo para la EPROM, recibe el nombre de ‘archtri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); h=sprintf('%+.02x ',r); tmp=fopen('c:\windows\escritorio\memoria\triangular.bin','w'); fprintf(tmp,'%c',r); fclose('all'); Alipso.com - http://www.alipso.com Página 29/132 Diseño y montaje de un generador de funciones ONDA DIENTE DE SIERRA El primer archivo crea los valores decimales de la onda, el nombre del archivo es ‘decisierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; dsierra=round(r); [dsierra'] En esta onda los valores se recogen multiplicando los valores decreciente que van desde un valor máximo 1 hasta el 0, por 255. El segundo archivo da los valores hexadecimales de la onda, el nombre del archivo es ‘hexasierra.m’. Alipso.com - http://www.alipso.com Página 30/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=dec2hex(r); [h] El tercer archivo nos da la matriz de valores de la onda, el nombre del archivo es ‘matrizsierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=sprintf('%+.02x ',r); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; Alipso.com - http://www.alipso.com Página 31/132 Diseño y montaje de un generador de funciones v=v+1; SIERRA(i,p)=h(v); end end SIERRA El cuarto archivo realiza la representación grafica de la onda diente de sierra, el nombre del archivo es ‘grafsierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); plot(t,r) En el ultimo archivo se genera el archivo de la EPROM. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; Alipso.com - http://www.alipso.com Página 32/132 Diseño y montaje de un generador de funciones r=round(r); h=sprintf('%+.02x ',r); tmp=fopen('c:\windows\escritorio\memoria\sierra.bin','w'); fprintf(tmp,'%c',r); fclose('all'); ONDA EXPONENCIAL El primer archivo nos da los valores decimales de la onda, el nombre del archivo es ‘deciexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; Alipso.com - http://www.alipso.com Página 33/132 Diseño y montaje de un generador de funciones dexpo=round(x); dexpo' En este aplicamos la variable ‘t’ a la formula para poder sacar la onda exponencial. El segundo archivo genera los valores hexadecimales, el nombre del archivo es ‘hexaexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); h=dec2hex(x); h El tercer archivo crea la matriz de valores de la onda, el nombre del archivo es ‘matrizexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); Alipso.com - http://www.alipso.com Página 34/132 Diseño y montaje de un generador de funciones h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; EXPONENCIAL(i,p)=h(v); end end EXPONENCIAL El cuarto archivo representa gráficamente la onda, el nombre del archivo es ‘grafexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); plot(t,x) Alipso.com - http://www.alipso.com Página 35/132 Diseño y montaje de un generador de funciones En el ultimo archivo esta el archivo para la EPROM, el nombre del archivo es ‘archexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\exponencial.bin','w'); fprintf(tmp,'%c',x); fclose('all'); ONDA RECTIFICADA Alipso.com - http://www.alipso.com Página 36/132 Diseño y montaje de un generador de funciones El primer archivo genera los valores de la onda, el nombre del archivo es ‘decirecti.m’. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; drecti=round(y); drecti' En este archivo es una onda senoidal con su parte negativa rectificada , es decir, es el valor absoluto del seno. En el segundo archivo se genera los valores hexadecimales, el nombre del archivo es ‘hexarecti.m’. t=0:0.00392:1; y=sin(pi*t); Alipso.com - http://www.alipso.com Página 37/132 Diseño y montaje de un generador de funciones for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=dec2hex(y); h En el tercer archivo se genera la matriz de valores, el nombre del archivo es ‘matrizrecti.m’. t=0:0.00392:1; Alipso.com - http://www.alipso.com Página 38/132 Diseño y montaje de un generador de funciones y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=sprintf('%+.02x ',y); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; RECTIFICADA(i,p)=h(v); end end RECTIFICADA Alipso.com - http://www.alipso.com Página 39/132 Diseño y montaje de un generador de funciones En el cuarto archivo encontramos la representación grafica, el nombre del archivo es ‘grafrecti.m’. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); plot(t,y) En el ultimo archivo llamado ‘archirecti.h’, generamos el archivo para la EPROM. t=0:0.00392:1; Alipso.com - http://www.alipso.com Página 40/132 Diseño y montaje de un generador de funciones y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=sprintf('%+.02x ',y); tmp=fopen('c:\windows\escritorio\memoria\rectificada.bin','w'); fprintf(tmp,'%c',y); fclose('all'); ONDA MUELA En la onda muela es una mezcla de una onda senoidal y otra cosenoidal. En el primer archivo se genera el codigo decimal. Alipso.com - http://www.alipso.com Página 41/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; dmuela=round(y); [dmuela'] Hemos unido un seno y un coseno, el nombre del archivo es ‘decimuela.m’. En el segundo archivo se genera el codigo hexadecimal, el nombre del archivo es ‘hexamuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=dec2hex(r); h Alipso.com - http://www.alipso.com Página 42/132 Diseño y montaje de un generador de funciones En el tercer archivo se genera la matriz de valores, el nombre del archivo es ‘matrizmuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=sprintf('%+.02x ',r); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; MUELA(i,p)=h(v); end MUELA El cuarto archivo representa gráficamente la onda, el nombre del archivo es ‘grafmuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); Alipso.com - http://www.alipso.com Página 43/132 Diseño y montaje de un generador de funciones y=y+2; y=y*81.602611283561073954313; r=round(y); plot(t,y) En este ultimo archivo se genera el archivo para la EPROM, su nombre es ‘archmuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=dec2hex(r); tmp=fopen('c:\windows\escritorio\memoria\muela.bin','w'); fprintf(tmp,'%c',r); fclose('all'); Alipso.com - http://www.alipso.com Página 44/132 Diseño y montaje de un generador de funciones Una vez hechos todos los archivos procederemos a programar un menú que nos permita entrar fácilmente en cada uno de los programas utilizando los menús y submenús, la estructura de un menú es tal que así: CREACIÓN DE UN MENU O SUBMENU El archivo del menú esta compuesto por cuatro partes: header='TIPOS DE ONDA'; labels=str2mat('COSENO', 'CUADRADA', TOTAL'); 'DIENTES DE SIERRA','EXPONENCIAL' ,'ARCHIVO callbaks=str2mat('mencose','mencuadra','mensierra','menexpo','archtotal'); choices('EXAMPLE',header,labels,callbaks); Una primera que es ‘header’ que es el titulo del menú. Segunda ‘labels’ que son las etiquetas los botones. Tercera ‘callbaks’ que son las llamadas a los archivos. Cuarta ‘choices’ que es la instrucción propia del menú. Alipso.com - http://www.alipso.com Página 45/132 Diseño y montaje de un generador de funciones Un dato importante del menú es que tiene que quedar exactamente en igual posición la etiqueta que la llamada y que no puede haber repetidos dos nombres iguales de ‘choices’. Un menú debe quedar como este: Seguidamente cuando terminemos con todo esto nuestra misión será introducir todos los datos de las matrices en una sola matriz, a esta matriz la hemos llamado ‘TOTAL.bin’. Para hacer esto tuvimos que hacer un nuevo programa que se llamaba ‘archtotal.m’. decicose; decicuadra; deciexpo; decimuela; decirecti; deciseno; decisierra; decitri; total=[dcose dtri dseno dcua dsierra dexpo drecti dmuela]; tmp=fopen('c:\windows\escritorio\memoria\totalg2.bin','w'); fprintf(tmp,'%c',total); fclose('all'); En el ejecutamos todos los programas de generación decimal y las variables las metimos en una única matriz para llevarlo después a el programa EXPRO que es el programador de memora y así conseguir introducir los datos que luego van a ir en la memoria de una sola vez. Alipso.com - http://www.alipso.com Página 46/132 Diseño y montaje de un generador de funciones D.A.C.(Digital-to-Analog Converter) Alipso.com - http://www.alipso.com Página 47/132 Diseño y montaje de un generador de funciones Esta parte del generador de señales va a consistir en lo siguiente: Se trata de recoger los datos que provendrán de la memoria EPROM previamente programada. Estos datos digitales deben ser convertidos en ondas analógicas correspondientes a los valores digitales recogidos. Para convertir estos datos es necesario utilizar un convertidor digital-analogico. Traducción de los puntos mas importantes de las hojas del D.A.C.-08 El D.A.C.-08 es un multiplicador convertidor Digital-Analogico en el que la corriente del rendimiento es el producto de un número digital y la corriente de referencia de entrada. La corriente de la referencia puede fijarse o estar comprendida entre casi 0 a +4.0mA.La corriente del rendimiento máxima es una función lineal de la referencia actual y es dado por: IFR=255/256*IREF, donde IREF=I14 En aplicaciones de trabajo en referencias positivas, un voltaje de referencia positivo externo fuerza una corriente a través R14 en el VREF(+) el término (pin 14) del amplificador de la referencia. Alternativamente, una referencia negativa debe aplicarse a VREF (-) a pin 15;la corriente de referencia fluye a masa a través de R14 en VREF(+) como en el caso de la referencia positiva. Esta conexión de referencia de negativo tiene la ventaja de una impedancia muy alta presentada en pin 15: El voltaje en pin 14 es igual en pista a el voltaje en pin 15 debido a la alta ganancia del amplificador de la referencia interior: R15 (nominalmente igual a R14) se usa para evitar posibles errores, pueden eliminarse R15 con sólo un aumento menor en error. Las referencias bipolares pueden ser acomodadas compensando VREF o pueden fijarse en el pin 15. El rango del común-modo negativo del amplificador de la referencia se da por: VCM-=V-plus(IREF*1K)plus 2.5V. El rango del común-modo positivo en V+ menos 1.5V. Cuando una referencia de DC se usa, se recomienda un condensador de desviación de intensidad referencia. Un 5.0V TTL lógica suministrado no se recomienda como una referencia. Si un suministro de poder regulado se usa como una referencia, deben dividir R14 en dos resistencias con la unión desviada o conectada con masa a través de un condensador de 0.1uF . Para la mayoría de las aplicaciones la relación ligera entre IREF y IFS eliminará la necesidad por arreglar IREF. Si requirió, los hartura-balanza arreglando pueden ser logrados ajustando el valor de R14, o usando un potenciómetro para R14. Un método mejorado de adorno máximo que elimina potenciómetro T.C. se muestran efectos en el circuito de ajuste máximo recomendado. Los valores más bajos usando de corriente de la referencia reducen el suministro de poder negativo actual y amplificador de referencia de aumentos el rango del común-modo negativo. El rango recomendado para el funcionamiento con una DC referencia corriente es +0.2mA a +4.0mA. Alipso.com - http://www.alipso.com Página 48/132 Diseño y montaje de un generador de funciones Una vez ya conocidos los datos del D.A.C ya podemos disponernos a montarlo, el montaje que vamos a realizar es el siguiente: Vamos a alimentar el D.A.C. con 5V por lo que las resistencias Ref. que van a las patillas 14 y 15 serán de alrededor de 2.2K para conseguir una intensidad de entrada de alrededor de 2mA.. Los condensadores utilizado serán de 0.1 uF los que van a las patillas 3 y 13 y de 0.01uF para el que va a la 3 y 16.La tensión de V+ y V- sera de unos 12V aprovechando las salidas del entrenador. Al ser un D.A.C. de intensidad habrá que colocar una resistencia a la salida, el valor de esta será aproximadamente del mismo valor de las que hemos puesto en la entrada. El D.A.C. fue uno de los componentes que mas guerra nos dio hasta que pudimos arrancarlo. Alipso.com - http://www.alipso.com Página 49/132 Diseño y montaje de un generador de funciones LA MEMORIA EPROM La memoria es una memoria de la familia CMOS de 32K, además de que se puede programar las veces Alipso.com - http://www.alipso.com Página 50/132 Diseño y montaje de un generador de funciones que se quiera debido a que es una EPROM, lo que mas destaca de esta memoria es una ventanita que tiene que es por donde se borra. Lo primero que se debe de hacer es borrar la memoria, para esto se meterá en un aparato especial durante 25 minutos expuesto a la luz ultravioleta, una vez hecho esto se saca la memoria y se tapa su ventana con papel de plata para evitar que le de la luz debido a que son muy sensibles y si le diera la luz del sol se podría borrar toda la información. Una vez hecho todo lo anterior se debe de colocar la memoria en un periférico conectado al puerto paralelo que sirve para programarla; con el programa se lee la memoria para ver que esta totalmente vacía y asegurarse de que no hay ningún error. Una vez hecho esto se cargan las ondas y se colocan en las direcciones de memoria que elijas, en este caso hemos optado por: Tipo de Onda Dirección de Inicio Dirección de Fin Onda Cuadrada 0x0000 0x00FF Onda Senoidal 0x0100 0x01FF Alipso.com - http://www.alipso.com Página 51/132 Diseño y montaje de un generador de funciones Onda Dientes de Sierra 0x0200 0x02FF Onda Exponencial 0x0300 0x03FF Onda Coseno 0x0400 0x04FF Onda Muela 0x0500 0x05FF Onda Triangular 0x0600 0x06FF Onda Rectificada 0x0700 0x07FF Alipso.com - http://www.alipso.com Página 52/132 Diseño y montaje de un generador de funciones Para poder ir cambiando de tipo de onda vamos a tener que montar un nuevo contador, aparte del 74LM393 que mas adelante comentaremos, para ello utilizaremos un 74LS190 con un pulsador. El 74LS393 rastreara todas las direcciones de memora dentro de un periodo y el 74LS190 rastreara el tipo de onda que queramos ver. Para el montaje de La CMOS, primero se debe de alimentar el Chip a Vcc= 5V y a GND, Vpp=Vcc, debido a que solo vamos a leer G y E a masa como indica la tabla unir las salidas del contador a las entradas de la memoria y los bits de ampliación a A8, A9 y A10 y las demás entradas a masa, las salidas DQ deben de ir al DAC. Alipso.com - http://www.alipso.com Página 53/132 Diseño y montaje de un generador de funciones EL AMPLIFICADOR OPERACIONAL El amplificador operacional es un dispositivo lineal de propósito general el cual tiene capacidad de manejo de señal desde f=0 Hz hasta una frecuencia definida por el fabricante; tiene además limites de señal que van desde el orden de los nV, hasta unas docenas de voltio (especificación también definida por el fabricante). Los amplificadores operacionales caracterizan por su entrada diferencial y una ganancia muy alta, generalmente mayor que 105 equivalentes a 100 dB. El A.O. es un amplificador de alta ganancia directamente acoplado, que en general se alimenta con fuentes positivas y negativas, la cual permite que tenga excursiones tanto por arriba como por debajo tierra (o el punto de referencia que se considere). El nombre de amplificador operacional proviene de una de las utilidades básicas de este, como lo son realizar operaciones matemáticas en computadores análogos. DEFINICIÓN DE AMPLIFICADOR OPERACIONAL. Un “amp op” es un amplificador diferencial que puede ser modelado por el circuito de dos puertas que aparece en la siguiente figura (1). Lo que lo caracteriza como un amplificador operacional es su elevada ganancia de voltaje una A de 100000 o superior. Por lo tanto, sólo se requieren aproximadamente 50 mV en vi para producir v0 = 5 V. Figura No. 1 En la figura (2) aparece el símbolo correspondiente a un amplificador operacional. A diferencia del modelo, el amplificador operacional no está en realidad conectado a tierra. Sin embargo, sí está conectado a una fuente de voltaje positivo y negativo, estableciendo en efecto una “tierra” aproximadamente a mitad entre los suministros. Estos son típicamente de +15 V y –15 V, puro pueden ser de +5 V y –5V. Los terminales Alipso.com - http://www.alipso.com Página 54/132 Diseño y montaje de un generador de funciones “más” y “menos” a la entrada del amplificador operacional indican la polaridad de vi que hace positivo a v0. Figura No. 2 Las conexiones de la fuente de energía con frecuencia no aparecen en los símbolos de los amplificadores operacionales. Los voltajes exactos de funcionamiento no son importantes para la operación de los amplificadores operacionales, en tanto el voltaje de señal no exceda de los suministrados. Un amplificador operacional ideal tendría ganancia infinita y ninguna corriente de entrada, y la salida v0 no sería afectada por ninguna carga. Estas propiedades pueden resumirse como A = ¥, Rentr.= ¥, Rsal..= 0 Un “amp op” ideal tiene otras propiedades, tales como un ancho de banda infinito, un intervalo de voltajes infinito a la entrada y la salida. Pero la propiedad más importante para simplificar las ideas de diseño es A = ¥. En la práctica esto no puede lograrse, pero el análisis basado en un modelo con ganancia infinita conduce a un acuerdo excelente en cuanto a la actuación real en la mayoría de los casos. El Amplificador Operacional ideal se caracteriza por: 1. Resistencia de entrada, (Ren), tiende a infinito. 2. Resistencia de salida, (Ro), tiende a cero. 3. Ganancia de tensión de lazo abierto, (A), tiende a infinito. 4. Ancho de banda (BW), tiende a infinito. 5. Vo = 0, cuando V+ = V-, Ya que la resistencia de entrada, Ren, es infinita, la corriente en cada entrada , inversora y no inversora, es cero. Además el hecho de que la ganancia de lazo abierto sea infinita hace que la tensión entre las dos terminales sea cero, como es muestra a continuación: V+ - V- = Vo A V+ - V- = 0 Alipso.com - http://www.alipso.com Página 55/132 Diseño y montaje de un generador de funciones V+ = V- CONFIGURACIÓN BÁSICA DE UN SUMADOR SEGÚN UN AMPLIFICADOR OPERACIONAL. Es probable que el más útil de los circuitos de “amp-op” utilizados en computadoras analógicas sea el circuito amplificador sumador. La figura (3) muestra un circuito sumador de tres entradas, el cual brinda un medio para sumar (añadir) algebraicamente voltajes de tres entradas, cada uno multiplicado por un factor de ganancia constante. Figura No. 3 Amplificador Sumador Si se utiliza el circuito equivalente virtual, el voltaje de salida puede expresarse en términos de entrada como: Vo = (Rf/R1)V1 + (RF/R2)V2 + (Rf/R3)V3 En otras palabras, cada entrada añade un voltaje a la salida conforme se obtiene de un circuito de ganancia constante inversor. Si se emplean más entradas, ellas añaden componentes adicionales a la salida. Un ejemplo del amplificador sumador es el circuito que aparece en la figura (4). Figura No. 4 Alipso.com - http://www.alipso.com Página 56/132 Diseño y montaje de un generador de funciones Este circuito puede usarse para combinar o mezclar señales de audio. Las fuentes V1, V2 y V3 determinan las corrientes i1,i2 e i3 a través de sus respectivas resistencias a tierra (se trata de una tierra “virtual” establecida por el corto virtual del amp-op). Cada corriente es proporcional a su correspondiente voltaje, por ejemplo, i1 = V1/(1KW). Aplicando la LKC, la corriente i4 que pasa por el resistor de realimentación de 3KW es la suma de estas corrientes: I4 = i1 + i2 + i3 = (V1 + V2 + V3)/1KW. 555 Pero Vo = 3KW * i4. Por lo tanto, Vo = -3 (V1 + V2 + V3). El voltaje de salida es la suma de los voltajes de entrada a los que se agrega alguna ganancia. EL AMPLIFICADOR OPERACONAL EN NUESTRO PROYECTO El amplificador operacional en nuestro proyecto va a ser la pieza ultima, su salida va a ir al osciloscopio y es donde vamos a poder regular el offset y la amplitud. Para el control del offset vamos a utilizar el montaje que acabamos de comentar, es decir, en configuración como sumador, y mediante su realimentación lo usaremos para variar la amplitud. A la salida del D.A.C. como anteriormente dijimos hemos colocado una resistencia ya que el D.A.C.-08 es un conversor de intensidad, con eso transformaremos la intensidad en voltaje ya que la impedancia de entrada de un operacional se considera infinita. El montaje utilizado se puede observar en la figura. Alipso.com - http://www.alipso.com Página 57/132 Diseño y montaje de un generador de funciones LA CIRCUITERIA EXTERNA 555 MONTADO COMO ASTABLE PARA GENERAR LA FRECUENCIA FUNCIONAMIENTO DEL 555: Alipso.com - http://www.alipso.com Página 58/132 Diseño y montaje de un generador de funciones La tensión de funcionamiento del 555 va de 5V a 20V. Interiormente, en la patilla 8 va conectado un divisor de tensión mediante 3 resistencias. La patilla 6 es una de las importantes, sale del comparador superior y cuando la tensión de referencia, en la patilla 6, sea mayor a dos tercios de Vcc, entonces este comienza a funcionar llegando al flip flop y sacando un uno, donde llega a un transistor que en este momento actúa como un interruptor cerrado y también llega a la salida invirtiendo esta señal que entra y transformándola en 0. La patilla 5 es la entrada negativa del comparador superior. La patilla 2 es la entrada negativa del comparador inferior, cuando este tiene una tensión de referencia inferior a un tercio de Vcc, entonces el comparador inferior empieza a funcionar, dando un impulso al flip flop saliendo de el un 0, entonces llega al transistor que al no llegar tensión a la base de este, funciona como interruptor cerrado, y llegando a la salida que invirtiéndolo saca un 1 ósea vcc. La patilla 1 va directamente a masa. La patilla 7 es la de descarga del condensador. La patilla 3 es la salida. La patilla 4 es el reset. La patilla 8 es +VCC. ESQUEMA INTERNO DEL 555: FUNCIONAMIENTO MULTIVIBRADOR ASTABLE CON EL 555: Este circuito tiene dos estados estables en la salida: +Vcc y 0v. Consta de dos entradas y una sola entrada. Inicialmente tenemos el circuito con la salida en nivel bajo, si pulsamos P1 enviamos un impulso al comparador inferior este impulso hará bajar la tensión de referencia que tiene este comparador a menos tensión de 1/3de +Vcc Alipso.com - http://www.alipso.com Página 59/132 Diseño y montaje de un generador de funciones enviando este comparador un impulso al flip flop, que nos sacara un 0 que la salida nos invertirá teniendo +Vcc en la patilla 3 o salida del 555, se quedara en este estado indefinidamente hasta que pulsemos P2, en este momento enviamos un impulso al comparador superior, este impulso es mayor que la tensión de referencia de dicho comparador o sea mayor de 2/3 de +Vcc entonces el flip flop se cambiara de estado dando un uno que la salida nos invertirá sacando el circuito 0v, quedando en este estado indefinidamente hasta que volvamos a pulsar P1 volviendo a repetirse el proceso anterior. R1 va conectada de +Vcc al comparador inferior así lo mantiene a mas tensión de 1/3 de +Vcc y cuando pulsamos P1 que esta conectado entre el comparador inferior y masa hacemos que dicho comparador tenga 0v de esta manera se conectara el comparador inferior. R2 esta conectada al comparador superior y a masa manteniendo así el comparador con menos tensión de +Vcc permaneciendo así desactivado, y cuando pulsamos P2, se activa por que P2 esta conectado a +Vcc lo que provoca que se supere la tensión de referencia a mas de 2/3 de +Vcc y enviara un impulso al flip flop. ESQUEMA DEL MULTIVIBRADOR ASTABLE CON EL 555: Es aquí en el 555 donde vamos a poder regular la frecuencia, para ello hemos de colocar un potenciómetro en la resistencia que ataca al condensador de carga y descarga. Así cuando variemos el potenciómetro aumentaremos o disminuiremos la frecuencia. CONTADORES 74LS393 y 74LS190 Nosotros hemos diseñado dos contadores, uno que contara desde 00 hasta FF para que pasara por todas las direcciones de memoria de un periodo y otro para poder seleccionar entre las ocho ondas de que disponemos, el reloj de este ultimo es un pulsador. El contador 74LS493 es un contador doble de cuatro bits por lo que era muy apropiado para nuestro proyecto ya que era fácilmente expansionable y nos ahorrábamos posibles fallos de concordancia entre varios chips, por ejemplo si huyéramos utilizado el 74LS90 hubiéramos necesitado al menos dos chips distintos y posiblemente hubiéramos tenido problemas. La expansión de este chip es sencilla basta con llevar la salida Alipso.com - http://www.alipso.com Página 60/132 Diseño y montaje de un generador de funciones 1QD a la entrada de reloj del otro contador. Este contador tendrá a la entrada del reloj 1 los pulsos que de el 555 por lo que según sea la frecuencia del 555 así será la frecuencia del contador. A continuación se adjunta la tabla de la verdad y el montaje. Inputs | Output ------------------------CLR CLK | Qd Qc Qb Qa -------------------------1 X | 0 0 0 0 0 POS | Count 0 POS | Count El otro contador utilizado es el 74LS190 con entrada de reloj de un pulsador. Explicando el proceso desde el pulsador, aplicamos un pulsador con un condensador y una resistencia para absorber el ruido, además seguidamente este le llevamos a un 74LS14 que es una puerta inversora THRIGER SHMICH con lo cual el ruido esta ya casi anulado y la salida de este la llevamos a el reloj del 74LM190. Este le pusimos que reseteara cuando llegué a 7 así podíamos ir pasando por todas las direcciones de memoria ya que estas tres patillas van a las entradas 8,9,10 de la memoria. Para hacer el reset como en la evaluación anterior utilizaremos el LOAD. A continuacion adjuntamos el patillaje y el montaje. CTEN | D/U | CLK | LOAD | A B C D | QA QB QC QD MAX/MIN RCO Alipso.com - http://www.alipso.com Página 61/132 Diseño y montaje de un generador de funciones ---------|------|--------|----------|------------|------------------------------------0 | X | X | 0 |XXXX|A B C D 1* 2 * 0 | 1 | POS | 1 | X X X X | Count Down 1* 2 * 0 | 0 | POS | 1 | X X X X | Count Up 1* 2 * 1 | X |X | X | X X X X | Qa0 Qb0 Qc0 Qd0 1* * Alipso.com - http://www.alipso.com Página 62/132 2 Diseño y montaje de un generador de funciones MATERIAL UTILIZADO 1. Memoria EPROM-----------------------------1 Unidad. 2. LM 555-----------------------------------------1 Unidad. 3. 74LS190----------------------------------------1 Unidad. 4. 74LS393----------------------------------------1 Unidad. 5. 74LS14------------------------------------------1Unidad. 6. D.A.C.-08---------------------------------------1Unidad. Alipso.com - http://www.alipso.com Página 63/132 Diseño y montaje de un generador de funciones 7. Operacional LM741---------------------------1 Unidad. 8. Potenciometros de 220K,22K,10K----------3 Unidades. 9. Condensadores de 0.1uF,0.1uF,0.01uF-----6Unidades. 10. Resistencias de 2.2K,5.6K,1K---------------6Unidades. 11. Pulsador-----------------------------------------1Unidad. Alipso.com - http://www.alipso.com Página 64/132 Diseño y montaje de un generador de funciones PRESUPUESTO DE LA PRACTICA PIEZA CANTIDAD PRECIO UNIDAD PRECIO TOTAL Memoria EPROM 1 4634 4634 LM555 1 94 94 74LS190 1 Alipso.com - http://www.alipso.com Página 65/132 Diseño y montaje de un generador de funciones 174 174 74LS14 1 95 95 74LS393 1 194 194 D.A.C. -08 1 2984 2984 LM741 1 266 266 Potenciomeros 3 122 366 Condensadores 6 50 Alipso.com - http://www.alipso.com Página 66/132 Diseño y montaje de un generador de funciones 300 Resistencias 6 15 90 Pulsador 1 71 71 TOTAL 9268 "} TEMA INDICE PAGINA · INDICE ............................................................. Pág. 1. · OBJETIVO DE LA PRACTICA ...................... Pág. 2. · DIAGRAMA DE BLOQUES............................ Pág. 3. · DESARROLLO DE LA PRACTICA................ pag 4. · MATLAB 5.1 .................................................... Pág. 5. · D.A.C.(Digital-to-Analog Converter)................ Pág. 30. Alipso.com - http://www.alipso.com Página 67/132 Diseño y montaje de un generador de funciones · MEMORIA EPROM.......................................... Pág. 33. · AMPLIFICADOR OPERACIONAL................. Pág. 35. · CIRCUITERIA EXTERNA .............................. Pág. 41. · MATERIAL UTILIZADO................................. Pág. 46. · PRESUPUESTO DE LA PRACTICA............... Pag. 47. Alipso.com - http://www.alipso.com Página 68/132 Diseño y montaje de un generador de funciones OBJETIVO DE LA PRACTICA El objetivo de la práctica es diseñar y montar un generador de funciones. Dicho generador nos debe proporcionar las siguientes funciones: · Ser variable en frecuencia, la cual debe ser la máxima que podamos sin que afecte a la onda, alrededor de 15 KHz. · Ser variable en amplitud, intentando conseguir el valor máximo de pico a pico, también como la anterior sin que ofrezca ninguna deformación a la onda · Ser variable en offset, debe desplazar la onda lo máximo posible hasta el valor de saturación. · Debe representar cuatro tipos diferentes de onda( En nuestro caso representaremos ocho tipos diferentes por petición expresa del profesor) las cuales son: Alipso.com - http://www.alipso.com Página 69/132 Diseño y montaje de un generador de funciones 1. Onda Coseno. 2. Onda Cuadrada. 3. Onda Diente de sierra. 4. Onda Exponencial 5. Onda Senoidal. 6. Onda Rectificada. 7. Onda Triangular. 8. Onda Muela (Es una suma de seno y coseno). DIAGRAMA DE BLOQUES Alipso.com - http://www.alipso.com Página 70/132 Diseño y montaje de un generador de funciones 555 PULSADOR CONTADOR 74393 INVERSOR TRIGGER 74LS14 MEMORIA EPROM SG 27C256/B CONTADOR 74LS190 D.A.C 08-1 AMPLIFICADOR OPERACIONAL LM741 OSCILOSCOPIO Alipso.com - http://www.alipso.com Página 71/132 Diseño y montaje de un generador de funciones DESARROLLO DE LA PRACTICA El desarrollo de la practica se va a dividir en cinco grandes bloques: 1. El primero lo compone el programa matemático de ordenador MATLAB, un potente programa de matemáticas capaz de cualquier cosa y muy fácilmente programable. 2. El segundo lo compone el D.A.C.(Digital To Analog Converter) convertidor digital a analógico en cristiano. 3. El tercero lo compone la memoria EPROM y su programador EXPRO. 4. El cuarto bloque lo compone el amplificador operacional. 5. El quinto bloque lo compone la circuiteria que mueve todo esto como son contadores, 555 en su modo astable, pulsador, etc... Alipso.com - http://www.alipso.com Página 72/132 Diseño y montaje de un generador de funciones 1.BLOQUE MATLAB 5.1 El primer bloque lo compone el MATLAB. La versión que hemos utilizado nosotros es la MATLAB 5.1, ya que era la mas actualizada que disponíamos, en el instituto era el MATLAB 4.0, y lo mas importante, que corregía un error que en un principio nos tenia locos a todos referente a la representación de los números hexadecimales. Al principio del prototipo comenzamos utilizando el programa MATLAB 4.0 con el que las cosas empezaron bastante bien hasta que llego el momento de pasar los valores decimales a hexadecimales, aquí el MATLAB 4.0 no hacia bien dos operaciones, una primera, no colocaba un ‘0’ delante de los valores hexadecimales donde los cuatro bits mas significativos estaban a nivel bajo ‘0’, es decir, que en vez de marcarte 01 en hexadecimal que es el 1 en decimal te marcaba 1en hexadecimal, este problema tenia mayor importancia cuando al sacar la cadena de todos los valores en hexadecimal de una onda los sacaba uno detrás de otro sin dejar espacio por lo que era casi imposible saber que valores eran los que interesaban y no se podían meter en una matriz ya que cada valor estaba compuesta por dos bits por lo que el programa nos daba error al generar la matriz de valores, por esas razones nos cambiamos al MATLAB 5.1 . Alipso.com - http://www.alipso.com Página 73/132 Diseño y montaje de un generador de funciones Ahora con el MATLAB 5.1 el problema de los valores hexadecimales estaba resuelto, aunque nosotros ya habíamos sacado la forma de operar con los valores del MATLAB 4.0 continuamos con el MATLAB 5.0, y ya comenzábamos a sacar los valores de las ondas. Otra aplicación también muy interesante de este otro programa era la opción de un asistente para generar programas de no mucha aplicación pero que mejoraba bastante la presentación. COMENZANDO A OPERAR. Lo primero será crear los archivos correspondientes a cada onda, estos están hechos en bloc de notas pero poniéndoles la extensión *.m el programa los reconocerá y los ejecutara, seguidamente se programara un menú con unos submenús que nos mostraran fácilmente todos los datos de cada onda. La programación del menú la realizaremos mas adelante, ahora comenzaremos con los programas de las ondas. ONDA COSENO Para cada tipo de onda tendremos que hacer cinco programas: 1. Valores decimales de la onda. 2. Valores hexadedimales de la onda. 3. Matriz de valores. 4. Grafica de la onda. 5. Creación de archivo con los valores de la matriz. Comenzaremos con el programa primero, generación de los valores decimales de la onda cosenoidal, para lo Alipso.com - http://www.alipso.com Página 74/132 Diseño y montaje de un generador de funciones que utilizaremos el siguiente programa, luego explicaremos que la función de cada línea. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; dcose=round(x); [dcose'] Este programa que recibe el nombre de ‘decicose.m’ nos genera los valores decimales de la onda coseno, su desarrollo es sencillo. En la primera línea de programa lo que hacemos es dividir 1 en 256 partes iguales ya que van a ser el numero de valores que vamos a poder introducir en la memoria, estos van a representar un periodo de la onda y se van a almacenar los valores en una variable llamada ‘t’. En la segunda línea de comando almacenamos en la variable ‘x’ los valores del coseno en cada una de las 256 posiciones del periodo. En la tercera operamos la amplitud, la amplitud del coseno es de ‘1’ a ‘–1’ pero al estar trabajando con números hexadecimales esta amplitud la tendremos que dividir en 256 valores dando así una correspondencia de que a ‘1’ le corresponde el 255 y a ‘-1’ el 0, para ello utilizamos esta línea de comando y la siguiente. Ahora tenemos en números decimales la onda coseno dividida en 256 partes en tiempo y amplitud, lo siguiente es redondear los números decimales ya que un numero con decimales no se puede pasar a hexadecimal, para ello se utiliza la quinta línea de comando con la orden round(var) . La ultima línea de comando lo que hace es representar los valores de una manera ordenada por pantalla. t=0:0.00392:1; x=cos(2*pi*t); Alipso.com - http://www.alipso.com Página 75/132 Diseño y montaje de un generador de funciones x=x*127.5; x=x+127.5; x=round(x); h=dec2hex(x); [h] El segundo programa es el que genera los valores hexadecimales y recibe el nombre de ‘hexacose.m’. En este programa lo único que hacemos es añadir una nueva línea de comando, la sexta, en esta línea lo que hacemos es transformar los valores decimales redondeados en valores hexadecimales a través de la instrucción ‘dec2hex(var)’ y luego se representan por pantalla. En el tercer programa se genera la matriz de dimensiones 16x16 que mas tarde será enviada al programador de EPROM, este programa responde al nombre de ‘matrizcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 Alipso.com - http://www.alipso.com Página 76/132 Diseño y montaje de un generador de funciones p=0; for j=1:48 p=p+1; v=v+1; COSENO(i,p)=h(v); end end COSENO Aquí hasta la sexta línea es como en el programa de generar los valores decimales, luego usamos la sentencia ‘sprintf(‘%+.02 ‘,x)’ que nos transformara en hexadecimal los valores decimales y además nos dejara un espacio blanco entre cada numero hexadecimal. Las dos siguientes líneas son dos variables de contador para generar la matriz, el resto del programa es un bucle que va colocando bit a bit los números hexadecimales de la forma que deseamos. El cuarto programa tiene como función representar la onda con los valores decimales, el nombre que recibe este archivo es ‘grafcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); plot(t,x) Alipso.com - http://www.alipso.com Página 77/132 Diseño y montaje de un generador de funciones En este programa se representa la onda coseno con una amplitud de 256 y un periodo de 1 pero dividido en 256 valores. El programa vuelve a ser igual que el que genera los valores decimales pero añadiendo una nueva línea que hace la representación, la sentencia que lo realiza es ‘plot(t,x)’ El quinto programa lo que hace es transformar los valores para poder mandarlos al programador de EPROM y crea un archivo, el nombre del programa es ‘archcose.m’. t=0:0.00392:1; x=cos(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\coseno.bin','w'); fprintf(tmp,'%c',x); fclose('all'); Aquí otra vez comienza como el primer archivo, en la séptima línea se abre el archivo con el comando ‘tmp=fopen(‘ruta’,’w’)’ y en la siguiente línea se transforma el hexadecimal en código ASCID. En la ultima se cierra el archivo. Alipso.com - http://www.alipso.com Página 78/132 Diseño y montaje de un generador de funciones Alipso.com - http://www.alipso.com Página 79/132 Diseño y montaje de un generador de funciones ONDA SENO Como hemos dicho anteriormente se compone de cinco archivos cada onda, ahora iremos un poco mas rápido ya que casi todos los programas son similares, el único que puede variar un poco es el de generar los valores decimales. El primer archivo crea los valores decimales de la onda seno, que recibe el nombre de ‘deciseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; Alipso.com - http://www.alipso.com Página 80/132 Diseño y montaje de un generador de funciones x=x+127.5; dseno=round(x); [dseno'] Este archivo carece de explicación ya que es igual que el de la onda coseno. El segundo archivo genera los números hexadecimales de la onda seno, que recibe el nombre de ‘hexaseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=dec2hex(x); [h] Alipso.com - http://www.alipso.com Página 81/132 Diseño y montaje de un generador de funciones El tercer archivo genera la matriz de valores de la onda senoidal, que recibe el nombre de ‘matrizseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; SENO(i,p)=h(v); Alipso.com - http://www.alipso.com Página 82/132 Diseño y montaje de un generador de funciones end end SENO El cuarto archivo nos crea la representación grafica de la onda seno. Este archivo posee el nombre de ‘grafseno.m’. t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); plot(t,x) El quinto archivo creara el archivo para programar la EPROM, el nombre de el archivo es ‘archseno.m’. Alipso.com - http://www.alipso.com Página 83/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; x=sin(2*pi*t); x=x*127.5; x=x+127.5; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\seno.bin','w'); fprintf(tmp,'%c',x); fclose('all'); Se creara el archivo de la misma manera que en la onda coseno. Alipso.com - http://www.alipso.com Página 84/132 Diseño y montaje de un generador de funciones ONDA CUADRADA Esta onda posee también cinco archivos como las demás, el archivo que genera los valores decimales as algo distinto a los demás. El primer archivo es la creación de los valores decimales de la onda cuadrada , el archivo recibe el Alipso.com - http://www.alipso.com Página 85/132 Diseño y montaje de un generador de funciones nombre de ‘decicuadra.m’. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 dcua(i)=255; end if t(i)>0.5 dcua(i)=0; end end [dcua'] La creación de los valores de la onda cuadrada se resume en una función a trozos los cuales dan valor alto hasta la mitad del periodo y bajo desde la mitad hasta la final. El segundo archivo es el que genera los valores hexadecimales, aquí ya vuelve a ser como en los casos anteriores, el nombre del archivo es ‘hexacuadra.m’. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; Alipso.com - http://www.alipso.com Página 86/132 Diseño y montaje de un generador de funciones end if t(i)>0.5 r(i)=0; end end h=dec2hex(r); [h] El tercer archivo crea la matriz de valores hexadecimales, el nombre del archivo es ‘matrizcuadra.m’. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 Alipso.com - http://www.alipso.com Página 87/132 Diseño y montaje de un generador de funciones r(i)=0; end end h=sprintf('%+.02x ',r); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; CUADRADA(i,p)=h(v); end end CUADRADA En l cuarto archivo llamado ‘grafcuadra.m’ se representa la onda cuadrada. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end Alipso.com - http://www.alipso.com Página 88/132 Diseño y montaje de un generador de funciones if t(i)>0.5 r(i)=0; end end plot(t,r) En el quinto archivo se crea el archivo que se manda al programador de EPROM. t=0:0.00392:1; for i=1:256 if t(i)<=0.5 r(i)=255; end if t(i)>0.5 r(i)=0; end end h=sprintf('%+.02x ',r); tmp=fopen('c:\windows\escritorio\memoria\cuadrada.bin','w'); fprintf(tmp,'%c',r); fclose('all'); Alipso.com - http://www.alipso.com Página 89/132 Diseño y montaje de un generador de funciones ONDA TRIANGULAR Como en la onda anterior solo comentaremos la generacin de los valores decimales. En el primer archivo con nombre ‘decitri.m’ se generan los valores decimales de la onda. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); Alipso.com - http://www.alipso.com Página 90/132 Diseño y montaje de un generador de funciones r(i+192)=m(i); end r=r*127.5; dtri=round(r); [dtri'] Esta fue la onda mas complicada de sacar ya que se divide en cuatro partes, una primera de 0 a 1, luego de 1 a 0, 0 a –1 y de –1 a 0, por lo que se hará una función a trozos de cuatro partes. En el segundo archivo ya volvemos a los casos anteriores, en el se genera el código hexadecimal y recibe el nombre ‘hexatri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); Alipso.com - http://www.alipso.com Página 91/132 Diseño y montaje de un generador de funciones end r=r*127.5; r=round(r); h=dec2hex(r); h En el tercer archivo se genera la matriz de valores, el nombre que recibe este archivo es ‘matriztri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); h=sprintf('%+.02x ',r); c=0:16:240; v=0; Alipso.com - http://www.alipso.com Página 92/132 Diseño y montaje de un generador de funciones for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; TRIANGULO(i,p)=h(v); end end TRIANGULO En este archivo se representa la onda, el nombre del archivo es ‘graftri.m’. t=0:0.00392:1; m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); Alipso.com - http://www.alipso.com Página 93/132 Diseño y montaje de un generador de funciones r(i+192)=m(i); end r=r*127.5; r=round(r); plot (t,r) En el ultimo archivo generamos el archivo para la EPROM, recibe el nombre de ‘archtri.m’. m=0:0.015873:1; n=1:-0.015873:0; k=2:-0.015873:1; l=1:0.015873:2; for i=1:64 r(i)=l(i); r(i+64)=k(i); r(i+128)=n(i); r(i+192)=m(i); end r=r*127.5; r=round(r); h=sprintf('%+.02x ',r); Alipso.com - http://www.alipso.com Página 94/132 Diseño y montaje de un generador de funciones tmp=fopen('c:\windows\escritorio\memoria\triangular.bin','w'); fprintf(tmp,'%c',r); fclose('all'); ONDA DIENTE DE SIERRA El primer archivo crea los valores decimales de la onda, el nombre del archivo es ‘decisierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; dsierra=round(r); [dsierra'] Alipso.com - http://www.alipso.com Página 95/132 Diseño y montaje de un generador de funciones En esta onda los valores se recogen multiplicando los valores decreciente que van desde un valor máximo 1 hasta el 0, por 255. El segundo archivo da los valores hexadecimales de la onda, el nombre del archivo es ‘hexasierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=dec2hex(r); [h] El tercer archivo nos da la matriz de valores de la onda, el nombre del archivo es ‘matrizsierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=sprintf('%+.02x ',r); c=0:16:240; v=0; Alipso.com - http://www.alipso.com Página 96/132 Diseño y montaje de un generador de funciones for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; SIERRA(i,p)=h(v); end end SIERRA El cuarto archivo realiza la representación grafica de la onda diente de sierra, el nombre del archivo es ‘grafsierra.m’. t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); plot(t,r) En el ultimo archivo se genera el archivo de la EPROM. Alipso.com - http://www.alipso.com Página 97/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=sprintf('%+.02x ',r); tmp=fopen('c:\windows\escritorio\memoria\sierra.bin','w'); fprintf(tmp,'%c',r); fclose('all'); ONDA EXPONENCIAL El primer archivo nos da los valores decimales de la onda, el nombre del archivo es ‘deciexpo.m’. Alipso.com - http://www.alipso.com Página 98/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; dexpo=round(x); dexpo' En este aplicamos la variable ‘t’ a la formula para poder sacar la onda exponencial. El segundo archivo genera los valores hexadecimales, el nombre del archivo es ‘hexaexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); h=dec2hex(x); h El tercer archivo crea la matriz de valores de la onda, el nombre del archivo es ‘matrizexpo.m’. Alipso.com - http://www.alipso.com Página 99/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); h=sprintf('%+.02x ',x); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; EXPONENCIAL(i,p)=h(v); end end EXPONENCIAL El cuarto archivo representa gráficamente la onda, el nombre del archivo es ‘grafexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; Alipso.com - http://www.alipso.com Página 100/132 Diseño y montaje de un generador de funciones x=round(x); plot(t,x) En el ultimo archivo esta el archivo para la EPROM, el nombre del archivo es ‘archexpo.m’. t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; x=round(x); h=sprintf('%+.02x ',x); tmp=fopen('c:\windows\escritorio\memoria\exponencial.bin','w'); fprintf(tmp,'%c',x); fclose('all'); Alipso.com - http://www.alipso.com Página 101/132 Diseño y montaje de un generador de funciones ONDA RECTIFICADA El primer archivo genera los valores de la onda, el nombre del archivo es ‘decirecti.m’. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; drecti=round(y); drecti' En este archivo es una onda senoidal con su parte negativa rectificada , es decir, es el valor absoluto del seno. En el segundo archivo se genera los valores hexadecimales, el nombre del archivo es ‘hexarecti.m’. Alipso.com - http://www.alipso.com Página 102/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=dec2hex(y); h Alipso.com - http://www.alipso.com Página 103/132 Diseño y montaje de un generador de funciones En el tercer archivo se genera la matriz de valores, el nombre del archivo es ‘matrizrecti.m’. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=sprintf('%+.02x ',y); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; RECTIFICADA(i,p)=h(v); end Alipso.com - http://www.alipso.com Página 104/132 Diseño y montaje de un generador de funciones end RECTIFICADA En el cuarto archivo encontramos la representación grafica, el nombre del archivo es ‘grafrecti.m’. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); plot(t,y) Alipso.com - http://www.alipso.com Página 105/132 Diseño y montaje de un generador de funciones En el ultimo archivo llamado ‘archirecti.h’, generamos el archivo para la EPROM. t=0:0.00392:1; y=sin(pi*t); for i=1:256 if y(i)>=0 y(i)=y(i); end if y(i)<0 y(i)=(y(i)*(-1)); end end y=y*255; y=round(y); h=sprintf('%+.02x ',y); tmp=fopen('c:\windows\escritorio\memoria\rectificada.bin','w'); fprintf(tmp,'%c',y); fclose('all'); Alipso.com - http://www.alipso.com Página 106/132 Diseño y montaje de un generador de funciones ONDA MUELA En la onda muela es una mezcla de una onda senoidal y otra cosenoidal. En el primer archivo se genera el codigo decimal. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; dmuela=round(y); [dmuela'] Hemos unido un seno y un coseno, el nombre del archivo es ‘decimuela.m’. En el segundo archivo se genera el codigo hexadecimal, el nombre del archivo es ‘hexamuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=dec2hex(r); Alipso.com - http://www.alipso.com Página 107/132 Diseño y montaje de un generador de funciones h En el tercer archivo se genera la matriz de valores, el nombre del archivo es ‘matrizmuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=sprintf('%+.02x ',r); c=0:16:240; v=0; for i=1:16 p=0; for j=1:48 p=p+1; v=v+1; MUELA(i,p)=h(v); end MUELA El cuarto archivo representa gráficamente la onda, el nombre del archivo es ‘grafmuela.m’. Alipso.com - http://www.alipso.com Página 108/132 Diseño y montaje de un generador de funciones t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.602611283561073954313; r=round(y); plot(t,y) En este ultimo archivo se genera el archivo para la EPROM, su nombre es ‘archmuela.m’. t=0:0.00392:1; y=sin(2*pi*t)+cos(4*pi*t); y=y+2; y=y*81.6026112835610739543665397292713; r=round(y); h=dec2hex(r); tmp=fopen('c:\windows\escritorio\memoria\muela.bin','w'); fprintf(tmp,'%c',r); fclose('all'); Alipso.com - http://www.alipso.com Página 109/132 Diseño y montaje de un generador de funciones Una vez hechos todos los archivos procederemos a programar un menú que nos permita entrar fácilmente en cada uno de los programas utilizando los menús y submenús, la estructura de un menú es tal que así: CREACIÓN DE UN MENU O SUBMENU El archivo del menú esta compuesto por cuatro partes: header='TIPOS DE ONDA'; labels=str2mat('COSENO', 'CUADRADA', TOTAL'); 'DIENTES DE SIERRA','EXPONENCIAL' ,'ARCHIVO callbaks=str2mat('mencose','mencuadra','mensierra','menexpo','archtotal'); choices('EXAMPLE',header,labels,callbaks); Una primera que es ‘header’ que es el titulo del menú. Alipso.com - http://www.alipso.com Página 110/132 Diseño y montaje de un generador de funciones Segunda ‘labels’ que son las etiquetas los botones. Tercera ‘callbaks’ que son las llamadas a los archivos. Cuarta ‘choices’ que es la instrucción propia del menú. Un dato importante del menú es que tiene que quedar exactamente en igual posición la etiqueta que la llamada y que no puede haber repetidos dos nombres iguales de ‘choices’. Un menú debe quedar como este: Seguidamente cuando terminemos con todo esto nuestra misión será introducir todos los datos de las matrices en una sola matriz, a esta matriz la hemos llamado ‘TOTAL.bin’. Para hacer esto tuvimos que hacer un nuevo programa que se llamaba ‘archtotal.m’. decicose; decicuadra; deciexpo; decimuela; decirecti; deciseno; decisierra; decitri; total=[dcose dtri dseno dcua dsierra dexpo drecti dmuela]; tmp=fopen('c:\windows\escritorio\memoria\totalg2.bin','w'); fprintf(tmp,'%c',total); fclose('all'); Alipso.com - http://www.alipso.com Página 111/132 Diseño y montaje de un generador de funciones En el ejecutamos todos los programas de generación decimal y las variables las metimos en una única matriz para llevarlo después a el programa EXPRO que es el programador de memora y así conseguir introducir los datos que luego van a ir en la memoria de una sola vez. Alipso.com - http://www.alipso.com Página 112/132 Diseño y montaje de un generador de funciones D.A.C.(Digital-to-Analog Converter) Esta parte del generador de señales va a consistir en lo siguiente: Se trata de recoger los datos que provendrán de la memoria EPROM previamente programada. Estos datos digitales deben ser convertidos en ondas analógicas correspondientes a los valores digitales recogidos. Para convertir estos datos es necesario utilizar un convertidor digital-analogico. Traducción de los puntos mas importantes de las hojas del D.A.C.-08 El D.A.C.-08 es un multiplicador convertidor Digital-Analogico en el que la corriente del rendimiento es el producto de un número digital y la corriente de referencia de entrada. La corriente de la referencia puede fijarse o estar comprendida entre casi 0 a +4.0mA.La corriente del rendimiento máxima es una función lineal de la referencia actual y es dado por: IFR=255/256*IREF, donde IREF=I14 En aplicaciones de trabajo en referencias positivas, un voltaje de referencia positivo externo fuerza una corriente a través R14 en el VREF(+) el término (pin 14) del amplificador de la referencia. Alternativamente, una referencia negativa debe aplicarse a VREF (-) a pin 15;la corriente de referencia fluye a masa a través de R14 en VREF(+) como en el caso de la referencia positiva. Esta conexión de referencia de negativo tiene la ventaja de una impedancia muy alta presentada en pin 15: El voltaje en pin 14 es igual en pista a el voltaje en pin 15 debido a la alta ganancia del amplificador de la referencia interior: R15 (nominalmente igual a R14) se usa para evitar posibles errores, pueden eliminarse R15 con sólo un aumento menor en error. Las referencias bipolares pueden ser acomodadas compensando VREF o pueden fijarse en el pin 15. El rango del común-modo negativo del amplificador de la referencia se da por: VCM-=V-plus(IREF*1K)plus 2.5V. El rango del común-modo positivo en V+ menos 1.5V. Cuando una referencia de DC se usa, se recomienda un condensador de desviación de intensidad referencia. Un 5.0V TTL lógica suministrado no se recomienda como una referencia. Si un suministro de poder regulado se usa como una referencia, deben dividir R14 en dos resistencias con la unión desviada o conectada con masa a través de un condensador de 0.1uF . Alipso.com - http://www.alipso.com Página 113/132 Diseño y montaje de un generador de funciones Para la mayoría de las aplicaciones la relación ligera entre IREF y IFS eliminará la necesidad por arreglar IREF. Si requirió, los hartura-balanza arreglando pueden ser logrados ajustando el valor de R14, o usando un potenciómetro para R14. Un método mejorado de adorno máximo que elimina potenciómetro T.C. se muestran efectos en el circuito de ajuste máximo recomendado. Los valores más bajos usando de corriente de la referencia reducen el suministro de poder negativo actual y amplificador de referencia de aumentos el rango del común-modo negativo. El rango recomendado para el funcionamiento con una DC referencia corriente es +0.2mA a +4.0mA. Una vez ya conocidos los datos del D.A.C ya podemos disponernos a montarlo, el montaje que vamos a realizar es el siguiente: Vamos a alimentar el D.A.C. con 5V por lo que las resistencias Ref. que van a las patillas 14 y 15 serán de alrededor de 2.2K para conseguir una intensidad de entrada de alrededor de 2mA.. Los condensadores utilizado serán de 0.1 uF los que van a las patillas 3 y 13 y de 0.01uF para el que va a la 3 y 16.La tensión de V+ y V- sera de unos 12V aprovechando las salidas del entrenador. Al ser un D.A.C. de intensidad habrá que colocar una resistencia a la salida, el valor de esta será aproximadamente del mismo valor de las que hemos puesto en la entrada. El D.A.C. fue uno de los componentes que mas guerra nos dio hasta que pudimos arrancarlo. Alipso.com - http://www.alipso.com Página 114/132 Diseño y montaje de un generador de funciones Alipso.com - http://www.alipso.com Página 115/132 Diseño y montaje de un generador de funciones LA MEMORIA EPROM La memoria es una memoria de la familia CMOS de 32K, además de que se puede programar las veces que se quiera debido a que es una EPROM, lo que mas destaca de esta memoria es una ventanita que tiene que es por donde se borra. Lo primero que se debe de hacer es borrar la memoria, para esto se meterá en un aparato especial durante 25 minutos expuesto a la luz ultravioleta, una vez hecho esto se saca la memoria y se tapa su ventana con papel de plata para evitar que le de la luz debido a que son muy sensibles y si le diera la luz del sol se podría borrar toda la información. Una vez hecho todo lo anterior se debe de colocar la memoria en un periférico conectado al puerto paralelo que sirve para programarla; con el programa se lee la memoria para ver que esta totalmente vacía y asegurarse de que no hay ningún error. Una vez hecho esto se cargan las ondas y se colocan en las direcciones de memoria que elijas, en este caso hemos optado por: Tipo de Onda Dirección de Inicio Dirección de Fin Onda Cuadrada 0x0000 0x00FF Alipso.com - http://www.alipso.com Página 116/132 Diseño y montaje de un generador de funciones Onda Senoidal 0x0100 0x01FF Onda Dientes de Sierra 0x0200 0x02FF Onda Exponencial 0x0300 0x03FF Onda Coseno 0x0400 0x04FF Onda Muela 0x0500 0x05FF Onda Triangular 0x0600 0x06FF Onda Rectificada Alipso.com - http://www.alipso.com Página 117/132 Diseño y montaje de un generador de funciones 0x0700 0x07FF Para poder ir cambiando de tipo de onda vamos a tener que montar un nuevo contador, aparte del 74LM393 que mas adelante comentaremos, para ello utilizaremos un 74LS190 con un pulsador. El 74LS393 rastreara todas las direcciones de memora dentro de un periodo y el 74LS190 rastreara el tipo de onda que queramos ver. Para el montaje de La CMOS, primero se debe de alimentar el Chip a Vcc= 5V y a GND, Vpp=Vcc, debido a que solo vamos a leer G y E a masa como indica la tabla unir las salidas del contador a las entradas de la memoria y los bits de ampliación a A8, A9 y A10 y las demás entradas a masa, las salidas DQ deben de ir al DAC. Alipso.com - http://www.alipso.com Página 118/132 Diseño y montaje de un generador de funciones EL AMPLIFICADOR OPERACIONAL El amplificador operacional es un dispositivo lineal de propósito general el cual tiene capacidad de manejo de señal desde f=0 Hz hasta una frecuencia definida por el fabricante; tiene además limites de señal que van desde el orden de los nV, hasta unas docenas de voltio (especificación también definida por el fabricante). Los amplificadores operacionales caracterizan por su entrada diferencial y una ganancia muy alta, generalmente mayor que 105 equivalentes a 100 dB. El A.O. es un amplificador de alta ganancia directamente acoplado, que en general se alimenta con fuentes positivas y negativas, la cual permite que tenga excursiones tanto por arriba como por debajo tierra (o el punto de referencia que se considere). El nombre de amplificador operacional proviene de una de las utilidades básicas de este, como lo son realizar operaciones matemáticas en computadores análogos. DEFINICIÓN DE AMPLIFICADOR OPERACIONAL. Un “amp op” es un amplificador diferencial que puede ser modelado por el circuito de dos puertas que aparece en la siguiente figura (1). Lo que lo caracteriza como un amplificador operacional es su elevada ganancia de voltaje una A de 100000 o superior. Por lo tanto, sólo se requieren aproximadamente 50 mV en vi para producir v0 = 5 V. Figura No. 1 Alipso.com - http://www.alipso.com Página 119/132 Diseño y montaje de un generador de funciones En la figura (2) aparece el símbolo correspondiente a un amplificador operacional. A diferencia del modelo, el amplificador operacional no está en realidad conectado a tierra. Sin embargo, sí está conectado a una fuente de voltaje positivo y negativo, estableciendo en efecto una “tierra” aproximadamente a mitad entre los suministros. Estos son típicamente de +15 V y –15 V, puro pueden ser de +5 V y –5V. Los terminales “más” y “menos” a la entrada del amplificador operacional indican la polaridad de vi que hace positivo a v0. Figura No. 2 Las conexiones de la fuente de energía con frecuencia no aparecen en los símbolos de los amplificadores operacionales. Los voltajes exactos de funcionamiento no son importantes para la operación de los amplificadores operacionales, en tanto el voltaje de señal no exceda de los suministrados. Un amplificador operacional ideal tendría ganancia infinita y ninguna corriente de entrada, y la salida v0 no sería afectada por ninguna carga. Estas propiedades pueden resumirse como A = ¥, Rentr.= ¥, Rsal..= 0 Un “amp op” ideal tiene otras propiedades, tales como un ancho de banda infinito, un intervalo de voltajes infinito a la entrada y la salida. Pero la propiedad más importante para simplificar las ideas de diseño es A = ¥. En la práctica esto no puede lograrse, pero el análisis basado en un modelo con ganancia infinita conduce a un acuerdo excelente en cuanto a la actuación real en la mayoría de los casos. El Amplificador Operacional ideal se caracteriza por: 1. Resistencia de entrada, (Ren), tiende a infinito. 2. Resistencia de salida, (Ro), tiende a cero. 3. Ganancia de tensión de lazo abierto, (A), tiende a infinito. 4. Ancho de banda (BW), tiende a infinito. 5. Vo = 0, cuando V+ = V-, Alipso.com - http://www.alipso.com Página 120/132 Diseño y montaje de un generador de funciones Ya que la resistencia de entrada, Ren, es infinita, la corriente en cada entrada , inversora y no inversora, es cero. Además el hecho de que la ganancia de lazo abierto sea infinita hace que la tensión entre las dos terminales sea cero, como es muestra a continuación: V+ - V- = Vo A V+ - V- = 0 V+ = V- CONFIGURACIÓN BÁSICA DE UN SUMADOR SEGÚN UN AMPLIFICADOR OPERACIONAL. Es probable que el más útil de los circuitos de “amp-op” utilizados en computadoras analógicas sea el circuito amplificador sumador. La figura (3) muestra un circuito sumador de tres entradas, el cual brinda un medio para sumar (añadir) algebraicamente voltajes de tres entradas, cada uno multiplicado por un factor de ganancia constante. Figura No. 3 Amplificador Sumador Si se utiliza el circuito equivalente virtual, el voltaje de salida puede expresarse en términos de entrada como: Vo = (Rf/R1)V1 + (RF/R2)V2 + (Rf/R3)V3 En otras palabras, cada entrada añade un voltaje a la salida conforme se obtiene de un circuito de ganancia constante inversor. Si se emplean más entradas, ellas añaden componentes adicionales a la salida. Un ejemplo del amplificador sumador es el circuito que aparece en la figura (4). Alipso.com - http://www.alipso.com Página 121/132 Diseño y montaje de un generador de funciones Figura No. 4 Este circuito puede usarse para combinar o mezclar señales de audio. Las fuentes V1, V2 y V3 determinan las corrientes i1,i2 e i3 a través de sus respectivas resistencias a tierra (se trata de una tierra “virtual” establecida por el corto virtual del amp-op). Cada corriente es proporcional a su correspondiente voltaje, por ejemplo, i1 = V1/(1KW). Aplicando la LKC, la corriente i4 que pasa por el resistor de realimentación de 3KW es la suma de estas corrientes: I4 = i1 + i2 + i3 = (V1 + V2 + V3)/1KW. 555 Pero Vo = 3KW * i4. Por lo tanto, Vo = -3 (V1 + V2 + V3). El voltaje de salida es la suma de los voltajes de entrada a los que se agrega alguna ganancia. EL AMPLIFICADOR OPERACONAL EN NUESTRO PROYECTO El amplificador operacional en nuestro proyecto va a ser la pieza ultima, su salida va a ir al osciloscopio y es donde vamos a poder regular el offset y la amplitud. Para el control del offset vamos a utilizar el montaje que acabamos de comentar, es decir, en configuración como sumador, y mediante su realimentación lo usaremos para variar la amplitud. A la salida del D.A.C. como anteriormente dijimos hemos colocado una resistencia ya que el D.A.C.-08 es un conversor de intensidad, con eso transformaremos la intensidad en voltaje ya que la impedancia de entrada de un operacional se considera infinita. El montaje utilizado se puede observar en la figura. Alipso.com - http://www.alipso.com Página 122/132 Diseño y montaje de un generador de funciones LA CIRCUITERIA EXTERNA Alipso.com - http://www.alipso.com Página 123/132 Diseño y montaje de un generador de funciones 555 MONTADO COMO ASTABLE PARA GENERAR LA FRECUENCIA FUNCIONAMIENTO DEL 555: La tensión de funcionamiento del 555 va de 5V a 20V. Interiormente, en la patilla 8 va conectado un divisor de tensión mediante 3 resistencias. La patilla 6 es una de las importantes, sale del comparador superior y cuando la tensión de referencia, en la patilla 6, sea mayor a dos tercios de Vcc, entonces este comienza a funcionar llegando al flip flop y sacando un uno, donde llega a un transistor que en este momento actúa como un interruptor cerrado y también llega a la salida invirtiendo esta señal que entra y transformándola en 0. La patilla 5 es la entrada negativa del comparador superior. La patilla 2 es la entrada negativa del comparador inferior, cuando este tiene una tensión de referencia inferior a un tercio de Vcc, entonces el comparador inferior empieza a funcionar, dando un impulso al flip flop saliendo de el un 0, entonces llega al transistor que al no llegar tensión a la base de este, funciona como interruptor cerrado, y llegando a la salida que invirtiéndolo saca un 1 ósea vcc. La patilla 1 va directamente a masa. La patilla 7 es la de descarga del condensador. La patilla 3 es la salida. La patilla 4 es el reset. La patilla 8 es +VCC. ESQUEMA INTERNO DEL 555: FUNCIONAMIENTO MULTIVIBRADOR ASTABLE CON EL 555: Alipso.com - http://www.alipso.com Página 124/132 Diseño y montaje de un generador de funciones Este circuito tiene dos estados estables en la salida: +Vcc y 0v. Consta de dos entradas y una sola entrada. Inicialmente tenemos el circuito con la salida en nivel bajo, si pulsamos P1 enviamos un impulso al comparador inferior este impulso hará bajar la tensión de referencia que tiene este comparador a menos tensión de 1/3de +Vcc enviando este comparador un impulso al flip flop, que nos sacara un 0 que la salida nos invertirá teniendo +Vcc en la patilla 3 o salida del 555, se quedara en este estado indefinidamente hasta que pulsemos P2, en este momento enviamos un impulso al comparador superior, este impulso es mayor que la tensión de referencia de dicho comparador o sea mayor de 2/3 de +Vcc entonces el flip flop se cambiara de estado dando un uno que la salida nos invertirá sacando el circuito 0v, quedando en este estado indefinidamente hasta que volvamos a pulsar P1 volviendo a repetirse el proceso anterior. R1 va conectada de +Vcc al comparador inferior así lo mantiene a mas tensión de 1/3 de +Vcc y cuando pulsamos P1 que esta conectado entre el comparador inferior y masa hacemos que dicho comparador tenga 0v de esta manera se conectara el comparador inferior. R2 esta conectada al comparador superior y a masa manteniendo así el comparador con menos tensión de +Vcc permaneciendo así desactivado, y cuando pulsamos P2, se activa por que P2 esta conectado a +Vcc lo que provoca que se supere la tensión de referencia a mas de 2/3 de +Vcc y enviara un impulso al flip flop. ESQUEMA DEL MULTIVIBRADOR ASTABLE CON EL 555: Es aquí en el 555 donde vamos a poder regular la frecuencia, para ello hemos de colocar un potenciómetro en la resistencia que ataca al condensador de carga y descarga. Así cuando variemos el potenciómetro aumentaremos o disminuiremos la frecuencia. CONTADORES 74LS393 y 74LS190 Nosotros hemos diseñado dos contadores, uno que contara desde 00 hasta FF para que pasara por todas las direcciones de memoria de un periodo y otro para poder seleccionar entre las ocho ondas de que Alipso.com - http://www.alipso.com Página 125/132 Diseño y montaje de un generador de funciones disponemos, el reloj de este ultimo es un pulsador. El contador 74LS493 es un contador doble de cuatro bits por lo que era muy apropiado para nuestro proyecto ya que era fácilmente expansionable y nos ahorrábamos posibles fallos de concordancia entre varios chips, por ejemplo si huyéramos utilizado el 74LS90 hubiéramos necesitado al menos dos chips distintos y posiblemente hubiéramos tenido problemas. La expansión de este chip es sencilla basta con llevar la salida 1QD a la entrada de reloj del otro contador. Este contador tendrá a la entrada del reloj 1 los pulsos que de el 555 por lo que según sea la frecuencia del 555 así será la frecuencia del contador. A continuación se adjunta la tabla de la verdad y el montaje. Inputs | Output ------------------------CLR CLK | Qd Qc Qb Qa -------------------------1 X | 0 0 0 0 0 POS | Count 0 POS | Count El otro contador utilizado es el 74LS190 con entrada de reloj de un pulsador. Explicando el proceso desde el pulsador, aplicamos un pulsador con un condensador y una resistencia para absorber el ruido, además seguidamente este le llevamos a un 74LS14 que es una puerta inversora THRIGER SHMICH con lo cual el ruido esta ya casi anulado y la salida de este la llevamos a el reloj del 74LM190. Este le pusimos que reseteara cuando llegué a 7 así podíamos ir pasando por todas las direcciones de memoria ya que estas tres patillas van a Alipso.com - http://www.alipso.com Página 126/132 Diseño y montaje de un generador de funciones las entradas 8,9,10 de la memoria. Para hacer el reset como en la evaluación anterior utilizaremos el LOAD. A continuacion adjuntamos el patillaje y el montaje. CTEN | D/U | CLK | LOAD | A B C D | QA QB QC QD MAX/MIN RCO ---------|------|--------|----------|------------|------------------------------------0 | X | X | 0 |XXXX|A B C D 1* 2 * 0 | 1 | POS | 1 | X X X X | Count Down 1* 2 * 0 | 0 | POS | 1 | X X X X | Count Up 1* 2 * 1 | X |X | X | X X X X | Qa0 Qb0 Qc0 Qd0 1* * Alipso.com - http://www.alipso.com Página 127/132 2 Diseño y montaje de un generador de funciones MATERIAL UTILIZADO 1. Memoria EPROM-----------------------------1 Unidad. 2. LM 555-----------------------------------------1 Unidad. Alipso.com - http://www.alipso.com Página 128/132 Diseño y montaje de un generador de funciones 3. 74LS190----------------------------------------1 Unidad. 4. 74LS393----------------------------------------1 Unidad. 5. 74LS14------------------------------------------1Unidad. 6. D.A.C.-08---------------------------------------1Unidad. 7. Operacional LM741---------------------------1 Unidad. 8. Potenciometros de 220K,22K,10K----------3 Unidades. 9. Condensadores de 0.1uF,0.1uF,0.01uF-----6Unidades. 10. Resistencias de 2.2K,5.6K,1K---------------6Unidades. 11. Pulsador-----------------------------------------1Unidad. Alipso.com - http://www.alipso.com Página 129/132 Diseño y montaje de un generador de funciones PRESUPUESTO DE LA PRACTICA PIEZA CANTIDAD PRECIO UNIDAD PRECIO TOTAL Memoria EPROM 1 4634 4634 LM555 1 Alipso.com - http://www.alipso.com Página 130/132 Diseño y montaje de un generador de funciones 94 94 74LS190 1 174 174 74LS14 1 95 95 74LS393 1 194 194 D.A.C. -08 1 2984 2984 LM741 1 266 266 Potenciomeros 3 122 Alipso.com - http://www.alipso.com Página 131/132 Diseño y montaje de un generador de funciones 366 Condensadores 6 50 300 Resistencias 6 15 90 Pulsador 1 71 71 TOTAL 9268 Alipso.com - http://www.alipso.com Página 132/132