Schaltung des digitalen Kapazitätsmessers mit Arduino

Schaltung des digitalen Kapazitätsmessers mit Arduino

In diesem Beitrag werden wir eine digitale Kapazitätsmessschaltung unter Verwendung von Arduino konstruieren, die die Kapazität von Kondensatoren im Bereich von 1 Mikrofarad bis 4000 Mikrofarad mit angemessener Genauigkeit messen kann.



Einführung

Wir messen den Wert der Kondensatoren, wenn die auf den Körper des Kondensators geschriebenen Werte nicht lesbar sind, oder um den Wert des alternden Kondensators in unserer Schaltung zu ermitteln, der früher oder später ausgetauscht werden muss, und es gibt mehrere andere Gründe, die Kapazität zu messen.



Um die Kapazität zu finden, können wir leicht mit einem Digitalmultimeter messen, aber nicht alle Multimeter verfügen über eine Kapazitätsmessfunktion, und nur die teuren Multimeter verfügen über diese Funktionalität.

Hier ist also eine Schaltung, die mit Leichtigkeit aufgebaut und verwendet werden kann.



Wir konzentrieren uns auf Kondensatoren mit einem größeren Wert von 1 Mikrofarad bis 4000 Mikrofarad, die aufgrund der Alterung leicht ihre Kapazität verlieren, insbesondere Elektrolytkondensatoren, die aus flüssigem Elektrolyten bestehen.

Bevor wir auf die Schaltungsdetails eingehen, wollen wir uns ansehen, wie wir die Kapazität mit Arduino messen können.

Die meisten Arduino-Kapazitätsmesser basieren auf der Eigenschaft der RC-Zeitkonstante. Was ist die RC-Zeitkonstante?



Die Zeitkonstante der RC-Schaltung kann als Zeit definiert werden, die der Kondensator benötigt, um 63,2% der vollen Ladung zu erreichen. Null Volt ist 0% Ladung und 100% ist die volle Spannungsladung des Kondensators.

Das Produkt aus dem Wert des Widerstands in Ohm und dem Wert des Kondensators in Farad ergibt eine Zeitkonstante.

T = R x C.

T ist die Zeitkonstante

Durch Umordnen der obigen Gleichung erhalten wir:

C = T / R.

C ist der unbekannte Kapazitätswert.

T ist die Zeitkonstante der RC-Schaltung, die 63,2% des Vollladekondensators beträgt.

R ist ein bekannter Widerstand.

Der Arduino kann die Spannung über einen analogen Pin erfassen und der bekannte Widerstandswert kann manuell in das Programm eingegeben werden.

Durch Anwenden der Gleichung C = T / R im Programm können wir den unbekannten Kapazitätswert finden.

Inzwischen hätten Sie eine Idee, wie wir den Wert unbekannter Kapazität ermitteln können.

In diesem Beitrag habe ich zwei Arten von Kapazitätsmessern vorgeschlagen, eine mit LCD-Anzeige und eine mit seriellem Monitor.

Wenn Sie dieses Kapazitätsmessgerät häufig verwenden, ist es besser, das LCD-Display zu verwenden, und wenn Sie nicht häufig verwenden, sollten Sie das serielle Monitor-Design verwenden, da Sie dadurch etwas Geld für das LCD-Display sparen.

Fahren wir nun mit dem Schaltplan fort.

Kapazitätsmesser auf Basis eines seriellen Monitors:



Wie Sie sehen können, ist die Schaltung sehr einfach. Es werden nur ein paar Widerstände benötigt, um die unbekannte Kapazität zu ermitteln. Der 1K-Ohm ist der bekannte Widerstandswert und der 220-Ohm-Widerstand, der zum Entladen des Kondensators während des Messvorgangs verwendet wird Ansteigende und abfallende Spannung an Pin A0, der zwischen 1 K Ohm und 220 Ohm Widerständen angeschlossen ist. Achten Sie auf die Polarität, wenn Sie polarisierte Kondensatoren wie Elektrolyt verwenden. Programm:
//-----------------Program developed by R.Girish------------------//
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
Serial.print('Value = ')
Serial.print((long)microFarads)
Serial.println(' microFarads')
Serial.print('Elapsed Time = ')
Serial.print(elapsedTime)
Serial.println('mS')
Serial.println('--------------------------------')
}
else
{
Serial.println('Please connect Capacitor!')
delay(1000)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Laden Sie den obigen Code mit abgeschlossenem Hardware-Setup auf Arduino hoch und schließen Sie den Kondensator zunächst nicht an. Öffnen Sie den seriellen Monitor mit der Aufschrift „Bitte Kondensator anschließen“.

Schließen Sie nun einen Kondensator an, dessen Kapazität wie unten dargestellt angezeigt wird.

Es zeigt auch die Zeit, die benötigt wird, um 63,2% der vollen Ladespannung des Kondensators zu erreichen, die als verstrichene Zeit angezeigt wird.

Digitales Kapazitätsmessgerät mit Arduino

Schaltplan für LCD-basiertes Kapazitätsmessgerät:

Das obige Schema zeigt die Verbindung zwischen dem LCD-Display und Arduino. Das 10K-Potentiometer dient zum Einstellen des Kontrasts des Displays. Die restlichen Verbindungen sind selbsterklärend.

Die obige Schaltung entspricht genau dem seriellen Monitor-basierten Design, das Sie nur zum Anschließen des LCD-Displays benötigen.

Programm für LCD-basiertes Kapazitätsmessgerät:

//-----------------Program developed by R.Girish------------------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' CAPACITANCE')
lcd.setCursor(0,1)
lcd.print(' METER')
delay(1000)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Value = ')
lcd.print((long)microFarads)
lcd.print(' uF')
lcd.setCursor(0,1)
lcd.print('Elapsed:')
lcd.print(elapsedTime)
lcd.print(' mS')
delay(100)
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Please connect')
lcd.setCursor(0,1)
lcd.print('capacitor !!!')
delay(500)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Laden Sie mit dem abgeschlossenen Hardware-Setup den obigen Code hoch. Schließen Sie den Kondensator zunächst nicht an. Das Display zeigt 'Bitte Kondensator anschließen !!!' Jetzt schließen Sie den Kondensator an. Das Display zeigt den Wert des Kondensators und die verstrichene Zeit an, die benötigt wurde, um 63,2% des Vollladekondensators zu erreichen.

Prototyp des Autors:




Zurück: Arduino Tachometer-Schaltung für präzise Messwerte Weiter: So steuern Sie den Servomotor mit einem Joystick