Generador de onda

Podrias darme información sobre este proyecto de generador de onda:
Se quiere encargar la realización de un generador de señal con las siguientes
características:
• La frecuencia de la señal será seleccionable entre 1 y 10Khz mediante dos botones
(uno aumentará la frecuencia y otro la disminuirá).
• El circuito estará basado en un PIC16F88 y un convertidor A/D de 8 bits.
• A la salida del ADC el circuito generará una señal de 3Vpp (entre 1V y 4V)
aproximandola a una señal sinusoidal en 10 escalones para un periodo de la señal.
• La salida del ADC (señal sinusoidal con escalones) se filtrará para “suavizarla”
eliminando los escalones, mediante un filtro paso bajo RC.
• El sistema se diseñará de forma que el tamaño en placa y el número de componentes
sea mínimo.
El prototipo del circuito se hará en placa de wrapping. El diseño final se hará en tarjeta
de circuito impreso.
 
Tengo datos q he calculao pa sacar la señal sinusoidal. La formula es esta :

V1=(1,5 sen pi n/5)+2,5
La V esta comprendido entre 1 y 4 v y hay 256 posiciones.

para n=0--->V1=2,5v ; posicion 129
para n=1--->V1=3,44v ; posicion 210
para n=2--->V1=3,92v ; posicion 251
para n=3--->V1=3,92v ; posicion 251
para n=4--->V1=3,38v ; posicion 204
para n=5--->V1=2,5v ; posicion 129
para n=6--->V1=1,61v ; posicion 53
para n=7--->V1=1,07v ; posicion 7
para n=8--->V1=1,07v ; posicion 7
para n=9--->V1=1,61v ; posicion 53

La frecuencia esta comprendido entre 1 y 10 khz. Calculo el tiempo

f=1/T

Para 1 khz-->T=1 msg
Para 2 khz-->T=0,5 msg
Para 3 khz-->T=0,334 msg
Para 4 khz-->T=0,25 msg
Para 5 khz-->T=0,2 msg
Para 6 khz-->T=0,16 msg
Para 7 khz-->T=0,14 msg
Para 8 khz-->T=0,125 msg
Para 9 khz-->T=0,112 msg
Para 10 khz-->T=0,1 msg

Retardos pa cada frecuencia:

Para 1 khz-->T=100 microsg
Para 2 khz-->T=50 microsg
Para 3 khz-->T=33,4 microsg
Para 4 khz-->T=25 microsg
Para 6 khz-->T=20 microsga
Para 7 khz-->T=14 microsg
Para 8 khz-->T=12,5 microsg
Para 9 khz-->T=0,11,2 msg
Para 10 khz-->T=0,1 msg

con esos datos hacer el programa para el PIC 16F88, pero no se como hacerlo, me podrias ayudarme
Si no sabei :cry:s hacer el programa pues en pseucodigo o diagramas de flujo . Gracias
 
El convertidor es DAC y si no sabes como hacerlo comprate un libro acerca del PIC para que vayas aprendiendo....

Estas hablando de sintetizar una senoidal, algo asi como un DDS, ese proyecto lo hice en la uni hace 11 a#os...

Primero hacer un programa en B donde generas los puntos de la senoidal y luego los metes en la flash del micro y asi nomas vas dandole vueltas a la tabla...

Sopas
 
Para obtener una frecuencia con una onda cuadrada es muy facil, solo tienes que aplicar los tiempos que has calculado, pero al sacar una honda senoidal tendras que dividir el tiempo calculado para cada frecuencia por el numero de escalones que apliques al convertidor.

No recuerdo si el pic16f88 dispone de convertidor D/A interno, pero en el caso de que no lo tenga utililiza los 8 bits de un puerto para realizar uno con una red de resistencias R-2R
 
Hola Amy No te des mala vida el secreto de este proyecto esta en el codigo , de circuiteria solo necesitas el pic y el conversor digital analogico , de resto solo queda programar bien y tendras todas las señales que quieras ;

primero debes saber a que frecuencia quieres mostrar cada una de las señales si por ejemplo deseas q sean de 1 hz , ya sabes que toda la señal va a tardar 1 segundo en repetirse, ok . . .

fijate en lo siguiente :

Estas usando 8 bits hacia el conversor es decir que habran 256 valores distintos de voltaje , si es una onda cuadrada te dare un ejemplo para que tengas la idea :

si mandas a escribir 0 en el coversor a la salida tendras 0V y si mandas a escribir 255 tendras 5 voltios
solo tienes q jugar con el tiempo en q tendras el valor bajo y el alto

..........................__________
........................ │..................│
1 __________2│..................│3__________

suponiedo que el conversor esta en el puerto b que el periodo es igual a un segundo y que estamos programando el pic16f84 con C

// paso 1:
puerto_b =0;
delay_ms(500); // esperamos medio segundo

// paso 2 :
puerto_b=255;
delay_ms(500);// esperamos medio segundo mas


todo esto debe ir dentro de un ciclo repetitivo , en el caso de la señal triangular y la senoidal , no puedo explicartelo por aca , espero q esto te sirva de ayuda y si necesitas una orientacion mejor contactame . .
 
y tengo el mismo prblema que Amy687, a ecepcion de que la frecuencia debe ser fija a 2 Khz, y debo variar la amplitud de la onda cuadrada de 1.6 volts a 5.5, con incrementos de .1 V, y estoy utlizando el pic18f4550, soy completamente principiante ne est de la programacion, y aunque ya he estado leyecdo libros de programacion, aun no tengo idea de como, si alguien podria oientarme , o darme un ejemplo en el cual se alla echo algo similar, lo agradeceria mucho, estoy utilizando el ccs compiler, pero si lo tiene nen microC se acepta tambien.
 
Hola gente, tengo un problemita generando una senoidal de 2.5KHz... simulando en proteus me anda muy lindo con 73 muestras por ciclo pero en la placa con el osciloscopio veo la señal a 100Hz nomas... Si alguno me puede dar una mano lo agradezco desde ya, yo tengo las muestras almacenadas en un vector y las pongo a la salida (al DAC) con un ciclo "for" for (t=1;t<=73;++t) output_d(salida[t]);
Gracias. Saludos.
 
Atrás
Arriba