Κύκλωμα ψηφιακής χωρητικότητας μετρητή με χρήση του Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα κύκλωμα ψηφιακού μετρητή χωρητικότητας χρησιμοποιώντας το Arduino το οποίο μπορεί να μετρήσει την χωρητικότητα των πυκνωτών που κυμαίνονται από 1 microfarad έως 4000 microfarad με λογική ακρίβεια.



Εισαγωγή

Μετράμε την τιμή των πυκνωτών όταν οι τιμές που γράφονται στο σώμα του πυκνωτή δεν είναι ευανάγνωστες ή για να βρούμε την τιμή του πυκνωτή γήρανσης στο κύκλωμα μας που πρέπει να αντικατασταθεί σύντομα ή αργότερα και υπάρχουν πολλοί άλλοι λόγοι για τη μέτρηση της χωρητικότητας.

Για να βρούμε την χωρητικότητα μπορούμε εύκολα να μετρήσουμε χρησιμοποιώντας ένα ψηφιακό πολύμετρο, αλλά δεν έχουν όλα τα πολύμετρα δυνατότητα μέτρησης χωρητικότητας και μόνο τα ακριβά πολυμέτρα έχουν αυτή τη λειτουργικότητα.



Εδώ είναι ένα κύκλωμα που μπορεί να κατασκευαστεί και να χρησιμοποιηθεί με ευκολία.

Εστιάζουμε σε πυκνωτές με μεγαλύτερη τιμή από 1 microfarad έως 4000 microfarad που είναι επιρρεπείς να χάσουν την χωρητικότητά του λόγω γήρανσης, ιδίως ηλεκτρολυτικών πυκνωτών, οι οποίοι αποτελούνται από υγρό ηλεκτρολύτη.

Πριν πάμε σε λεπτομέρειες κυκλώματος, ας δούμε πώς μπορούμε να μετρήσουμε την χωρητικότητα με το Arduino.

Οι περισσότεροι μετρητές χωρητικότητας Arduino βασίζονται σε σταθερή ιδιότητα χρόνου RC. Λοιπόν, τι είναι σταθερή ώρα RC;

Η σταθερά χρόνου του κυκλώματος RC μπορεί να οριστεί ως χρόνος που απαιτείται για να φτάσει ο πυκνωτής το 63,2% της πλήρους φόρτισης. Το μηδέν volt είναι 0% φόρτιση και το 100% είναι το πλήρες φορτίο του πυκνωτή.

Το προϊόν της τιμής της αντίστασης σε ohm και η τιμή του πυκνωτή στο farad δίνει χρόνο σταθερά.

T = R x Γ

T είναι η σταθερά του χρόνου

Αναδιατάσσοντας την παραπάνω εξίσωση παίρνουμε:

C = T / R

C είναι η άγνωστη τιμή χωρητικότητας.

T είναι η χρονική σταθερά του κυκλώματος RC που είναι 63,2% του πυκνωτή πλήρους φόρτισης.

Το R είναι μια γνωστή αντίσταση.

Το Arduino μπορεί να ανιχνεύσει την τάση μέσω αναλογικού πείρου και η γνωστή τιμή αντίστασης μπορεί να εισαχθεί στο πρόγραμμα χειροκίνητα.

Εφαρμόζοντας την εξίσωση C = T / R στο πρόγραμμα μπορούμε να βρούμε την άγνωστη τιμή χωρητικότητας.

Μέχρι τώρα θα έχετε ιδέα πώς μπορούμε να βρούμε την αξία της άγνωστης χωρητικότητας.

Σε αυτήν την ανάρτηση πρότεινα δύο είδη μετρητή χωρητικότητας, ένα με οθόνη LCD και ένα άλλο χρησιμοποιώντας σειριακή οθόνη.

Εάν είστε συχνός χρήστης αυτού του μετρητή χωρητικότητας, είναι καλύτερα να ακολουθήσετε τη σχεδίαση οθόνης LCD και εάν δεν είστε συχνός χρήστης προτιμήστε τη σχεδίαση σειριακών οθονών επειδή σας εξοικονομεί μερικά χρήματα στην οθόνη LCD.

Τώρα ας προχωρήσουμε στο διάγραμμα κυκλώματος.

Μετρητής χωρητικότητας με βάση το Serial Monitor:



Όπως μπορείτε να δείτε, το κύκλωμα είναι πολύ απλό, χρειάζονται μόνο δύο αντιστάσεις για να βρείτε την άγνωστη χωρητικότητα. Το 1K ohm είναι η γνωστή τιμή αντίστασης και η αντίσταση 220 ohm χρησιμοποιείται για την εκφόρτιση του πυκνωτή κατά τη διάρκεια της διαδικασίας μέτρησης. Το Arduino αισθάνεται το αύξηση και μείωση της τάσης στον ακροδέκτη Α0 που συνδέεται μεταξύ 1Κ ohm και 220 ohm αντιστάσεων. Προσέξτε την πολικότητα εάν χρησιμοποιείτε πολωμένους πυκνωτές όπως ηλεκτρολυτικός. Πρόγραμμα:
//-----------------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------------------//

Ανεβάστε τον παραπάνω κωδικό στο Arduino με ολοκληρωμένη εγκατάσταση υλικού, αρχικά μην συνδέσετε τον πυκνωτή. Ανοίξτε τη σειριακή οθόνη που λέει 'Παρακαλώ συνδέστε τον πυκνωτή'.

Τώρα συνδέστε έναν πυκνωτή, η χωρητικότητά του θα εμφανίζεται όπως φαίνεται παρακάτω.

Δείχνει επίσης το χρόνο που απαιτείται για να φτάσει το 63,2% της τάσης πλήρους φόρτισης του πυκνωτή, η οποία εμφανίζεται ως χρόνος που έχει παρέλθει.

Μετρητής ψηφιακής χωρητικότητας με χρήση του Arduino

Διάγραμμα κυκλώματος για μετρητή χωρητικότητας με βάση LCD:

Το παραπάνω σχήμα είναι η σύνδεση μεταξύ της οθόνης LCD και του Arduino. Το ποτενσιόμετρο 10K παρέχεται για τη ρύθμιση της αντίθεσης της οθόνης. Οι υπόλοιπες συνδέσεις είναι αυτονόητες.

Το παραπάνω κύκλωμα είναι ακριβώς ίδιο με το σχέδιο που βασίζεται σε σειριακή οθόνη, απλώς πρέπει να συνδέσετε την οθόνη LCD.

Πρόγραμμα για μετρητή χωρητικότητας με βάση 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------------------//

Με την ολοκληρωμένη εγκατάσταση υλικού ανεβάστε τον παραπάνω κωδικό. Αρχικά μην συνδέσετε τον πυκνωτή. Στην οθόνη εμφανίζεται 'Συνδέστε τον πυκνωτή !!!' τώρα συνδέετε τον πυκνωτή. Στην οθόνη θα εμφανίζεται η τιμή του πυκνωτή και ο χρόνος που έχει παρέλθει για να φτάσει το 63,2% του πυκνωτή πλήρους φόρτισης.

Πρωτότυπο συγγραφέα:




Προηγούμενο: Arduino Tachometer Circuit for Precise Readings Επόμενο: Πώς να ελέγξετε το σερβοκινητήρα χρησιμοποιώντας το Joystick