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