loading

MEDIDOR DE CAPACIDAD CON ARDUINO Y EL CHIP TEMPORIZADOR 555

Se trata de la construcción de un sencillo capacímetro, o sea un dispositivo para medir la capacidad en microFaradios y nanoFaradios de los capacitores con un rango mínimo de 1 nanoFaradio y hasta cientos de microFaradios.

Este proyecto, mi primer instructable, se
basa en las características del conocido chip 555 configurado como multivibrador monostable.

El 555 como monostable

En este modo, el 555 es utilizado para producir un pulso de salida cuya duración la podemos determinar mediante la elección de una resistencia y un capacitor mediante una fórmula tan sencilla como la ley de Ohm:

T = 1.1 x R1 x C1

Por lo tanto, de esta fórmula podemos despejar la capacidad :

C1 = T / (1.1 x R1)

Y como el valor de R lo conocemos (lo hemos elegido nosotros) nos faltaría conocer el valor de T (duración del pulso).

Es aquí donde hacemos intervenir a nuestro arduino, al que le encargaremos la misión de determinar T, calcular C1 y comunicárnoslo a través del puerto serie.

Step 1: BREVE EXPLICACION DEL 555 COMO MONOSTABLE

FUNCIONAMIENTO DEL 555 COMO MONOSTABLE (Ver figura arriba)

El proceso se inicia cuando se aplica a la entrada del 555 (pin 2 : TRIGGER o DISPARO) un pulso disparador que lleva el nivel de esta entrada a menos de 1/3 VCC, lo que dispara un pulso a la salida (pin 3 : OUTPUT) desde el nivel bajo al nivel alto (VCC).

Al mismo tiempo comienza la carga del capacitor cuya capacidad queremos averiguar siguiendo la conocida ley de carga de los capacitores.

Cuando dicha carga llega al nivel 2/3 VCC, la salida vuelve al nivel bajo marcando el final del pulso.

La duración del pulso se corresponde con el valor determinado con la fórmula antes descripta.

Step 2: LA FUNCION DEL ARDUINO

ARDUINO COMO MEDIDOR DE TIEMPO

La salida del 555 se conecta al arduino (para este proyecto usé el arduino uno) en dos de sus terminales (2 y 3) los que por medio de programación mediante el uso de Interrupts o Interrupciones son habilitados para detectar los cambios de nivel de la salida del 555.

De este modo el pin 2 que está vinculado al Interrupt 0 del arduino detectará el flanco de subida (RISING) del pulso de salida e instantáneamente, interrumpiendo toda actividad que se estuviera ejecutando en ese momento, procesará las instrucciones que escribiremos en una función que denominaremos Start(). En esta función la única acción que ejecutará el arduino será la de asignar un valor de tiempo inicial a una variable global (volatile). Al cabo de esto, la interrupción finaliza y el arduino continua su operación normal.

Luego, cuando el pulso de salida del 555 finalice, el pin 3 que está vinculado al interrupt 1 detectará el flanco de bajada (FALLING) del mismo y se vuelve a producir otra interrupción en la operación del arduino para ahora ejecutar instrucciones en otra función que denominaremos Stop() y que será asignar a otra variable un tiempo final.

La función Loop() del código se encarga de verificar continuamente si el valor de dicha variable ha dejado de ser cero, lo que ocurrirá al finalizar el pulso.

Cuando la condición en nuestro bloque if nos confirma que ello ha ocurrido, procedemos a la determinación de T, la duración del pulso y con él calculamos la capacidad del capacitor :

T = T_final - T_inicial

Con esto obtenemos el tiempo que necesitábamos y solo nos resta calcular el valor de la capacidad incógnita y transmitirla por el puerto serie.

En el esquematico del circuito podemos ver los valores de los componentes utilizados.

El valor de R1 de 1 Mohm es adecuado para capacitores en el rango de 1nF a 1uF aproximadamente. Para valores mayores la duración de los pulsos sería de varios segundos, por lo que cuando se trate de medir estos valores lo recomendable sería utilizar un resistor de 1kohm.

Step 3: CONSTRUCCION DEL CIRCUITO

En la imagen se puede ver el circuito montado en un protoboard. Es muy simple y fácil de implementar.

Tambien puede cliquear el archivo .ino para ver el código fuente, aunque sin los colores y el formato del editor del arduino.

