# Generador onda senoidal, triangular, cuadrada con pic 16f84a



## ina85 (Mar 14, 2009)

Hola buenas tardes...  escribo porque necesito hacer un generador de onda cuadrada, senoidal y triangular, donde las 3 ondas deben tener la misma amplitud y periodo, utilizando el pic 16f84a , no tengo idea , solo se que debo usar un convertidor d/a ya que este pic no lo posee internamente , pero no se mas o menos en que basarme para hacer el programa del generador!...


----------



## Manonline (Mar 14, 2009)

Busca en Google Red R2R y vas a encontrar lo que querés.


----------



## ina85 (Mar 14, 2009)

Se hacer el convertidor..r2r , necesito saber como hacer un generador con pic 16f84a.


----------



## Fogonazo (Mar 14, 2009)

Para la onda cuadrada, no hay problema, la da directo el PIC.
La triangular la sacas aplicando la cuadrada a un integrador con operacional.

La delicada es la senoidal.
Se podría emplear una memoria en las se almacena el código binario que aplicado a un conversor DA produce la tensión instantánea de la senoide, variando la frecuencia del contador (PIC) varias la frecuencia de la senoide, esto y unos filtros pueden llegar a resolver tu señal.


----------



## ina85 (Mar 14, 2009)

La cuadrada la da directo el pic ? Te refieres a las patas de oscilador? Al colocarle un oscilador rc o xt, sale una onda cuadrada?

Cómo varío la frecuencia del pic? Debo utilizar un r2r por cada onda?

La conexión para la cuadrada sería pic-conversor r2r-osciloscopio , para la tringular pic-conversor r2r-integrador-osciloscopio ?

Gracias !


----------



## Fogonazo (Mar 14, 2009)

RC o XT, depende de la precisión que busques
Conociendo la frecuencia del oscilador programas un divisor de frecuencia programable y variable.
Conociendo la frecuencia del oscilador y variando el divisor estableces la frecuencia de salida.
La frecuencia de salida sera tu onda cuadrada

Para una onda cuadrada o triangular NO necesitas el conversor R2R.

Si empleas R2R NO empleas conversor DA
Si empleas conversor DA NO empleas R2R

Una leída a esto no creo que te venga mal.
https://www.forosdeelectronica.com/f21/fuente-trifasica-11063/
https://www.forosdeelectronica.com/f26/conversion-analogica-digital-red-r2r-14602/


----------



## ina85 (Mar 14, 2009)

Ok...no entiendo muy bien la relación software hardware , programaré un divisor de frecuencia programable y variable (que quieres decir con programable?) y al variarlo establezco la frecuencia de salida y la mando a un pin, en este pin obtendré mi onda cuadrada? Luego debo colocar en este mismo pin un oscilador xt o rc, depende de la precisión que busque?


----------



## Fogonazo (Mar 14, 2009)

Si vas a trabajar con un PIC necesitas un Software y un Hardware
Dentro del software esta el divisor programable
¿ Y que es lo que hace ?
Divide
¿ Y que divide ?
La frecuencia del oscilador principal

Si por ejemplo tienes un clock de 1 MHz y quieres una frecuencia de salida de 435 Hz tu divisor deberá (Redundancia) dividir por 1000000/435 = *2298,85*
Este software debe ser programable para permitirte variar la relación de división y variar con esta la frecuencia de salida.

También podrías generar tu frecuencia de salida con los temporizadores propios del PIC, siempre empleando software.


----------



## ina85 (Mar 14, 2009)

Ok.. y ese 2298,85 que función cumple o que?

Si decido utilizar solo los temporizadores del pic, debo hacer un programa que los active y luego como le indico la frecuencia ?


----------



## Fogonazo (Mar 14, 2009)

Creo que debes encarar tu proyecto en 2 partes:
1) La generación de frecuencia PIC y Software mediante
2) Obtención de las formas de onda

Cuando tengas resuelta la parte 1, podrás recién continuar para conseguir las formas de onda


----------



## ina85 (Mar 14, 2009)

Ok , mi proyecto tiene una especificación , si estoy observando la onda numero 1 y decido cambiar y observar la onda numero 2, esta onda numero 2 debe encontrarse en la misma posición que la onda numero 1 , me explico?

Es como tener una montada encima de otra y solo seleccionar la que deseo ver , esto es posible utilizando la misma frecuencia para las 3 ?


----------



## Fogonazo (Mar 14, 2009)

Si, es lo que te estoy sugiriendo, al tener una generador "Maestro" de frecuencia las 3 formas de onda se podrán superponer perfectamente.

Puede y seguramente habrá diferencias de tensión PaP entre las formas, pero eso lo corriges con preset´s


----------



## ina85 (Mar 14, 2009)

Um ok , oye muchas gracias Fogonazo , me pondré a trabajar desde ya , cualquier duda la posteo por aquí , mil gracias


----------



## pepechip (Mar 14, 2009)

Tambien puedes utilizar 8 salidas del pic acopladas a una red R2R para generar la señal senoidal y la triangular.


----------



## ina85 (Mar 14, 2009)

Um cómo así? En que debo basar el programa?


----------



## solucion-electronica (Abr 15, 2009)

Hola Ina 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 . . .


----------



## gothikmarko (Mar 5, 2010)

Que tal, espero me puedan ayudar en esto: me dejaron como proyecto crear una generador de onde cuadrada como en el post original con el 16f84a, el detalle está en que el pic debe entregar 3 frecuencias distintas a la par, es decir, por un pin una señal a 50 Hz, por otro una a 60 Hz y por otro una a 70 Hz, las 3 señales son cuadradas con un periodo util de 50%, por separado es muy sencillo pero alguien sabe como hacerlas en paralelo?


----------



## Beamspot (Mar 24, 2010)

Otra solución es la Síntesis Digital Directa o DDS.

Respecto de hacer tres señales a tres frecuencias diferentes, se puede hacer con tres temporizadores HW del micro.


----------



## notescappes (Jun 8, 2012)

Fogonazo dijo:


> Para la onda cuadrada, no hay problema, la da directo el PIC.
> La triangular la sacas aplicando la cuadrada a un integrador con operacional.
> 
> La delicada es la senoidal.
> Se podría emplear una memoria en las se almacena el código binario que aplicado a un conversor DA produce la tensión instantánea de la senoide, variando la frecuencia del contador (PIC) varias la frecuencia de la senoide, esto y unos filtros pueden llegar a resolver tu señal.



--------------------------------------------------------------------------------------------

En la teoria, eso que decis de usar un operacional como integrador, esta bien.. pero NO OLVIDES que los amplificadores operacionales no responden bien en frecuencias mayores a los 20KHz.


----------

