Mạch đo điện dung kỹ thuật số sử dụng Arduino

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng ta sẽ xây dựng một mạch đo điện dung kỹ thuật số sử dụng Arduino có thể đo điện dung của các tụ điện từ 1 microfarad đến 4000 microfarad với độ chính xác hợp lý.



Giới thiệu

Chúng tôi đo giá trị của tụ điện khi các giá trị ghi trên thân tụ điện không rõ ràng hoặc để tìm giá trị của tụ điện cũ trong mạch của chúng tôi cần được thay thế sớm hoặc muộn và có một số lý do khác để đo điện dung.

Để tìm điện dung, chúng ta có thể dễ dàng đo bằng đồng hồ vạn năng kỹ thuật số, nhưng không phải đồng hồ vạn năng nào cũng có tính năng đo điện dung và chỉ những đồng hồ vạn năng đắt tiền mới có chức năng này.



Vì vậy, đây là một mạch có thể được xây dựng và sử dụng một cách dễ dàng.

Chúng tôi đang tập trung vào các tụ điện có giá trị lớn hơn từ 1 microfarad đến 4000 microfarad dễ bị mất điện dung do lão hóa, đặc biệt là các tụ điện, bao gồm chất điện phân lỏng.

Trước khi đi vào chi tiết mạch, hãy xem cách chúng ta có thể đo điện dung với Arduino.

Hầu hết các máy đo điện dung Arduino đều dựa vào đặc tính hằng số thời gian RC. Vậy hằng số thời gian RC là gì?

Hằng số thời gian của mạch RC có thể được xác định là thời gian để tụ điện đạt được 63,2% điện tích đầy. 0 volt là mức sạc 0% và 100% là mức sạc đầy điện áp của tụ điện.

Tích giá trị của điện trở tính bằng ohm và giá trị của tụ điện tính bằng farad cho ra hằng số Thời gian.

T = R x C

T là hằng số Thời gian

Bằng cách sắp xếp lại phương trình trên, chúng ta nhận được:

C = T / R

C là giá trị điện dung chưa biết.

T là hằng số thời gian của đoạn mạch RC mà tụ điện tích đầy 63,2%.

R là điện trở đã biết.

Arduino có thể cảm nhận điện áp thông qua chân analog và giá trị điện trở đã biết có thể được nhập vào chương trình theo cách thủ công.

Bằng cách áp dụng phương trình C = T / R trong chương trình, chúng ta có thể tìm thấy giá trị điện dung chưa biết.

Bây giờ bạn sẽ có một ý tưởng làm thế nào chúng ta có thể tìm thấy giá trị của điện dung chưa biết.

Trong bài đăng này, tôi đã đề xuất hai loại máy đo điện dung, một loại có màn hình LCD và loại khác sử dụng màn hình nối tiếp.

Nếu bạn là người thường xuyên sử dụng máy đo điện dung này thì tốt hơn nên sử dụng thiết kế màn hình LCD và nếu bạn không phải là người thường xuyên sử dụng thì tốt hơn nên sử dụng thiết kế màn hình nối tiếp vì nó giúp bạn tiết kiệm một số tiền trên màn hình LCD.

Bây giờ chúng ta hãy chuyển sang sơ đồ mạch.

Máy đo điện dung dựa trên Màn hình nối tiếp:



Như bạn có thể thấy, mạch rất đơn giản chỉ cần một vài điện trở để tìm điện dung chưa biết. 1K ohm là giá trị điện trở đã biết và điện trở 220 ohm được sử dụng để xả tụ điện trong khi quá trình đo diễn ra. Điện áp tăng và giảm trên chân A0 được kết nối giữa điện trở 1K ohm và 220 ohm. Vui lòng quan tâm đến cực tính nếu bạn đang sử dụng tụ điện phân cực như điện phân. Chương trình:
//-----------------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------------------//

Tải mã trên lên Arduino khi đã hoàn tất thiết lập phần cứng, ban đầu không kết nối tụ điện. Mở màn hình nối tiếp nó thông báo 'Vui lòng kết nối tụ điện'.

Bây giờ kết nối một tụ điện, điện dung của nó sẽ được hiển thị như minh họa bên dưới.

Nó cũng hiển thị thời gian cần thiết để đạt được 63,2% điện áp sạc đầy của tụ điện, được hiển thị dưới dạng thời gian đã trôi qua.

Máy đo điện dung kỹ thuật số sử dụng Arduino

Sơ đồ mạch cho máy đo điện dung dựa trên LCD:

Sơ đồ trên là kết nối giữa màn hình LCD và Arduino. Chiết áp 10K được cung cấp để điều chỉnh độ tương phản của màn hình. Phần còn lại của các kết nối là tự giải thích.

Mạch trên hoàn toàn giống với thiết kế dựa trên màn hình nối tiếp, bạn chỉ cần kết nối màn hình LCD.

Chương trình cho máy đo điện dung dựa trên 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------------------//

Với việc thiết lập phần cứng hoàn tất, hãy tải lên đoạn mã trên Ban đầu không kết nối tụ điện. Màn hình hiển thị 'Vui lòng kết nối tụ điện !!!' bây giờ bạn kết nối tụ điện. Màn hình sẽ hiển thị giá trị của tụ điện và thời gian đã trôi qua để tụ điện sạc đầy 63,2%.

Nguyên mẫu của Tác giả:




Một cặp: Mạch đo tốc độ Arduino để đọc chính xác Tiếp theo: Cách điều khiển động cơ Servo bằng cần điều khiển