كل العشاق المضمنون على دراية بالمقياس المتعدد وهو أداة رائعة لقياس الجهد والتيار والمقاومة وما إلى ذلك. يمكن للمقياس المتعدد قياسهم بسهولة. لكن في بعض الأحيان نحتاج إلى قياس الحث والسعة وهو أمر غير ممكن باستخدام مقياس متعدد عادي. هناك بعض أجهزة القياس المتعددة الخاصة التي يمكنها قياس المحاثة والسعة ولكنها مكلفة. لقد قمنا بالفعل ببناء مقياس التردد ومقياس السعة ومقياس المقاومة باستخدام Arduino. لذلك سنقوم اليوم بصنع مقياس LC للمحاثة باستخدام Arduino. في هذا المشروع ، سنعرض قيم الحث والسعة جنبًا إلى جنب مع التردد فوق شاشة عرض LCD مقاس 16 × 2. يوجد زر ضغط في الدائرة للتبديل بين عرض السعة والحث.
المكونات مطلوبة
- اردوينو اونو
- 741 opamp IC
- بطارية 3 فولت
- مقاوم 100 أوم
- المكثفات
- المحاثات
- 1n4007 ديود
- 10 كيلو المقاوم
- 10 كيلو وعاء
- مزود الطاقة
- اضغط الزر
- اللوح أو ثنائي الفينيل متعدد الكلور
- توصيل الأسلاك
حساب التردد والحث
في هذا المشروع ، سنقيس المحاثة والسعة باستخدام دائرة LC بالتوازي. هذه الدائرة تشبه الحلقة أو الجرس الذي يبدأ بالرنين بتردد معين. عندما نطبق نبضة ، ستبدأ دائرة LC هذه بالرنين ويكون تردد الرنين هذا في شكل موجة تناظرية (موجة جيبية) لذلك نحتاج إلى تحويلها في موجة مربعة. للقيام بذلك ، نطبق تردد الرنين التناظري هذا على opamp (741 في حالتنا) والذي سيحوله في موجة مربعة (تردد) عند 50٪ من دورة العمل. الآن نقيس التردد باستخدام Arduino وباستخدام بعض الحسابات الرياضية يمكننا إيجاد المحاثة أو السعة. لقد استخدمنا صيغة استجابة تردد دارة LC المحددة.
f = 1 / (2 * الوقت)
حيث الوقت هو إخراج pulseIn () وظيفة
الآن لدينا دائرة تردد LC:
f = 1/2 * Pi * الجذر التربيعي لـ (LC)
يمكننا حلها للحصول على الحث:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
كما ذكرنا سابقًا أن الموجة التي لدينا هي موجة جيبية ، لذلك لها نفس الفترة الزمنية في السعة الموجبة والسالبة. يعني أن المقارنة ستحولها إلى موجة مربعة لها دورة عمل بنسبة 50٪. حتى نتمكن من قياسه باستخدام دالة pulseIn () في Arduino. ستمنحنا هذه الوظيفة فترة زمنية يمكن تحويلها بسهولة إلى تردد عن طريق قلب الفترة الزمنية. نظرًا لأن وظيفة pulseIn تقيس نبضة واحدة فقط ، لذا الآن للحصول على التردد الصحيح ، يتعين علينا ضربها في 2. الآن لدينا تردد يمكن تحويله إلى محاثة باستخدام الصيغة أعلاه.
ملحوظة: أثناء قياس الحث (L1) ، يجب أن تكون قيمة المكثف (C1) 0.1 فائق التوهج وأثناء قياس السعة (C1) ، يجب أن تكون قيمة المحرِّض (L1) 10 مللي أمبير.
مخطط الدائرة وشرحها
في مخطط دائرة LC Meter هذا ، استخدمنا Arduino للتحكم في تشغيل المشروع. في هذا ، استخدمنا دائرة LC. تتكون دائرة LC هذه من محث ومكثف. لتحويل تردد الرنين الجيبي إلى موجة رقمية أو مربعة ، استخدمنا مكبر تشغيلي وهو 741. هنا نحتاج إلى تطبيق العرض السلبي على op-amp للحصول على تردد إخراج دقيق. لذلك استخدمنا بطارية 3 فولت متصلة في قطبية عكسية ، وهذا يعني أن 741 دبوسًا سالبًا متصل بطرف البطارية السالب وأن دبوس البطارية الموجب متصل بأرض الدائرة المتبقية. لمزيد من التوضيح انظر الرسم البياني للدائرة أدناه.
هنا لدينا زر ضغط لتغيير طريقة التشغيل سواء كنا نقيس المحاثة أو السعة. تُستخدم شاشة LCD مقاس 16 × 2 لإظهار الحث أو السعة بتردد دارة LC. يتم استخدام وعاء 10 كيلو للتحكم في سطوع شاشة LCD. يتم تشغيل الدائرة بمساعدة مصدر Arduino 5v ويمكننا تشغيل Arduino بمقدار 5 فولت باستخدام محول USB أو 12 فولت.
شرح البرمجة
جزء البرمجة من مشروع LC Meter هذا سهل للغاية. يتم تقديم كود Arduino الكامل في نهاية هذه المقالة.
أولاً ، يتعين علينا تضمين مكتبة لشاشات الكريستال السائل والإعلان عن بعض المسامير ووحدات الماكرو.
#تضمن
بعد ذلك ، في وظيفة الإعداد ، قمنا بتهيئة شاشة LCD والاتصال التسلسلي لإظهار القيم المقاسة على شاشة LCD والشاشة التسلسلية.
إعداد باطل () { #ifdef serial Serial.begin (9600)؛ #endif lcd.begin (16 ، 2) ؛ pinMode (freqIn ، INPUT) ؛ pinMode (تهمة ، الإخراج) ؛ pinMode (الوضع ، INPUT_PULLUP) ؛ lcd.print ("استخدام مقياس LC") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("اردوينو") ؛ تأخير (2000) ؛ lcd.clear () ؛ lcd.print ("ملخص الدائرة") ؛ تأخير (2000) ؛ }
ثم في وظيفة الحلقة ، قم بتطبيق نبضة لفترة زمنية محددة على دائرة LC التي ستشحن دائرة LC. بعد إزالة دارة LC النبضية تبدأ بالرنين. ثم نقرأ تحويل الموجة المربعة ، الذي يأتي من المرجع ، باستخدام وظيفة pulseIn () ونحولها بضربها في 2. هنا أخذنا بعض العينات من هذا أيضًا. هكذا يتم حساب التردد:
حلقة باطلة () { لـ (int i = 0 ؛ i
بعد الحصول على قيمة التردد ، قمنا بتحويلها إلى محاثة باستخدام جزء معين من الكود
السعة = 0.1E-6 ؛ الحث = (1. / (السعة * التردد * التردد * 4. * 3.14159 * 3.14159)) * 1.E6 ؛ #ifdef serial Serial.print ("Ind:")؛ إذا (الحث> = 1000) { Serial.print (الحث / 1000) ؛ Serial.println ("mH") ؛ } else { Serial.print (inductance)؛ Serial.println ("uH") ؛ } #endif lcd.setCursor (0، 1) ؛ lcd.print ("Ind:") ؛ إذا (الحث> = 1000) { lcd.print (الحث / 1000) ؛ lcd.print ("mH") ؛ } else { lcd.print (inductance) ؛ lcd.print ("uH") ؛ } }
وباستخدام الكود المعطى ، قمنا بحساب السعة.
إذا (Bit.flag) { الحث = 1.E-3 ؛ السعة = ((1. / (الحث * التردد * التردد * 4. * 3.14159 * 3.14159)) * 1.E9) ؛ إذا ((كثافة) السعة <0) السعة = 0 ؛ #ifdef serial Serial.print ("Capacitance:")؛ Serial.print (السعة ، 6) ؛ Serial.println ("uF") ؛ #endif lcd.setCursor (0، 1) ؛ lcd.print ("Cap:") ؛ إذا (السعة> 47) { lcd.print ((السعة / 1000)) ؛ lcd.print ("uF") ؛ } else { lcd.print (السعة) ؛ lcd.print ("nF") ؛ } }
هذه هي الطريقة التي حسبنا بها التردد والسعة والمحاثة باستخدام Arduino وعرضناها على شاشة LCD مقاس 16 × 2.