Toda la alimentación la provee el arduino (VCC = +5V).

El circuito de disparo consta de un pulsador en conjunto con un resistor de 1k y un capacitor de 100nF.

El capacitor en la pata 5 (CV) del 555 no es necesario para este proyecto.

Espero que este sencillo instructable pueda serle de utilidad a alguien, sobre todo porque a pesar de su simpleza abarca conceptos avanzados como interrupciones que son tan útiles para nuestros proyectos.

Tambien nos permite conocer un poco más al tan versatil ic 555.

Hasta un próximo instructable.

<p>en el programa de arduino me sale &quot;start was not declared in this cope&quot;, como lo soluciono?</p>
<p>Funciona declarando las funciones start y stop antes de declarar la funci&oacute;n setup.</p>
<p>Muy bueno!! La &uacute;nica duda que tengo es donde se encuentra el c&oacute;digo fuente para descargar. Gracias!</p>
Al final del instructable est&aacute; el link al archivo .ino (<a href="https://www.instructables.com/files/orig/FP2/BJXQ/I45HNZ55/FP2BJXQI45HNZ55.ino" rel="nofollow">https://www.instructables.com/files/orig/FP2/BJXQ/I45HNZ55/FP2BJXQI45HNZ55.ino</a>)
<p>Ahh, gracias. Cuando entr&eacute; por primera vez lo busqu&eacute; y no aparec&iacute;a. Gracias! Te molesta si hago un video sobre esto para Youtube?, obviamente poniendo un link hacia este instructable. Saludos!</p>
<p>Adelante. No hay problema. Cuando lo tengas p&aacute;same el link.</p>
<p>Unas dudas/consultas, por alguna raz&oacute;n el pulsador de disparo en serie con el capacitor no activa el circuito, pero sin el capacitor, si. Despu&eacute;s, para capacitores entre 1uF y 100uF anda perfecto, pero si es menos, el pulso de disparo resulta demasiado largo y no funciona. De igual manera, si se testea un capacitor de 100uF para arriba se demora una eternidad y arroja un valor err&oacute;neo. Alguna idea de como solucionarlo? Gracias!</p>
<p>Hola, en cuanto al circuito de disparo, cambia el resistor de 1k por uno de 10k. El capacitor mantenlo en 100 nF cer&aacute;mico. Con esto deber&iacute;as poder medir capacidades &gt;= 1nF (es hasta donde yo pude llegar).</p><p>En cuanto a los tiempos de medici&oacute;n, te sugiero que a partir de 1 uF, utilizes en el circuito RC un resistor de 10k en lugar del de 1M para bajarlos considerablemente. No olvides de cambiar este valor en el c&oacute;digo.</p><p>No es un dispositivo que sea un alarde de precisi&oacute;n, pero creo que por su simpleza admite un mayor rango de tolerancia en los valores medidos. </p><p>En mi caso, los que m&aacute;s se desv&iacute;an de su valor te&oacute;rico son los electrol&iacute;ticos.</p><p>Saludos!</p>
<p>Gracias, va mejorando pero por alguna extra&ntilde;a raz&oacute;n el circuito de disparo no me funciona. Prob&eacute; de todo, cambiando capacitores, resistencias, el lugar del integrado en la protoboard, el pulsador, pero no hay caso. No consigo que se dispare. Ya ver&eacute; como solucionarlo. Igual, muchas gracias y saludos!</p>
<p>Te cuento mi experiencia. Tal como t&uacute;, al principio no emplee capacitor de disparo y as&iacute; pude medir capacitores a partir de los 330 nF sin problemas. Para poder medir capacidades menores tuve que agregar el capacitor. Y a prueba y error consegu&iacute; que funcione con el resistor de 10k y el capacitor cer&aacute;mico de 100 nF. El capacitor fue lo m&aacute;s problem&aacute;tico ya que s&oacute;lo me funcion&oacute; uno del tipo cer&aacute;mico (una de esas lentejitas verdes). Saludos!</p>

About This Instructable

7,385views

6favorites

License:

More by ramtonio:Medidor de capacitancia con el arduino y el op-amp 741 Capacitance meter with arduino and 741 op-amp Capacitance meter with arduino and 555 timer 
Add instructable to: