Las aplicaciones electrónicas son tan diversas que no podrían enumerarse de principio a fin. Siempre habrá una aplicación específica para resolver un desarrollo particular. Es muy raro encontrar una aplicación genérica que resuelva múltiples necesidades. Al igual que con el Voltímetro USB publicado en Neo Teo, con el circuito propuesto hoy no pretendemos construir un medidor universal que sea capaz de reemplazar a los instrumentos de banco que se utilizan para evaluar capacitores y resistencias. Esto es otra cosa. Esto es razonar, esto es aprender. Esto es analizar un abanico de posibilidades para adaptar la mejor solución a nuestro diseño. Y por supuesto, si lo deseas, también lo puedes utilizar para medir capacitores y resistencias.
Estoy convencido de que muchos de ustedes han atravesado momentos durante el desarrollo de un complejo circuito electrónico en los cuales han dicho frases como “Aquí me haría falta un circuito que pueda medir capacidad”. Por ejemplo, cuando han realizado algún oscilador o un filtro pasabandas de audio. Armar un medidor de capacitores (capacímetro) tal vez sea un emprendimiento importante que poco aprovecharemos en el futuro. Y comprarlo sería un gasto que no vale la pena para una aplicación tan pequeña. ¿Qué hacemos entonces cuando nos encontramos con ese frasco lleno de capacitores que no sabemos su valor y al menos desearíamos tener una idea aproximada de él? No lo necesitamos para reparar un marcapasos o para desarrollar un compás electrónico encargado de guiar misiles con ojivas nucleares. Hay situaciones y desarrollos específicos donde las tolerancias no requieren exactitud absoluta. A diario nos enfrentamos a diseños en los que es igual de útil y efectivo un capacitor de 100 nanofaradios que de 94 o 108 nanofaradios.
Lo mismo ocurre con las resistencias (o resistores). “¿El naranja que era?” “¿Dónde habrá quedado esa tabla de colores que…?” Hay que tener mucha experiencia y práctica en el manejo del código de colores de las resistencias para leer su valor e interpretar las bandas de colores con un simple pasaje visual. Por otro lado, dentro del diseño de circuitos complejos que aglutinan muchas secciones de sub-circuitos simples, puede hacer falta un medidor de resistencias. Un control de volumen necesita de un medidor de resistencias. Una fotocélula está acoplada por obligación a un medidor de resistencias. Y aquí nuevamente se hace presente el interrogante de la precisión y la exactitud. Subir un poco el volumen de nuestro flamante amplificador no discrimina entre 10K2, 12K u 8K7. Lo mismo si necesitamos un poco más de luz diurna para que actúe la fotocélula resistiva y se apaguen las luces del patio. No necesitamos 4 decimales. Con sólo saber una medida aproximada, muchas veces es suficiente.
Para estos casos que aparentan ser muy complejos encontramos soluciones fáciles y confiables en los microcontroladores PIC y en especial en el lenguaje de programación BASIC. Utilizando el mismo circuito que empleamos en la construcción del Voltímetro USB y agregándole un display alfanumérico convencional, resolveremos nuestra necesidad de disponer de un instrumento útil para medir capacitores y resistencias. Además, la técnica que hoy veremos nos será útil para muchos circuitos basados en PIC que necesiten dentro de su rutina de trabajo medir resistencias o capacidades aplicadas a algunos de sus pines. Con un poco de habilidad y razonamiento será muy sencillo adaptar estas rutinas y variantes en el circuito para agregarlas al Voltímetro USB NeoTeo y transformarlo en un instrumento múltiple. Si además le sumamos el amperímetro 0-5Amper que publicamos durante 2009, estaríamos muy próximos a delinear nuestro propio multímetro personal. Tal vez no resulte ser el más exacto al final de la construcción, pero estoy seguro que será el mejor del mundo porque lo habremos construido nosotros mismos. Llevará nuestra marca, nuestro sello, el reflejo de nuestra personalidad y eso es algo que no se compra con la tarjeta de los dos globitos.
La instrucción RCIN
En lenguaje de programación BASIC para PIC (en nuestro caso Proton), la instrucción RCIN se utiliza para contar o contabilizar el tiempo en que un pin del PIC permanece en un estado lógico mientras se carga o descarga un capacitor acopado en el circuito conectado al mencionado pin. Este capacitor formará parte de un circuito RC que ofrecerá una curva de carga o descarga cuyo tiempo de ejecución variará de acuerdo a los valores de los componentes asociados al pin del PIC. La sintaxis utilizada en el programa permite partir de un estado de descarga del capacitor y transitar hacia un estado de carga o el procedimiento inverso, es decir, partir de un capacitor cargado y medir el tiempo de descarga del capacitor.
Valor = RCIN PORTC.0 , HIGH
En nuestro caso, y según la sintaxis, hemos elegido el bit 0 del puerto C para conectar el circuito RC. Pondremos en estado alto el pin del PIC para determinar el estado en que finalizará el procedimiento mediante la palabra HIGH al final de la instrucción. Al resultado obtenido lo almacenaremos dentro de la variable Valor. Repasando el procedimiento podemos indicar que la instrucción RCIN medirá el tiempo en el que el capacitor tardará en cargarse hasta un determinado valor ya que la instrucción termina con la palabra HIGH. La otra manera de efectuar la medición sería partiendo de un capacitor cargado con un estado de finalización LOW, es decir bajo, que en nuestro caso significa “descargado”. Gracias a que podemos configurar el circuito de dos maneras diferentes, podremos optar por utilizar uno para el procedimiento de descarga con la instrucción RCIN y el otro para el procedimiento de carga.
Cuando RCIN se ejecuta, se inicia el funcionamiento de un contador. Este contador se detiene en el momento en que el pin asociado al circuito RC cambia de estado lógico. Esto es aproximadamente a 1,5Volts. Si el pin no cambia de estado por no tener acoplado al mismo ningún capacitor o ninguna resistencia, la instrucción cargará en la variable un 1 (uno) ya que necesitará un ciclo de cuenta para descubrir que no existe una constante de tiempo de carga o descarga. Por el contrario, si el pin no cambia de estado luego de 65535 ciclos de cuenta, la instrucción RCIN devolverá un 0 (cero). Por lo tanto, la resolución del procedimiento de medición del tiempo de carga o descarga del capacitor asociado dependerá de la frecuencia de los ciclos de reloj del sistema.
Si utilizamos un cristal de 4Mhz., los incrementos de tiempo se harán cada 10uS. Pero si utilizamos un cristal de 20Mhz, el tiempo ya cae a 2uS permitiendo una mayor resolución gracias a una mayor devolución de conteos cargados en la variable. Para nuestro caso, que empleamos el PLL del PIC 18F2550 para trabajar a 48Mhz, la resolución es mucho mayor. No debemos dejar de mencionar la importancia de la resistencia de 220 Ohms que se conecta a la entrada del pin del PIC. Si la resistencia a medir fuese, por ejemplo, un potenciómetro, al llegar a GND con el cursor central estaríamos colocando a este potencial a un pin que se destruiría mientras pasa por un estado alto. De esta manera, la resistencia nos garantiza una corriente máxima de 23mA, valor encasillado dentro de los márgenes de seguridad de trabajo para un pin de un PIC.
¿Qué obtenemos con la instrucción RCIN?
En cualquier sistema RC donde el capacitor se descarga sobre una resistencia (o resistor), esto se hace según una constante de tiempo conocida como “tau”. Esta constante representa una carga o descarga del valor de tensión entre placas del capacitor a un 63% respecto al estado previo. “Tau” se calcula multiplicando R*C. Y el tiempo que requiere el cambio de estado de una tensión a otra viene dado por la fórmula Tiempo = -“tau” * (ln (Vfinal/Vinicial)). En esta fórmula ln es el logaritmo del cociente de las tensiones. Por lo tanto, si tenemos que “tau” es igual a R*C (R en Ohms y C en Faradios), partiendo de valores conocidos como 10K para R y 0,1uF para C, “tau” (la constante RC) será igual a 1 milisegundo = 1 * 10e-3. Luego, la fórmula de “Tiempo” quedará del siguiente modo: Tiempo = -1 * 10e-3 * ( ln (5Volts / 1,5Volts)) = 1,204 * 10e-3. Por lo tanto, con este valor de tiempo para valores establecidos de R y C tendremos que, con un cristal de 20Mhz y una unidad de tiempo de 2uS, RCIN nos entregará 602 ciclos de cuenta, mientras que para un oscilador de 48Mhz el valor aproximado será de 1450 ciclos de cuenta.
La fórmula final a resolver será entonces, Unidades de RCIN = 1450 * R (en Kohms) * C (en uFaradios). Despejando los valores de C y/o de R ya podemos armar nuestras rutinas de lectura y visualización en el display de los resultados. De este modo, para valores de R conocidos y seleccionados, podemos armar medidores de capacidades desconocidas que nos entregarán valores en microfaradios. Lo mismo en el proceso inverso. A partir de capacitores de valores conocidos y seleccionados, podremos medir resistencias desconocidas que se expresarán en KOhms. Por lógica, manipulando los valores fijos de R o C obtendremos otras escalas de medición gracias a la obtención de otras constantes de tiempo aplicables en las fórmulas. Dos instrumentos de medición gracias a una única instrucción: RCIN. ¿Te imaginabas que era tan sencillo construir una aplicación donde fuera necesario emplear un medidor de resistencias o uno de capacitores? Leer un potenciómetro o un capacitor variable con un PIC que no posea conversores ADC deja de ser un imposible. Hasta con un elemental 16F84A a 20Mhz. podrás lograrlo. Sólo es cuestión de imaginarlo y aplicar lo visto en este artículo. Tú eres capaz de sorprendernos con eso y mucho más.
MARCOS ERES TODA UNA LEYENDE. TE ADMIRO, YA QUE SIEMPRE SACAS ARTICULOS DE EXPERIMENTOS DE ELECTRONICA. Yo estudio electronica por que me gusta mucho. GRACIAS POR LOS PROYECTOS QUE COMPARTES CON TODOS AQUI EN NEOTEO. 🙂
muy buen articulo ya habia intentado agregarle uno de estos a mi voltimetro y no habia funcionado ahora veo que tenia un problema con los elementos RC estos no tenian una baja tolerancia y me daba mediciones erroneas o me tiraba un error=(
muchas gracias mario.
Excelente proyecto Mario, solo Falta tener un medidor de inductancia y quedaria la herramienta perfecta para el desarrollo en RF
Buenas Mario,
Aprovecho que publicas artículo de electrónica (muy bueno, como siempre) para preguntarte lo siguiente:
– Me recomendarías un entorno de programación en C para PICs (si existiera y lo supieras)?
Gracias y un saludo!
Estimado Mario,
Podrías hacer una actualización de un articulo "Midiendo Diodos y Transistores" y considerar los transistores JFET. Por lo demás excelente amigo!.
http://www.neoteo.com/midiendo-diodos-y-transistores-15335.neo
Muchos saludos Mario.
Como siempre el mejor gracias x tus aportes
Como siempre impresionante Mario.
Claro y conciso…
Gracias por el aporte.
Excelente, muy util y muy necesario, en especial para RF, no habrá uno para inductancias por ahi???? Me encantan estos proyectos, sigan adelante!!!
se podria utilizar un pic 16f876 o 877? si se pudiese que cristal me recomendariais?
MARIO: que copado Mario. Me mataste con el 16f84a. Muy inteligente solución. Un abrazo. Jukinch
DOWS: te recomiendo el compilador ccs. http://www.ccsinfo.com/ccsfreedemo.php
Gracias jukinch.
El caso es que he encontrado otro : piklab, gratuito y para Linux!
Qué ganas de empezar a trasteaaaar!!! jajajajaja
Buenisimo el artículo!, voy a probar hacerlo.
Te tengo una pregunta.., no me recomendarias alguna tienda de electronica en capital? Me gustaria conseguir modulos de radio para hacer un control remoto, pero no se por donde buscar.. Muchas gracias!
te amo mario
cuanto es la capacidad maxima que mide de resistencias? y no se podra hacer que funciones sin necesidad de conectar al puerto usb?
la capacidad solo depende de como tu lo equipes pues se le puede aumentar la resistencia a mas de la que mario le impuso(220 ohm) solo se necesita saber algo de electronica y listo
si se pude usar sin conectar al puerto usb solo tienes que llevarte del plano que hizo mario hasta la parte del usb ( en ves de eso puedes ponerle un cable de cobre o uno de esos cables que usan los voltimetros comunes pero recuerda adaptar todo corectamente no sea que no te funcione creeme me paso eso cuando le quite el cable usb ahora le adapte el cable usb y un cable que usan los voltimetros poniendo un segundo puerto mediante una endidura que hize en el circuito.
espero haberte sido de ayuda.
"#14 te amo mario " ….Marito, mostrale tu soldador..jejejeje
Tengo un poco abandonado la electrónica pero estoy haciendo los esfuerzo para retomarlo =D
Esta muy interesante !!!
me gustaría saber como se llama esa chapa de metal con la que haces las carcazas para tus proyectos.
gracias por tu atencion
Hola,
Justo lo que yo quería hace mucho jejeje.
Vamos todavía jajaja.
Hola a todos he intentado hacer este medidor y no me da nada
Hola; super buen articulo, me podrias pasar el diagrama completo, por fas. gracias.
excelente post, pero seria genial si se pudiera medir bobinas adicinalmente, seria super util al momento de hacer nuestras propias bobinas. ahi les dejo la inquietud.
saludos
necesito saver donde puedo encontrar esas pantallas? ahudenme porfa
Buenas desde ya gracias muy bien explicado pero tengo un problema debo hacer este proyecto pero usando mikrobasic y no me reconoce la funcion RCIN no se si tiene otro nombre si me pueden ayudar se los agradeceria espero respuesta
hola me interesa mucho tu Medidor de Resistencias y Capacitores si me puedes mandar la placa impresa y componentes con el progama te lo agradesco mucho
Y si tienes un probador de transistores similar te lo agradesco de antemano