جدول المحتويات:

تردد مصدر الطاقة وقياس الجهد باستخدام Arduino: 6 خطوات
تردد مصدر الطاقة وقياس الجهد باستخدام Arduino: 6 خطوات

فيديو: تردد مصدر الطاقة وقياس الجهد باستخدام Arduino: 6 خطوات

فيديو: تردد مصدر الطاقة وقياس الجهد باستخدام Arduino: 6 خطوات
فيديو: Frequency Generation and Frequency Counter using Microcontroller Arduino | How to Make 2024, يوليو
Anonim
تردد مزود الطاقة وقياس الجهد باستخدام Arduino
تردد مزود الطاقة وقياس الجهد باستخدام Arduino

مقدمة:

الهدف من هذا المشروع هو قياس تردد الإمداد والجهد ، والذي يتراوح بين 220 إلى 240 فولت و 50 هرتز هنا في الهند. لقد استخدمت Arduino لالتقاط الإشارة وحساب التردد والجهد ، يمكنك استخدام أي متحكم أو لوحة أخرى لديك. تتطلب الدائرة عددًا قليلاً من المكونات وهي دقيقة إلى حد ما لجميع الأغراض العملية.

الخطوة 1: المكونات المطلوبة

  • اردوينو اونو
  • IC LM358
  • محول تنحى (220 فولت إلى 12 فولت)
  • المكثفات:

    • 0.1 فائق التوهج
    • 2 × 1 فائق التوهج
  • المقاومات:

    • 3 × 1 كيلو أوم
    • 2 × 100 كيلو أوم
    • 1.5 كيلو أوم
    • 3.3 كيلو أوم
    • 6.8 كيلو أوم
  • 3 × 1N4148 ديود
  • لوح الخبز وسلك العبور (اختياري)

الخطوة 2: رسم تخطيطي

رسم تخطيطى
رسم تخطيطى
رسم تخطيطى
رسم تخطيطى

في الدائرة أعلاه ، يتم توصيل المحول الأساسي بشبكة الإمداد الرئيسية ويتم توصيل المحول الأساسي بدائرة القياس الخاصة بنا

الخطوة الثالثة: فهم الدائرة

فهم الدائرة
فهم الدائرة
فهم الدائرة
فهم الدائرة
فهم الدائرة
فهم الدائرة

وفقًا للوظيفة ، يمكن تقسيم هذه الدائرة إلى أربعة أجزاء:

ج: دائرة كاشف المعبر الصفري

تولد هذه الدائرة نبضة مربعة 5 فولت عندما تنتقل الموجة الجيبية من الموجب إلى السالب. يحد المقاوم R1 مع D1 و D2 من تأرجح جهد الدخل عند تقاطع الصمام الثنائي إلى -0.6 فولت إلى + 5.6 فولت (بافتراض أن الجهد الأمامي للديود هو 0.6 فولت). علاوة على ذلك ، يمكنك زيادة نطاق جهد الدخل للدائرة عن طريق زيادة قيمة R1.

يشكل المقاومان R2 و R3 مقسم جهد للحد من تأرجح الجهد السالب إلى -0.24Volts حيث يقتصر جهد الوضع المشترك للإدخال LM358 على -0.3Volts.

يشكل المقاوم R4 و R5 والمكثف C1 و op-amp (يستخدم هنا كمقارن) دائرة Schmitt Trigger حيث يقوم المقاوم R4 و R5 بضبط التباطؤ عند الإدخال + 49.5mV فوق الأرض. يتم تغذية خرج Schmitt Trigger إلى Arduino PIN2 لمزيد من المعالجة.

ب: العزلة والجهد تنحى

كما يوحي الاسم ، يقوم هذا الجزء بعزل الجهد وتقليله إلى ما يقرب من 12Vrms. يتم تغذية الجهد المتدرج إلى دائرة الأجهزة.

ج: دائرة كاشف الذروة

تحدد هذه الدائرة أقصى جهد ذروة لإشارة الدخل. يعمل مقسم المقاوم R6 و R7 على تقليل جهد الدخل بعامل 0.23 (يتم تقليل 12Vrms إلى 2.76Vrms). يقوم الصمام الثنائي D3 بإجراء نصف دورة الإشارة الموجبة فقط. يزداد الجهد عبر C2 إلى قيمة الذروة للإشارة المصححة ، والتي يتم تغذيتها إلى دبوس Arduino التناظري A0 لحساب الجهد بشكل أكبر.

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

D: اردوينو

في هذا الجزء ، يلتقط Arduino النبضات المربعة الناتجة عن دائرة Schmitt Trigger ويقرأ الجهد التناظري من دائرة كاشف الذروة. تتم معالجة البيانات أيضًا لتحديد الفترة الزمنية (ومن ثم التردد) للنبضة المربعة (التي تساوي شخص وقت تزويد التيار المتردد) والجهد الكهربائي للإمداد.

الخطوة 4: حساب التردد والجهد

حساب التردد:

