Proyecto de medidor de capacitancia con Arduino

Es posible construir un medidor de capacitancia con una placa Arduino, que será bastante útil si no posees en tu inventario de herramientas un multímetro digital.

En este proyecto aprenderás a construir un medidor de capacitancia usando una placa de Arduino y algunas resistencias.

Antes de comenzar a construir el circuito, echemos un vistazo a cómo podemos usar el Arduino para medir la capacitancia.

Medidor de capacitancia en Arduino

Este proyecto para Arduino, se basa en la propiedad que tienen los condensadores denominada constante de tiempo.

La constante de tiempo es definida como el rango de tiempo que tarda un capacitor en alcanzar el 63,2 % de su voltaje total al estar completamente cargado.

En la siguiente gráfica se puede apreciar una gráfica que muestra el voltaje de carga de un capacitor en relación al tiempo en segundos.

Relación entre voltaje y tiempo en un capacitor de carga

 

Como podemos observar en la anterior gráfica, a medida que crece el valor en voltaje, más tiempo tardará el capacitor en cargarse.

Siguiendo este principio, la placa Arduino medirá el voltaje en el capacitor y registrará el tiempo que tarda en alcanzar el 63,2 % de su voltaje.

Construyendo un circuito y teniendo el valor de una resistencia, podremos usar una fórmula para calcular la capacitancia de un condensador.

Montaje físico para un medidor de capacitancia con Arduino

A continuación el montaje físico para el proyecto del medidor de capacitancia con Arduino:

Diagrama del circuito del medidor de capacitancia de Arduino
  • R1 = 10K.
  • R2 = 220 ohmios.
  • C = capacitor a medir.

Código para calcular el valor de la capacitancia

Sube el siguiente código a tu Arduino:

#define analogPin 0          
#define chargePin 13         
#define dischargePin 11        
#define resistorValue 10000.0F   

unsigned long startTime;
unsigned long elapsedTime;
float microFarads;                
float nanoFarads;

void setup(){
  pinMode(chargePin, OUTPUT);     
  digitalWrite(chargePin, LOW);  
  Serial.begin(9600);             
}

void loop(){
  digitalWrite(chargePin, HIGH);  
  startTime = millis();
  while(analogRead(analogPin) < 648){       
  }

  elapsedTime= millis() - startTime;
  microFarads = ((float)elapsedTime / resistorValue) * 1000;   
  Serial.print(elapsedTime);       
  Serial.print(" mS    ");         

  if (microFarads > 1){
    Serial.print((long)microFarads);       
    Serial.println(" microFarads");         
  }

  else{
    nanoFarads = microFarads * 1000.0;      
    Serial.print((long)nanoFarads);         
    Serial.println(" nanoFarads");          
    delay(500); 
  }

  digitalWrite(chargePin, LOW);            
  pinMode(dischargePin, OUTPUT);            
  digitalWrite(dischargePin, LOW);          
  while(analogRead(analogPin) > 0){         
  }

  pinMode(dischargePin, INPUT);            
} 

Código para mostrar los valores en un monitor LCD

Para usar este medidor con una pantalla LCD, conecte la pantalla LCD a su Arduino.

El pin 11 se usará para la pantalla LCD, así que conecte el medidor de capacitancia usando el pin 8 en lugar del pin 11. Aquí está el código:

#define analogPin 0          
#define chargePin 13         
#define dischargePin 8        
#define resistorValue 10000.0F  
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

unsigned long startTime;
unsigned long elapsedTime;
float microFarads;                
float nanoFarads;

void setup(){
  pinMode(chargePin, OUTPUT);     
  digitalWrite(chargePin, LOW); 
  lcd.begin(16, 2); 
}

void loop(){
  digitalWrite(chargePin, HIGH);  
  startTime = millis();
  while(analogRead(analogPin) < 648){       
  }

  elapsedTime= millis() - startTime;
  microFarads = ((float)elapsedTime / resistorValue) * 1000;   
  lcd.print(elapsedTime);       
  lcd.print(" mS");
  delay(2000);  
  lcd.clear();
  delay(500);

  if (microFarads > 1){
    lcd.print(microFarads);       
    lcd.print(" uF");   
    delay(2000);    
  }

  else{
    nanoFarads = microFarads * 1000.0;      
    lcd.print(nanoFarads);         
    lcd.print(" nF");          
    delay(2000); 
  }

  lcd.clear();
  digitalWrite(chargePin, LOW);            
  pinMode(dischargePin, OUTPUT);            
  digitalWrite(dischargePin, LOW);          
  while(analogRead(analogPin) > 0){         
  }

  pinMode(dischargePin, INPUT);      
}

Mostrando los datos en el monitor serial

Inserte un condensador para medir su valor en la placa de prueba como se muestra en la primera figura.

Luego abra el monitor serial para ver la constante de tiempo y los valores de la capacitancia.

Los siguientes valores se obtuvieron a medir un capacitor electrolítico:

Medidor de capacitancia de monitor serie Arduino

A medida que los valores de los condensadores son más grandes, la placa Arduino tardará más en mostrar una lectura. Esto es sencillo, pues como ya vimos, se relaciona a la constante de tiempo.

Esperamos que este proyecto para construir un medidor de capacitancia con una placa Arduino haya sido de tu agrado.

Deja un comentario

programar en arduino logo

En este sitio aprenderas a programar en Arduino de forma gratuita a través de sencillos tutoriales y distintos proyectos.