Instrumento de medición para fuentes


Este proyecto se trata de un medidor destinado a utilizarse en fuentes de alimentación, ya que es el uso mas frecuente, pero se podría usar simplemente como multímetro externo.
Es un medidor que nos proporciona el valor de Tensión, Corriente y Potencia de una carga para tensión continua.
Los parámetros eléctricos para los cuales fue diseñado este dispositivo son de 0 a 30Vdc y de 0 a 3Adc, lo cual nos sera de utilidad para casi cualquier proyecto de laboratorio de electrónica.
El dispositivo posee como corazón un microcontrolador PIC16F883, pero podría cambiarse por algún otro microcontrolador con el mismo pinout.
En nuestro desarrollo utilizamos dos canales ADC a 10bit de resolución, uno para la medición de tensión y otro para la medición de corriente, donde luego se realiza el producto de ambos para obtener la potencia.
En el caso de la tensión se ha utilizado un divisor resistivo para garantizar un fondo de escala a 5V en la entrada del ADC cuando la medición sea de 30V en las puntas.
En el caso de la corriente se ha utilizado un amplificador operacional ya que se implementa como shunt una resistencia cerámica de 0.33Ohm 5W, debido a que el fondo de escala (3A) sera la corriente que circula por esta resistencia y la caída en la misma sera de 999mV, se debe amplificar para que este fondo de escala se convierta en 5V.
Esta idea de reducir y amplificar la señal, o bien, re-acondicionar la señal, se utiliza para aprovechar al máximo la resolución del ADC interno del microcontrolador, ya que si solo usáramos de 0 a 1V en el caso del amperímetro, estaríamos desaprovechando 4/5 del ADC y los saltos entre valores serian demasiado grandes.
Como protección de los dos canales ADC, se utiliza un diodo zener de 5V1.
El firmware es sencillo, simplemente debe leer los ADC y luego debe realizar la conversión matemática de compensación del atenuador (en el caso del voltímetro) y del amplificador (en el caso del amperímetro).
Se ha incorporado una función para calcular la media o promedio de mediciones, este proceso aumenta la estabilidad de medición en los dígitos menos significativos.






#include <16F883.h>
#device adc=10
#use delay(int=4000000)
#include <LCD.C>
void main(){
   setup_adc_ports(sAN0|sAN1|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   lcd_init();
   int i;
   int16 vecCorr[10], vecVolt[10];
   int16 auxCorr=0, auxVolt=0;
   int16 currentADC, voltajeADC;
   float current, voltaje, power;
   while(TRUE){
      for(i=0;i<10;i++){
         set_adc_channel(0);
         delay_us(200);
         currentADC=read_adc();
         vecCorr[i]=currentADC;
         set_adc_channel(1);
         delay_us(200);
         voltajeADC=read_adc();
         vecVolt[i]=voltajeADC;
      }
      auxCorr=0;
      auxVolt=0;
      for(i=0;i<10;i++){ 
         auxCorr=vecCorr[i]+auxCorr;
         auxVolt=vecVolt[i]+auxVolt;
      } 
      delay_ms(500);
      current=(5.0*(auxCorr/5)/1023.0)/1.6665;
      voltaje=((5.0*(auxVolt/5)/1023.0)/0.151)-(current/10);
      power=voltaje*current;
      lcd_gotoxy(1,1);
      if(voltaje>9.999)
         printf(lcd_putc," %02.2fV %02.3fA ",voltaje,current);
      else
         printf(lcd_putc,"  %02.2fV %02.3fA",voltaje,current);
      lcd_gotoxy(1,2);
      if(power>9.999)
         printf(lcd_putc,"     %02.2fW      ",power);
      else
         printf(lcd_putc,"      %02.2fW     ",power);
   }
}



16 comentarios:

  1. Excelente tu trabajo, una pregunta es muy complicado reprogramar el pic para que llegue a 5 ampers, es que yo no tengo ni idea de programacion de pic?. Saludos y gracias.

    ResponderEliminar
    Respuestas
    1. Si, de echo podes circularle 5A, lo que sucede es que en lugar de caer 1V en la R de 0R33, van a caer 1,66V, pero con el ajuste del segundo amplificador operacional se puede calibrar, tenes que medir corriente con otro amperimetro como patron de calibracion asi calibras este.
      Saludos.

      Eliminar
  2. Muchas gracias por responderme, saludos y feliz año!!!

    ResponderEliminar
  3. Hola estoy armando una fuente, quisiera saber si se puede utilizar el pic16f628a para realizar este proyecto, ya que en la linea 7 me da error, saludos.

    ResponderEliminar
    Respuestas
    1. Hola, el problema con el 16f628A es que no posee ADC, es el modulo indispensable para este proyecto ya que se basa en la medición de parámetros analógicos.
      Podrías usar otro MCU que no sea el 16F883, pero que tenga ADC.
      Saludos.

      Eliminar
  4. Gracias por responder y solucionar mi problema, lo he cambiado por el 16f88 y va joya el programa...

    ResponderEliminar
  5. Hola Sebastian.. disculpa, una consulta... en la imagen del PCB se ve la conexión al Cristal pero en el esquemático no esta y bueno en el programa marca el OSC interno.

    ResponderEliminar
    Respuestas
    1. Hola buen día, es correcto, lo que sucede que en las pruebas también use otros micros y digamos que el PCB quedo con la opción de usar o no el cristal, entonces se lo termine dejando por si alguien quiere aumentar la frecuencia y demás.
      Saludos.

      Eliminar
  6. Saludos, podria indicarme que programa usa para compilar? Ya que quiero usar un PIC16F877a

    ResponderEliminar
    Respuestas
    1. Hola este programa esta realizado en C bajo el compilador CCS, podes buscar cualquier IDE que soporte CCS, en este caso yo estoy usando PCWH.
      http://www.ccsinfo.com/ccsfreedemo.php
      Saludos!

      Eliminar
    2. Gracias por su respuesta, Oiga trata de compilar en el MikroC y me arroja error en varias lineas e igual en compilerC.

      Eliminar
    3. Hola como estas?, el programa esta compilado con CCS no con MikroC, por lo que no te va a compilar nunca con MikroC, tenes que usar el compilador CCS.
      Saludos.!

      Eliminar
  7. Hola sebastian te cuento tengo pensado usar una fuente ATX la salida de 12v que me entrega 20A max. 240w con el siguiente circuito "Fuente SMPS (Switching Mode Power Supply) con SG3524" para obtener los voltages +30 /-30 3A 180W y poder ajustarla con este circuito que propusiste puedo usar dos de estos sin problemas uno para el voltage positivo y otro para el negativo?

    ResponderEliminar
    Respuestas
    1. Hola, si, podes. El problema es que vas a tener que usar un amplificador operacional inversor (alimentado con +/-12V) para que invierta 180° la señal y puedas medir sin problemas ya que no podes poner una tension negativa en un ADC.
      Saludos.

      Eliminar