حلبة عداد السعة الرقمية باستخدام Arduino

جرب أداة القضاء على المشاكل





في هذا المنشور ، سنقوم ببناء دائرة رقمية لقياس السعة باستخدام Arduino والتي يمكنها قياس سعة المكثفات التي تتراوح من 1 ميكرو فاراد إلى 4000 ميكرو فاراد بدقة معقولة.



مقدمة

نقيس قيمة المكثفات عندما تكون القيم المكتوبة على جسم المكثف غير مقروءة ، أو للعثور على قيمة مكثف الشيخوخة في دائرتنا والتي يجب استبدالها قريبًا أو لاحقًا ، وهناك عدة أسباب أخرى لقياس السعة.

للعثور على السعة ، يمكننا بسهولة قياسها باستخدام مقياس رقمي متعدد ، ولكن ليس كل المتر المتعدد مزود بميزة قياس السعة ولا تتوفر هذه الوظيفة إلا على أجهزة القياس المتعددة باهظة الثمن.



إذن فهذه دائرة يمكن بناؤها واستخدامها بسهولة.

نحن نركز على المكثفات ذات القيمة الأكبر من 1 ميكروفاراد إلى 4000 ميكرو فاراد والتي تكون عرضة لفقد سعتها بسبب التقادم خاصة المكثفات الإلكتروليتية ، والتي تتكون من إلكتروليت سائل.

قبل أن ندخل في تفاصيل الدائرة ، دعنا نرى كيف يمكننا قياس السعة باستخدام Arduino.

يعتمد معظم مقياس سعة 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.

الآن دعنا ننتقل إلى مخطط الدائرة.

مقياس السعة القائم على الشاشة التسلسلية:



كما ترون ، الدائرة بسيطة للغاية ، هناك حاجة إلى اثنين من المقاومات للعثور على السعة غير المعروفة. 1 كيلو أوم هي قيمة المقاوم المعروفة والمقاوم 220 أوم المستخدم لتفريغ المكثف أثناء عملية القياس. ارتفاع وانخفاض الجهد على الدبوس A0 الموصل بين مقاومات 1 كيلو أوم و 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------------------//

قم بتحميل الكود أعلاه إلى Arduino مع استكمال إعداد الأجهزة ، ولا تقم في البداية بتوصيل المكثف. افتح الشاشة التسلسلية التي تقول 'الرجاء توصيل مكثف'.

الآن قم بتوصيل مكثف ، سيتم عرض سعته كما هو موضح أدناه.

كما يوضح الوقت المستغرق للوصول إلى 63.2٪ من جهد الشحن الكامل للمكثف ، والذي يظهر على أنه الوقت المنقضي.

مقياس السعة الرقمية باستخدام اردوينو

مخطط الدائرة لمقياس السعة القائم على 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٪ من مكثف الشحن الكامل.

النموذج الأولي للمؤلف:




السابق: حلبة مقياس سرعة الدوران اردوينو لقراءات دقيقة التالي: كيفية التحكم في محرك سيرفو باستخدام جويستيك