diseÑo de un generador de funciones

6
Tópicos de Procesamiento Digital Avanzado Página 1 DISEÑO DE UN GENERADOR DE FUNCIONES Universidad Autónoma De Tlaxcala Facultad De Ciencias Básicas Ingeniería Y Tecnología ISE Héctor Sánchez Maldonado, Ariel Méndez Martínez, Sergio Vela Aguilar I. OBJETIVO Desarrollar un programa en MikroC para comprobar el funcionamiento del DAC0830. Desarrollar un generador de funciones mediante un programa desarrollado en MikroC (Lenguaje C), donde sean visualizadas las ondas: Cuadrada, Senoidal Triangular las cuales podrán ser seleccionadas mediante botones. II. MATERIAL Software MikroC PRO for dsPIC Software MikroProg suite for dsPIC Fuente simétrica DAC0830 Protoboard Tarjeta EasyPIC V7 C.I. 741 Multímetro Osciloscopio III. INTRODUCCION En la actualidad con las nuevas tendencias, se busca que con la ayuda de la tecnología se creen nuevas aplicaciones que impliquen tanto una gran eficiencia como un funcionamiento más rápido y a la vez un tanto menos complejo. Tal es el caso de MikroC, una excelente herramienta para desarrollar aplicaciones para dsPIC, usando el popular lenguaje C, incluye muchísimas librerías que facilitan la terea del desarrollador pues con ellas se pueden desarrollar complejas aplicaciones en un tiempo mucho menor. IV. MARCO TEORICO Un generador de funciones es un instrumento utilizado en la electrónica y sirve para generar o simular señales específicas con determinadas características. Por ejemplo, crear o simular una señal que puede ser cuadrada, sinusoidal, de una determinada frecuencia, y de una determinada amplitud. De esta forma, podemos aplicar esta señal generada a un circuito para ver su respuesta. Un conversor de señal digital a analógica DAC es un dispositivo para convertir señales digitales con datos binarios en señales de corriente, tiene la capacidad de convertir 8 0 16 bits según sea el caso o la aplicación. Figura 1. DAC0830 V. DESARROLLO Para el desarrollo del generador de funciones, se realizara por separado un programa que será capaz de emular el comportamiento de cada una de las señales.

Upload: luis-angel-cuecuecha-sanchez

Post on 24-Oct-2015

486 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 1

DISEÑO DE UN GENERADOR DE FUNCIONES Universidad Autónoma De Tlaxcala

Facultad De Ciencias Básicas Ingeniería Y Tecnología ISE

Héctor Sánchez Maldonado, Ariel Méndez Martínez, Sergio Vela Aguilar

I. OBJETIVO

Desarrollar un programa en MikroC para

comprobar el funcionamiento del

DAC0830.

Desarrollar un generador de funciones

mediante un programa desarrollado en

MikroC (Lenguaje C), donde sean

visualizadas las ondas:

Cuadrada,

Senoidal

Triangular

las cuales podrán ser seleccionadas

mediante botones.

II. MATERIAL

Software MikroC PRO for dsPIC

Software MikroProg suite for dsPIC

Fuente simétrica

DAC0830

Protoboard

Tarjeta EasyPIC V7

C.I. 741

Multímetro

Osciloscopio

III. INTRODUCCION

En la actualidad con las nuevas tendencias, se

busca que con la ayuda de la tecnología se creen

nuevas aplicaciones que impliquen tanto una

gran eficiencia como un funcionamiento más

rápido y a la vez un tanto menos complejo.

Tal es el caso de MikroC, una excelente

herramienta para desarrollar aplicaciones para

dsPIC, usando el popular lenguaje C, incluye

muchísimas librerías que facilitan la terea del

desarrollador pues con ellas se pueden

desarrollar complejas aplicaciones en un tiempo

mucho menor.

IV. MARCO TEORICO

Un generador de funciones es un instrumento

utilizado en la electrónica y sirve para generar o

simular señales específicas con determinadas

características. Por ejemplo, crear o simular una

señal que puede ser cuadrada, sinusoidal, de una

determinada frecuencia, y de una determinada

amplitud. De esta forma, podemos aplicar esta

señal generada a un circuito para ver su

respuesta.

Un conversor de señal digital a analógica DAC

es un dispositivo para convertir señales digitales

con datos binarios en señales de corriente, tiene

la capacidad de convertir 8 0 16 bits según sea

el caso o la aplicación.

Figura 1. DAC0830

V. DESARROLLO

Para el desarrollo del generador de funciones, se

realizara por separado un programa que será

capaz de emular el comportamiento de cada una

de las señales.

Page 2: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 2

Para nuestra aplicación utilizaremos el

DAC0830 este convertidor digital analógico es

de 8 bits, cuenta con dos salidas de corriente, su

alimentación es de 5 a 15v, tiene una resolución

por bit de 0.04mv, cuenta con un voltaje de

referencia negativo que pude ser de -10 a 10v.

Para poder observar el voltaje en sus dos salidas

de corriente es necesario utilizar un comparador

UA741 que convertirá las salidas de corriente en

una sola de voltaje.

Diagrama de conexión del DAC0830 en

simulación

Figura 2. Diagrama de conexión del DAC0830

Ahora bien, partiremos a desarrollar cada una de

las señales mencionadas anteriormente.

1. Desarrollo de la Onda Cuadrada

La señal cuadrada es relativamente fácil. En la

figura 3 se muestra el diagrama de flujo para

esta señal. Previamente se declara una variable

denominada alto (200) este valor en relación con

la resolución del DAC determinan la amplitud

de la señal. La variable bajo se declara en 0

para una señal apropiada. La frecuencia es

similar a la de la triangular.

Pero ahora el tiempo de espera en alto y bajo es

la mitad del periodo T.

Figura 3. Diagrama de flujo para la onda cuadrada.

2. Desarrollo de la Onda Triangular

La señal triangular se genera con un bucle

FOR. En la figura 4 se muestra el diagrama de

flujo. Para determinar la frecuencia de la señal,

se tiene:

La señal tiene una pendiente positiva y una

negativa. El periodo total T se divide entre 2

para poder generar el código en el dsPIC.

Tomando la mitad del periodo se divide entre el

valor del contador (200 para la figura 1).

En resumen primero se hace un incremento para

generar la pendiente positiva, el valor maximo

de la señal esta dada por la relacion de la

resolucion del DAC y el contador del programa.

Despues de la pendiente positiva se genera la

pendiente negativa, ahora el contador se

decrementa.

Page 3: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 3

Figura 4. Diagrama de flujo para la onda triangular.

3. Desarrollo de la Onda Senoidal

La fórmula general para una señal senoidal es:

( )

En la figura 5 se muestra el diagrama de flujo

para generar la señal senoidal, lo que se puede

destacar es que se debe sumar un valor para

arreglar el tema de offset por las limitaciones

del ADC. Del diagrama se puede ver que se

realiza un contador el cual permite realizar la

operación, el tema de la frecuencia no está bien

claro por los tiempos y muestras que se realizan.

Después de la operación seno con el ajuste de

amplitud y offset, se debe ajustar con respecto a

la resolución del ADC para que la información

pueda ser enviada al puerto.

Figura 5. Diagrama de flujo para la onda senoidal.

4. Desarrollo del Programa General

En la figura 6 se presenta el diagrama de flujo

del programa general. Este permite seleccionar

el tipo de señal que se desea (senoidal,

triangular, cuadrada). Se declara lo necesario

(variables, puertos) y constantemente se están

checando los pines del puerto F si alguno de

ellos es presionado se activa una variable y se

genera la señal de los diagramas anteriores.

Page 4: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 4

Figura 6. Diagrama de flujo del programa general..

Con la elaboración de este programa que emula

el comportamiento de un generador de

funciones, se obtuvieron los siguientes

resultados visualizados en un osciloscopio.

Figura 7. Onda cuadrada en el osciloscopio.

Figura 8. Onda triangular en el osciloscopio.

