Está en la página 1de 7

Un capacitor es un dispositivo capaz de almacenar

cargas elctricas. Para cargarlo se le aplica una diferencia de potencial y acumular carga hasta su
capacidad mxima. La cantidad mxima de carga que puede acumular, dividido la diferencia de
potencial es una propiedad del capacitor denominadacapacitancia, y es el indicador de la cantidad
de energa que puede almacenar.

La capacitancia se mide en Faradios, siendo 1 Faradio igual a 1 Coulomb / 1 Volt. Los capacitores
ms usuales tienen una capacitancia que va del orden de los picoFaradios (10
-12
) a los
microFaradios (10
-6
).
La teora indica que los capacitores se cargan en funcin del tiempo segn la ecuacin:

Siendo Q la carga mxima, R la resistencia del circuito y C la capacitancia.

En el circuito que armaremos usaremos una resistencia de carga de y un capacitor
de


Por lo tanto el valor RC = 4,7 y se lo denomina tiempo caracterstico. Representa el tiempo
transcurrido, en segundos, en el que el capacitor se ha cargado:

es decir, un 63%. Se suele considerar que el capacitor ya est cargado casi en su totalidad
transcurridos 5 tiempos caractersticos.
Con el sensor analgico del Arduino no podemos medir la carga elctrica directamente, pero s la
diferencia de potencial en los terminales del capacitor, por lo tanto, dividiendo ambos miembros de
la ecuacin de carga, por la capacitancia, obtenemos:

por lo que ya podemos trabajar con los valores de tensin.
Con estos valores, y teniendo en cuenta que el arduino trabaja en un rango de 0 a 5 volts, el
grfico ideal de la carga del capacitor sera similiar a este:

Donde el punto A indica el tiempo caracterstico (4,7 s) y el punto B el quntuple del tiempo
caracterstico (23,5 s) donde se observa que el capacitor casi ha llegado a su capacidad mxima.
Vamos a la prctica
Para verificar este comportamiento armarmos el circuito propuesto anteriormente y lo conectamos
al arduino:


Arduino devuelve un rango de 1023 valores para los 5 volts, por lo tanto el 63% equivale a 647 y el
valor a los 5 Tc (tiempo caracterstico) es 1016.
La lgica de la experiencia es:
1. Descargar el capacitor poniendo las salidas 11 y 13 en LOW
2. Sensar la entrada A0 hasta que el valor sea cero. En ese momento el capacitor ya est
totalmente descargado.
3. Poner la salida 11 en modo INPUT y la 13 en HIGH, para empezar a cargar el capacitor.
4. Sensar la entrada A0 hasta que el valor sea 1016.
El cdigo del sketch de arduino se encuentra al final del post.
Los valores se imprimen por la consola serie. Se pueden grabar en un archivo de texto e importar
en una planilla de clculo. En particular utilic la de Google Docs.
Los resultados para el capacitor de estn en el siguiente archivo: Cap470microF.txt
All se puede ver que para el 63% de la carga, es decir el valor 647, pasaron 4,382440 segundos.
La teora indicaba que deban pasar 4,7 segundos (1 tiempo caracterstico), lo que es un error del
10% que, en principio, est dentro de la tolerancia del capacitor. Para los 5 tiempos caractersticos
(23,5 segundos) el valor es 1003, lo que equivale a un 98% de la carga mxima.
El grfico de la curva de carga resulta:

La cual es muy aproximada a la predicha por la teora.
Otra prueba con un capacitor de dan, para el valor 647, 34,412440 segundos contra los
33 de la teora. Un error del 10%. Y para los 5 Tc (165 segundos), un valor de 994, un 97% de
carga.
El archivo con los valores: Cap3300microF.txt
La grfica result:

Sketch de arduino:
/* http://www.fisicayarduino.com
* Experiencia: Carga de un capacitor
*/

#define analogPin 0 // pin analgico usado para medir la tensin del capac
itor
#define chargePin 13 // pin de carga del capacitor
#define dischargePin 11 // pin de descarga del capacitor

unsigned long startTime;
unsigned int readSensor;

void setup(){
pinMode(chargePin, OUTPUT); // configurar el pin de carga como salida
digitalWrite(chargePin, LOW);

Serial.begin(9600); // inicializar la comunicacin serie
}

void loop(){

/* descargar el capacitor */
digitalWrite(chargePin, LOW);
pinMode(dischargePin, OUTPUT);
digitalWrite(dischargePin, LOW);
readSensor = analogRead(analogPin); // leer el sensor
while(readSensor > 0){ // esperar hasta que se descargue completamente el capa
citor
readSensor = analogRead(analogPin); // leer el sensor
}

pinMode(dischargePin, INPUT); // configurar el pin de descarga como
entrada (alta impedancia)

Serial.println("------------------------");// indicador de comienzo de experien
cia

digitalWrite(chargePin, HIGH); // cargar el capacitor
startTime = micros(); // tiempo de comienzo
readSensor = analogRead(analogPin); // leer el sensor

while(readSensor < 1016){ // 1016 es el valor esperado a los 5 TC
Serial.print(micros() - startTime); // imprimir el tiempo transcurrido
Serial.print(",");
Serial.println(readSensor); // imprimir el valor analgico
readSensor = analogRead(analogPin); // leer el sensor
}

}