بمساعدة Arduino ، يمكننا قياس الفترة الزمنية T للإشارة. يتم تغذية نبضات الموجة المربعة من كاشف العبور الصفري إلى الطرف 2 ، ومن هناك يمكننا قياس الفترة الزمنية لكل نبضة. يمكننا استخدام مؤقت Arduino الداخلي (على وجه التحديد Timer1) لحساب الفترة الزمنية بين حافتين صاعدتين للنبضة المربعة بمساعدة المقاطعات. يزيد المؤقت بمقدار 1 لكل دورة على مدار الساعة (بدون المقياس المسبق = 1) ويتم تخزين القيمة في السجل TCNT1. ومن ثم فإن ساعة 16 ميجا هرتز تزيد العداد بمقدار 16 ميكرو ثانية. وبالمثل بالنسبة للمقياس المسبق = 8 ، تتم زيادة المؤقت بمقدار 2 كل ميكروثانية. ومن هنا الفترة الزمنية بين اثنين من الحافة الصاعدة

T = (قيمة TCNT1) / الوقت المستغرق لكل عدد

أين ، الوقت المستغرق لكل عدد = مقياس مسبق / (سرعة ساعة Arduino (16 ميجا هرتز)

وبالتالي ، التردد f = 1 / T = (سرعة ساعة Arduino (16 ميجا هرتز) / (قيمة Prescaler * TCNT!)

ومن ثم تُعطى سرعة المؤقت (هرتز) بواسطة = (سرعة ساعة Arduino (16 ميجا هرتز)) / prescaler

ويتم إعطاء تردد الإشارة بواسطة = (سرعة ساعة Arduino

في المقابل ، يمكننا حساب التردد f من العلاقة f = 1 / T.

حساب الجهد:

تبلغ دقة ADC في Arduino المدمجة 10 بت (القيم المحتملة = 2 ^ 10 = 1024) ، وإرجاع القيم في نطاق 0-1023. لحساب الجهد التناظري المقابل V ، يتعين علينا استخدام العلاقة التالية

V = (قراءة ADC) * 5/1023

لحساب جهد الإمداد Vs (rms) ، يجب أن نأخذ في الاعتبار نسبة المحول ، مقسم المقاوم R6R7 ودائرة كاشف الذروة. يمكننا ببساطة تجميع العوامل / النسبة المختلفة على النحو التالي:

نسبة المحولات = 12/230 = 0.052

مقسم المقاوم = R7 / (R6 + R7) = 0.23

عند ذروة دارة الكاشف = 1.414

مقابل (rms) = V / (1.414 * 0.052 * 0.23) = (قراءة ADC) * 0.289

وتجدر الإشارة إلى أن هذه القيمة بعيدة عن القيمة الفعلية ، ويرجع ذلك أساسًا إلى خطأ في نسبة المحول الفعلي وانخفاض الجهد الأمامي للديود. طريقة واحدة للتحايل على هذا هو تحديد العامل بعد تجميع الدائرة. وذلك بقياس جهد الإمداد والجهد عبر المكثف C2 بشكل منفصل بمقياس متعدد ، ثم حساب Vs (rms) على النحو التالي:

Vs (rms) = ((Supply Voltage * 5) / (Voltage عبر C2 * 1023)) * (ADC Reading)

في حالتي ، Vs (rms) = 0.33 * (ADC Reading)

الخطوة 5: كود اردوينو

#define volt_in A0 // الجهد التمثيلي قراءة دبوس

uint16_t t_period؛ uint16_t ADC_value = 0 ؛ تعويم فولت ، التكرار ؛ isr باطل () {t_period = TCNT1 ؛ // تخزين قيمة TCNT1 في t_period TCNT1 = 0 ؛ // إعادة تعيين Timer1 ADC_value = analogRead (volt_in) ؛ // قراءة الجهد التناظري} float get_freq () {uint16_t timer = t_period؛ إذا (مؤقت == 0) إرجاع 0 ؛ // لتجنب القسمة على صفر وإلا يتم إرجاع 16000000.0 / (8UL * timer) ؛ // يتم إعطاء التردد بواسطة f = clk_freq / (prescaler * timeperiod)} إعداد باطل () {TCCR1A = 0 ؛ TCCR1B = بت (CS11) ؛ // ضبط المقياس المسبق على 8 TCNT1 = 0 ؛ // إعادة تعيين قيمة Timer1 TIMSK1 = بت (TOIE1) ؛ // تمكين Timer1 overflow interrupt EIFR | = bit (INTF0) ؛ // clear INT0 interrupt flag Serial.begin (9600) ؛ } حلقة فارغة () {attachInterrupt (0، isr، RISING)؛ // تمكين تأخير المقاطعة الخارجية (INT0) (1000) ؛ detachInterrupt (0) ، freq = get_freq () ؛ فولت = ADC_value * 0.33 ؛ سلسلة buf buf + = سلسلة (التكرار ، 3) ؛ buf + = F ("هرتز / t") ؛ buf + = سلسلة (فولت) ؛ buf + = F ("فولت") ؛ Serial.println (buf) ؛ }

الخطوة السادسة: الخاتمة

استنتاج
استنتاج
استنتاج
استنتاج

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

استخدمت الدائرة التي جمعتها في اللوح LM324 (رباعي opamp) بدلاً من LM358 (opamp مزدوج) حيث لم يكن لدي ذلك IC في تلك اللحظة ، كما أن الإغلاق على مستوى البلاد بسبب جائحة COVID-19 جعل من الصعب علي الحصول على IC جديد. ومع ذلك ، فإنه لن يؤثر على عمل الدائرة.

لا تتردد في التعليق أدناه لأية اقتراحات واستفسارات.

موصى به: