Medidor de Capacitancia Autoranging DIY (10 pF–10 µF) – Fácil Construcción con Arduino
Componentes y Suministros
| Componente | Cantidad |
|---|---|
| Arduino Nano R3 | 1 |
| Resistencia 10k ohm | 1 |
| Resistencia 1k ohm | 1 |
| Resistencia 1M ohm | 1 |
| LCD Alfanumérico 16x2 | 1 |
| Potenciómetro Monovuelta 10k ohm | 1 |
Herramientas Necesarias
- Soldador (genérico)
Aplicaciones y Servicios Online
- Arduino IDE
Sobre el Proyecto
Los multímetros digitales simples no miden capacitancia; para ello se necesita un multímetro avanzado y caro o un módulo dedicado. En este proyecto construimos un medidor de capacitancia Arduino con función Auto-Ranging. Mide desde 10 pF hasta 10,000 µF (10 mF). La medición es automática: basta conectar el capacitor a los bornes de medida. El dispositivo tiene dos rangos: nF y µF. Primero se activa el rango nF; si la capacitancia es demasiado grande, conmuta a µF.
Principio de Funcionamiento
Cada medidor de capacitancia usa un circuito RC con resistencias conocidas y capacitor desconocido. El Arduino mide la tensión en el capacitor y registra el tiempo que tarda en alcanzar un cierto porcentaje de su tensión de carga completa (constante de tiempo τ = R·C). Conociendo la resistencia, el programa calcula la capacitancia desconocida. El capacitor bajo prueba se carga a través de una de las resistencias. El Arduino inicia la carga según la capacidad estimada. Al encender, se realiza una calibración a cero (no debe haber capacitor conectado). Todos los capacitores deben pre-descargarse.

La precisión es ± unos pocos por ciento, dependiendo principalmente de la tolerancia de las resistencias usadas y la estabilidad de la tensión de alimentación. Finalmente, el dispositivo se aloja en una caja adecuada, convirtiéndose en otra herramienta útil para tu laboratorio.
Código
Código Arduino (C/C++)
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS,E,D4,D5,D6,D7
void setup() {
lcd.begin(16, 2); // LCD 16x2
pinMode(A0, INPUT);
}
unsigned long time0, time1, time2;
float c, null0;
byte kn, mk, i;
void loop() {
lcd.setCursor(15, 0);
lcd.print("*");
if (mk == 0) {
pinMode(8, OUTPUT);
pinMode(7, INPUT);
digitalWrite(8, HIGH);
}
if (mk == 1) {
pinMode(7, OUTPUT);
pinMode(8, INPUT);
digitalWrite(7, HIGH);
}
time0 = micros();
while (analogRead(A0) < 644) {
time2 = micros() - time0;
if (time2 >= 1000000 && mk == 0) {
mk = 1;
time0 = 100000000;
break;
}
}
time1 = micros() - time0;
while (analogRead(A0) > 0) {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
if (mk == 1 && time1 < 1000) mk = 0;
lcd.setCursor(1, 0);
c = time1;
c = c / 1000 - null0;
c = abs(c);
if (time1 >= 10000000) {
lcd.setCursor(1, 0);
lcd.print(" TEST uF ");
} else {
lcd.print(c);
if (mk == 0) lcd.print(" nF ");
if (mk == 1) lcd.print(" uF ");
}
if (i == 0) {
i++;
null0 = c + 0.02;
}
delay(100);
}
Esquemático

Proceso de manufactura
- Alerta de Sed Inteligente para Plantas: Sensor DIY para Riego Óptimo
- Construya un osciloscopio Arduino de 20 kHz en LCD Nokia 5110: Guía DIY fácil
- Detector de terremotos DIY con ADXL335 – Acelerómetro 3 ejes de baja potencia
- Reloj de Palabras en Italiano con Arduino Nano, NeoPixel, LCD y RTC
- Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
- Medidor kWh Sigfox Fiable con Arduino MKR Fox 1200
- Medidor de Frecuencia DIY con Arduino Nano – Hasta 6.5 MHz
- Monitor de temperatura con Bluetooth usando Arduino Nano
- Cerradura por Gestos Sin Contacto: Acceso Seguro con APDS-9960 y Arduino
- Circuito de entrada analógica aislada para Arduino
- Test de Precisión de Tiempo de Reacción con Arduino UNO