|
INDICE
• 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.
• PRESUPUESTO DE LA PRACTICA............... Pag. 47.
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.
4. Onda Exponencial
5. Onda Senoidal.
6. Onda Rectificada.
7. Onda Triangular.
8. Onda Muela (Es una suma de seno y coseno).
74393 PULSADOR
INVERSOR
TRIGGER
74LS14
MEMORIA
EPROM
SG 27C256/B CONTADOR 74LS190
D.A.C
08-1 AMPLIFICADOR
OPERACIONAL
LM741
OSCILOSCOPIO
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...
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.
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.
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); [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; 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)'
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.
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']
|
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]
|
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
|
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); 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.
ONDA CUADRADA
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; 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 end h=dec2hex(r); [h]
|
|
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); 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 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');
|
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); [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); h
|
|
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; 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); 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');
|
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'.
|
t=0:0.00392:1; r=1:-0.00392:0; r=r*255; r=round(r); h=dec2hex(r); [h]
|
|
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; 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)
|
|
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'.
|
t=0:0.00392:1; x=1-1./exp(10./3*t); x=264.4405*x; dexpo=round(x); dexpo'
|
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
|
|
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; 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');
|
|
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 el segundo archivo se genera los valores hexadecimales, el nombre del archivo es hexarecti.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=dec2hex(y); h
|
|
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 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)
|
|
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');
|
|
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
|
|
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); 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');
|
El archivo del menú esta compuesto por cuatro partes:
header='TIPOS DE ONDA'; labels=str2mat('COSENO', 'CUADRADA', 'DIENTES DE SIERRA','EXPONENCIAL' ,'ARCHIVO TOTAL'); 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ú.
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');
|
D.A.C.(Digital-to-Analog Converter)
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.
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.
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 |
|
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 |
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.
|
|
|
|
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 "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
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
V+ - V- = 0
V+ = V-
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
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.
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
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.
|
LA CIRCUITERIA EXTERNA
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:
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aún no hay comentarios para este recurso.
Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.
Contacto »