Generar onda aproximadamente Senoidal con PIC

Anuncio
Generar onda aproximadamente Senoidal con PIC
Usamos un PIC enano porque debe trabajar exclusivamente para generar la onda, en este
caso el 12F675, que posee ADC.
En este trabajo se genera una onda fija, de 14.73 KHz. Se puede variar la frecuencia para
bajarla, colocando un retardo entre cada línea del Firmware, variando su valor con un
potenciómetro, que varíe una tensión a medir con el ADC de este PIC. El valor de la
medición (Puede ser de 10 bit) afectado por una constante, se usa como retardo en
microsegundos.
La generación se basa en el principio mostrado en la imagen siguiente, que fue tomado de
una página de Internet, no así todo el desarrollo, porque estaba equivocado.
Son 4 resistencias en paralelo, que forman un divisor de tensión, con la quinta, de 1K.
Esta disposición permite 16 combinaciones de valores 1 o 0 de las salidas del PIC.
1
Cada una de esas combinaciones da un valor de tensión que se usa para general una onda
parecida a una onda senoidal.
En la tabla de arriba, se ven esos valores. Aparecen 5 salidas, porque entre medio está la
GP3, que es solo entrada y no se puede usar, pero igual se debe poner su valor cero, para
realizar la secuencia.
El GP3 hace que al pasar del valor 7 a 8, y así sucesivamente se vea incrementado en 8,
que es el valor de la posición GP3.
Esta es la onda generada por el PIC:
Se ven los escalones producidos.
En los máximos y mínimos se repiten varias veces los valores para poder producir el
achatamiento.
En la salida se pone un condensador a tierra para que suavice la curva.
Esta es la curva generada y suavizada por el condensador a tierra.
Como pueden apreciar, toda la curva está por arriba del cero, porque el PIC solo genera
tensiones positivas.
Para corregir esto, alimentamos la salida con una tensión negativa, que la lleva a una onda
con parte positiva y parte negativa. El trimmer permite ajustarlo, como se ve en la imagen
siguiente, obtenida variándolo.
2
La de la izquierda es la onda simétrica.
Comentario Adicional
Debido a varias consultas que deseaban hacer un generador de 10 Bit, es que agrego este
comentario.
La onda generada aquí es de 4 Bit, y permite obtener una onda muy aproximada a la
senoidal pura, con un PIC de medio Dólar. Usa 4 salidas del mismo.
Si por la causa que sea, desean que sea de 10 Bit, lo que aumenta la precisión, deberá usar
un PIC 16F628 16F84 o el que tengan a mano.
Deberá tener 10 salidas disponibles. Si la desean de 8 Bit, usarán 8 salidas.
El esquema de salida es similar, con la diferencia que serán 10.
La resistencia a tierra será de 1K, la siguiente (Aquí está a RB3) también de 1K, y las 9
siguientes deberán ir duplicando el valor.
El Firmware deberá ir entregando los 1023 valores de las salidas. En este trabajo son solo
16. El reloj convendrá que trabaje a 20 MHz, si hace falta tener una frecuencia respetable.
Como referencia consulten los trabajos 70 y 71 de esta página, que genera una onda
senoidal de 10 Bit, con la salida paralelo de la PC, usando este mismo principio.
En el Firmware deberán cambiar pocas características de la configuración del PIC y
reprogramar las salidas a 10.
3
Esquema
Firmware
Está hecho en C de CCS, para el 12F675, pero si alguien desea usar otro PIC es fácil
cambiarlo por 16F84A, 16F88 o 16F628A.
Si alguien tiene problemas para cambiar de PIC, me puede escribir que le remito el nuevo
Firmware.
Es muy simple y están todas las líneas comentadas.
Lo único que se hace es prender secuencialmente las 4 salidas para obtener las tensiones
deseadas, que arman la curva.
Por cualquier duda escriba a correo.
4
Fotografía
5
Descargar