מעגל מד קיבוליות דיגיטלי באמצעות ארדואינו

נסה את הכלי שלנו לביטול בעיות





בפוסט זה אנו הולכים לבנות מעגל מד קיבול דיגיטלי באמצעות ארדואינו אשר יכול למדוד את הקיבול של הקבלים הנעים בין מיקרופראד אחד ל 4000 מיקרו-פרד בדיוק מדויק.



מבוא

אנו מודדים את הערך של הקבלים כאשר הערכים הכתובים על גוף הקבל אינם קריאים, או כדי למצוא את הערך של הקבל המזדקן במעגל שלנו אשר יש להחליפו במוקדם או במאוחר וישנן מספר סיבות נוספות למדוד את הקיבול.

כדי למצוא את הקיבול נוכל למדוד בקלות באמצעות מודד דיגיטלי, אך לא לכל המולטימטר יש תכונת מדידת קיבול ורק למולטימטר היקרים יש פונקציונליות זו.



אז הנה מעגל שניתן לבנות ולהשתמש בו בקלות.

אנו מתמקדים בקבלים בעלי ערך גדול יותר ממיקרו-פרד אחד ל -4000 מיקרו-פאראד הנוטים לאבד את הקיבול שלהם בגלל הזדקנות, במיוחד קבלים אלקטרוליטיים, הכוללים אלקטרוליט נוזלי.

לפני שנכנס לפרטי מעגל, בואו נראה כיצד נוכל למדוד את הקיבול עם ארדואינו.

רוב מד הקיבולים של Arduino מסתמך על רכוש קבוע בזמן RC. אז מהו זמן קבוע של RC?

ניתן להגדיר את קבוע הזמן של מעגל RC כזמן שלקבל להגיע ל -63.2% מהטעינה המלאה. וולט אפס הוא 0% טעינה ו 100% הוא מטען המתח המלא של הקבל.

תוצר הערך של הנגד באום והערך של הקבל בפרד נותן זמן קבוע.

T = R x C.

T הוא קבוע הזמן

על ידי סידור מחדש של המשוואה לעיל אנו מקבלים:

C = T / R

C הוא ערך הקיבול הלא ידוע.

T הוא קבוע הזמן של מעגל RC שהוא 63.2% מקבל הטעינה המלא.

R היא התנגדות ידועה.

ה- Arduino יכול לחוש את המתח באמצעות סיכה אנלוגית וניתן להזין את ערך הנגד הידוע בתוכנית באופן ידני.

על ידי יישום המשוואה C = T / R בתוכנית נוכל למצוא את ערך הקיבול הלא ידוע.

עד עכשיו יהיה לך מושג כיצד אנו יכולים למצוא את ערך הקיבול הלא ידוע.

בפוסט זה הצעתי שני סוגים של מד קיבול, אחד עם תצוגת LCD ואחר באמצעות צג סדרתי.

אם אתה משתמש תכוף במד הקיבול הזה עדיף ללכת עם עיצוב תצוגת LCD ואם אתה לא משתמש תכוף עדיף ללכת עם עיצוב צג סדרתי כי זה יחסוך לך כמה דולרים על תצוגת LCD.

עכשיו נעבור לתרשים המעגלים.

מד קיבול מבוסס סידורי:



כפי שאתה יכול לראות, המעגל פשוט מאוד, רק כמה נגדים נדרשים כדי למצוא את הקיבול הלא ידוע. אוהם 1K הוא ערך הנגד הידוע ונגד 220 אוהם המשמש לפריקת הקבל בזמן שמתרחש תהליך המדידה. מתח עולה ויורד על סיכה A0 המחובר בין נגדי 1K אוהם ל -220 אוהם. אנא דאג לקוטביות אם אתה משתמש בקבלים מקוטבים כגון אלקטרוליטי. תכנית:
//-----------------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------------------//

העלה את הקוד הנ'ל לארדואינו עם הגדרת חומרה שהושלמה, בתחילה אל תחבר את הקבל. פתח את המסך הסדרתי ובו כתוב 'אנא חבר קבלים'.

כעת חבר קבל, הקיבול שלו יוצג כמתואר למטה.

זה גם מראה את הזמן שנדרש להגיע ל -63.2% ממתח הטעינה המלא של הקבל, שמוצג כזמן שחלף.

מד קיבוליות דיגיטלי באמצעות ארדואינו

דיאגרמת מעגלים עבור מד קיבול מבוסס LCD:

התרשים הנ'ל הוא חיבור בין תצוגת LCD לארדואינו. פוטנציומטר 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% מקבל הטעינה המלא.

אב הטיפוס של המחבר:




קודם: מעגל טכומטר ארדואינו לקריאות מדויקות הבא: כיצד לשלוט על מנוע סרוו באמצעות ג'ויסטיק