Arduino Capacitance Meter

by hIOTron IoT in Circuits > Arduino

877 Views, 0 Favorites, 0 Comments

Arduino Capacitance Meter

Arduino-Capacitance-Meter.jpg

We have a cost-effective capacitance meter to measure capacitance using Arduino.

Supplies

Hardware Components

Arduino Uno

555 timer IC

IC 74HC14 Schmitt trigger gate

Resistor 1k ohm

Resistor 10k ohm

Capacitor 100 nF

Capacitor 1000 µF

LCD - 16x2

About Project

555 Timer IC.jpg
Capacitance meter outcome.jpg

555 Timer IC

The output signal frequency relies on R1, R2 resistors, and capacitor C1. The equation is given as,
Frequency (F) = 1/ (Time period) = 1.44/ ((R1+R2*2)*C1). By placing the resistance and capacitance values in the equation we will see the frequency of output square wave.

Frequency (F) = 1/ (Time period) = 1.44/ (21000*C). From the above formula, we can find out the capacitance Capacitance C = 1.44/ (21000*F)

The Uno has a specific function pulseIn, which allows us to ascertain the positive state duration or negative state duration of a precise rectangular wave. After connecting the unknown capacitor to the 555 timer circuit which generates a square wave output and whose frequency is instantly associated with the capacitance of the capacitor.

This signal is provided to UNO through the Schmitt Trigger gate. The UNO estimates the frequency. Using this frequency we program the UNO to estimate the capacitance with the above formula.

Learn more about IoT Course which will helps to build IoT projects.

Run a Program

#include

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

int32_t Htime; int32_t Ltime; float Ttime; float frequency; float capacitance;

void setup() { pinMode(8,INPUT); //pin 8 as signal input lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("capacitance ="); } void loop() { for (int i=0;i<5;i++) //measure time duration five times { Ltime=(pulseIn(8,HIGH)+Ltime)/2; //get average for each cycle Htime=(pulseIn(8,LOW)+Htime)/2; }

Ttime = Htime+Ltime; frequency=1000000/Ttime; capacitance = (1.44*1000000000)/(20800*frequency); //calculating the Capacitance in nF lcd.setCursor(0,1); lcd.print(capacitance); lcd.print(" nF "); delay(500); }