Obwód cyfrowego miernika pojemności wykorzystujący Arduino

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym poście zamierzamy zbudować obwód cyfrowego miernika pojemności za pomocą Arduino, który może mierzyć pojemność kondensatorów w zakresie od 1 mikrofarada do 4000 mikrofaradów z rozsądną dokładnością.



Wprowadzenie

Mierzymy wartość kondensatorów, gdy wartości zapisane na korpusie kondensatora są nieczytelne, lub w celu znalezienia wartości starzejącego się kondensatora w naszym obwodzie, który należy wkrótce lub później wymienić i istnieje kilka innych powodów, aby zmierzyć pojemność.

Aby znaleźć pojemność, możemy łatwo zmierzyć za pomocą multimetru cyfrowego, ale nie wszystkie multimetry mają funkcję pomiaru pojemności i tylko drogie multimetry mają tę funkcję.



Oto obwód, który można z łatwością zbudować i używać.

Skupiamy się na kondensatorach o większej wartości od 1 mikrofarada do 4000 mikrofaradów, które są podatne na utratę pojemności na skutek starzenia, zwłaszcza kondensatory elektrolityczne, które składają się z ciekłego elektrolitu.

Zanim przejdziemy do szczegółów obwodu, zobaczmy, jak możemy zmierzyć pojemność za pomocą Arduino.

Większość mierników pojemności Arduino opiera się na stałej czasowej RC. Więc jaka jest stała czasowa RC?

Stała czasowa obwodu RC może być zdefiniowana jako czas, w którym kondensator osiągnie 63,2% pełnego naładowania. Zero V to 0% naładowania, a 100% to pełne napięcie naładowania kondensatora.

Iloczyn wartości rezystora w omach i wartości kondensatora w faradzie daje stałą czasową.

T = R x C

T jest stałą czasową

Przekształcając powyższe równanie otrzymujemy:

C = T / R

C to nieznana wartość pojemności.

T jest stałą czasową obwodu RC, która stanowi 63,2% pełnego naładowania kondensatora.

R to znany opór.

Arduino może wykryć napięcie poprzez pin analogowy, a znaną wartość rezystora można wprowadzić do programu ręcznie.

Stosując w programie równanie C = T / R możemy znaleźć nieznaną wartość pojemności.

Do tej pory miałbyś pomysł, jak możemy znaleźć wartość nieznanej pojemności.

W tym poście zaproponowałem dwa rodzaje mierników pojemności, jeden z wyświetlaczem LCD i drugi z monitorem szeregowym.

Jeśli często korzystasz z tego miernika pojemności, lepiej wybierz projekt wyświetlacza LCD, a jeśli nie jesteś częstym użytkownikiem, lepiej wybierz projekt monitora szeregowego, ponieważ pozwala zaoszczędzić trochę pieniędzy na wyświetlaczu LCD.

Przejdźmy teraz do schematu połączeń.

Miernik pojemności oparty na Serial Monitor:



Jak widać, obwód jest bardzo prosty, wystarczy kilka rezystorów, aby znaleźć nieznaną pojemność. 1 kiloom to znana wartość rezystora, a rezystor 220 omów używany do rozładowania kondensatora podczas pomiaru. rosnące i malejące napięcie na pinie A0, który jest podłączony między rezystorami 1K ohm i 220 ohm. Jeśli używasz kondensatorów spolaryzowanych, takich jak elektrolityczne, zwróć uwagę na biegunowość Program:
//-----------------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------------------//

Prześlij powyższy kod do Arduino z zakończoną konfiguracją sprzętu, początkowo nie podłączaj kondensatora. Otwórz szeregowy monitor, na którym pojawi się komunikat „Podłącz kondensator”.

Teraz podłącz kondensator, jego pojemność zostanie wyświetlona, ​​jak pokazano poniżej.

Pokazuje również czas potrzebny do osiągnięcia 63,2% pełnego napięcia ładowania kondensatora, które jest przedstawiane jako upływający czas.

Cyfrowy miernik pojemności wykorzystujący Arduino

Schemat obwodu miernika pojemności opartego na LCD:

Powyższy schemat przedstawia połączenie wyświetlacza LCD z Arduino. Potencjometr 10K służy do regulacji kontrastu wyświetlacza. Pozostałe połączenia są oczywiste.

Powyższy obwód jest dokładnie taki sam, jak projekt oparty na monitorze szeregowym, wystarczy podłączyć wyświetlacz LCD.

Program dla miernika pojemności opartego na LCD:

//-----------------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------------------//

Po zakończeniu konfiguracji sprzętu prześlij powyższy kod. Początkowo nie podłączaj kondensatora. Na wyświetlaczu pojawia się komunikat „Podłącz kondensator !!!” teraz podłączasz kondensator. Wyświetlacz pokaże wartość kondensatora i czas, jaki upłynął do osiągnięcia 63,2% pełnego naładowania kondensatora.

Prototyp autora:




Poprzedni: Obwód obrotomierza Arduino do precyzyjnych odczytów Dalej: Jak sterować serwomotorem za pomocą joysticka