Figura 9. Onda senoidal en el osciloscopio.

VI. CONCLUCIONES

Héctor Sánchez Maldonado. Se puede utilizar

un dsPIC o DSP para generar cualquier tipo de

señal mediante software, el convertidor digital-

analógico es una parte muy importante ya que

de él depende que podamos visualizar las

señales. En este caso se tuvo uno de 8 bits

(0803), y aunque con el dsPIC se podían

manejar hasta 12 bits por el puerto B no se

pudieron aprovechar ya que solo se contaba con

el DAC 0803 y un mejor DAC implica mayor

costo. Para implementar un buen generador de

funciones aparte del DAC se necesitan circuitos

complementarios como los filtros para tener una

señal apropiada. Por ejemplo la señal seno se

tuvo que montar sobre una componente de DC

para poder visualizarla bien, pero en la realidad

este tipo de señal debe ir con valores positivos y

negativos.

Ariel Méndez Martínez. Para emular el

comportamiento de un generador de funciones,

el lenguaje de alto nivel C es de gran ayuda, ya

que cuenta con la implementación de algunas

funciones, tal y como es el caso de la función

seno, además de que el desarrollo del programa

no resulta ser complejo.

Cabe mencionar que además de desarrollar la

parte de software para el generador de

funciones, también es de vital importancia el

hardware, que en este caso fue la

Page 5: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 5

implementación de un convertidor digital-

analógico DAC0830 de 8 bits en los cuales es

visualizada la señal requerida. El DAC a su vez

necesita de un opamp de propósito general 741

para que pueda realizar la conversión de

corriente a voltaje, ya que la salida que maneja

el DAC es en corriente.

Sergio Vela Aguilar. La utilización de del

DAC0830 en este examen fue conocer el

funcionamiento de un convertidor digital

analógico de 8 bits y hacer un generador de

señales analógico digital, dicho generador

contaba con tres formas de onda cuadrada,

triangular Y sinodal. En la forma de onda

sinodal se tuvo algunos problemas en su

frecuencia ya que no coincidía con las otras

formas de onda ya mencionadas, el convertidor

fue muy útil para realizar el generador ya que

con la ayuda del micro c de pudieron formar las

tres ondas a 10Hz. El convertidor es sensible al

conectarlo ya q si sufre alguna perturbación deja

de funcionar por un momento.

VII. ANEXOS

unsigned char contador, contador1;

unsigned int senoidal=0, triangular=0, cuadrada=1;

void main() {

int bajo=0, alto=200, seno=0;

float sen;

TRISD = 0x000F; // initialize portb as input

TRISB=0;

LATB=0;

ADPCFG = 0xFFFF; // Configure AN pins as digital I/O

while(1){

///Seleccion de la Forma de Onda por el Puerto D

if (Button(&PORTD, 0, 10, 1)) // detect logical one

state

{senoidal = 1;

triangular=0;

cuadrada=0;}

else if (Button(&PORTD, 1, 10, 1)) // detect logical

one state

{triangular = 1;

senoidal=0;

cuadrada=0;}

else if (Button(&PORTD, 2, 10, 1)) // detect logical

one state

{cuadrada=1;

senoidal=0;

triangular=0;}

//Señal Triangular

else if(triangular==1)

{for(contador=0; contador<=200; contador++)

{LATB=contador;

Delay_us(400); }

alto=200;

for(contador=0; contador<200; contador++) {

alto= alto-1;

LATB=alto;

Delay_us(400); } }

//Señal Senoidal

else if(senoidal==1)

{for(contador=0; contador<=100; contador++) {

sen = 4.5*sin(2*3.1416*contador/100)+5;

seno=(sen/0.040);

latb=seno;}}

//Señal Cuadrada

if(cuadrada==1)

{LATB=bajo;

Delay_ms(50);

LATB=alto;

Delay_ms(50);}

}}

Page 6: DISEÑO DE UN GENERADOR DE FUNCIONES

Tópicos de Procesamiento Digital Avanzado Página 6