Diseño y montaje de un generador de funciones Portal Alipso.com:

Anuncio
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 ([email protected])
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
Descargar