- المواد المطلوبة
- مخطط الرسم البياني
- وحدة القياس
- وحدة الحساب والعرض
- برمجة اردوينو
- كيف تقيس بمزيد من الدقة؟
- العمل والاختبار
كمهندسين إلكترونيات ، نعتمد دائمًا على العدادات / الأدوات لقياس وتحليل عمل الدائرة. بدءًا من مقياس متعدد بسيط إلى محللات جودة الطاقة المعقدة أو DSOs ، كل شيء له تطبيقاته الفريدة الخاصة به. معظم هذه العدادات متاحة بسهولة ويمكن شراؤها بناءً على المعلمات المراد قياسها ودقتها. لكن في بعض الأحيان قد ينتهي بنا الأمر في موقف نحتاج فيه إلى بناء عداداتنا الخاصة. لنفترض على سبيل المثال أنك تعمل في مشروع للطاقة الشمسية الكهروضوئية وترغب في حساب استهلاك الطاقة للحمل الخاص بك ، في مثل هذه السيناريوهات يمكننا بناء Wattmeter الخاص بنا باستخدام منصة بسيطة للتحكم الدقيق مثل Arduino.
لا يؤدي بناء عداداتك الخاصة إلى خفض تكلفة الاختبار فحسب ، بل يمنحنا أيضًا مساحة لتسهيل عملية الاختبار. مثل ، يمكن تعديل مقياس الواط الذي تم إنشاؤه باستخدام Arduino بسهولة لمراقبة النتائج على الشاشة التسلسلية ورسم رسم بياني على الراسمة التسلسلية أو إضافة بطاقة SD لتسجيل قيم الجهد والتيار والطاقة تلقائيًا على فترات محددة مسبقًا. تبدو مثيرة للاهتمام أليس كذلك؟ اذا هيا بنا نبدأ…
المواد المطلوبة
- اردوينو نانو
- LM358 Op-Amp
- 7805 منظم جهد
- شاشة عرض LCD مقاس 16 * 2
- 0.22 أوم 2 واط المقاوم تحويلة
- وعاء تشذيب 10 كيلو
- مقاومات 10 كيلو ، 20 كيلو ، 2.2 كيلو ، 1 كيلو
- 0.1 فائق التوهج المكثفات
- تحميل الاختبار
- لوحة بيرف أو لوح التجارب
- طقم لحام (اختياري)
مخطط الرسم البياني
يرد أدناه مخطط الدائرة الكاملة لمشروع اردوينو واتميتر.
لسهولة فهم دائرة اردوينو واتميتر ، يتم تقسيمها إلى وحدتين. الجزء العلوي من الدائرة هو وحدة القياس والجزء السفلي من الدائرة هو وحدة الحساب والعرض. بالنسبة للأشخاص الجدد في هذا النوع من الدوائر ، اتبعوا التسميات. مثال + 5V عبارة عن ملصق مما يعني أنه يجب مراعاة جميع المسامير التي ترتبط بها الملصق لأنها متصلة ببعضها البعض. تُستخدم الملصقات عادةً لجعل مخطط الدائرة يبدو أنيقًا.
تم تصميم الدائرة لتلائم الأنظمة التي تعمل بين 0-24 فولت مع نطاق حالي من 0-1A مع مراعاة مواصفات الطاقة الشمسية الكهروضوئية. ولكن يمكنك بسهولة توسيع النطاق بمجرد فهمك لعمل الدائرة. المبدأ الأساسي وراء الدائرة هو قياس الجهد عبر الحمل والتيار من خلالها لحساب الطاقة التي تستهلكها. سيتم عرض جميع القيم المقاسة في شاشة LCD ذات أحرف أبجدية رقمية مقاس 16 * 2.
علاوة على ذلك أدناه ، دعونا نقسم الدائرة إلى أجزاء صغيرة حتى نتمكن من الحصول على صورة واضحة لكيفية عمل الدائرة.
وحدة القياس
تتكون وحدة القياس من مقسم محتمل لمساعدتنا في قياس الجهد ويتم استخدام المقاوم المغلق مع Op-amp غير المقلوب لمساعدتنا في قياس التيار عبر الدائرة. يظهر الجزء الفاصل المحتمل من الدائرة أعلاه أدناه
هنا يمثل جهد الإدخال بواسطة Vcc ، كما قيل سابقًا ، فإننا نصمم الدائرة لنطاق جهد من 0V إلى 24V. لكن المتحكم الدقيق مثل Arduino لا يمكنه قياس مثل هذه القيم العالية للجهد ؛ يمكنه فقط قياس الجهد من 0-5 فولت. لذلك يتعين علينا تعيين (تحويل) نطاق الجهد من 0-24 فولت إلى 0-5 فولت. يمكن القيام بذلك بسهولة باستخدام دائرة مقسم محتملة كما هو موضح أدناه. يشكل المقاوم 10k و 2.2k معًا دائرة المقسم المحتملة. يمكن حساب جهد الخرج للمقسم المحتمل باستخدام الصيغ أدناه. يتم استخدام نفس الشيء لتحديد قيمة المقاومات الخاصة بك ، يمكنك استخدام الآلة الحاسبة الخاصة بنا على الإنترنت لحساب قيمة المقاوم إذا كنت تقوم بإعادة تصميم الدائرة.
صوت = (فين × R2) / (R1 + R2)
يمكن الحصول على مخطط 0-5 فولت من الجزء الأوسط المسمى الجهد. يمكن بعد ذلك تغذية هذا الجهد المعين إلى دبوس Arduino Analog لاحقًا.
بعد ذلك علينا قياس التيار من خلال LOAD. كما نعلم ، يمكن للميكروكونترولر قراءة الجهد التناظري فقط ، لذلك نحتاج بطريقة ما إلى تحويل قيمة التيار إلى جهد. يمكن القيام بذلك ببساطة عن طريق إضافة المقاوم (المقاوم التحويلة) في المسار الذي وفقًا لقانون أوم سوف يسقط قيمة الجهد عبره بما يتناسب مع التيار المتدفق خلاله. ستكون قيمة هذا الانخفاض في الجهد أقل بكثير ، لذا نستخدم جهاز op-amp لتضخيمه. الدائرة لنفسه مبينة أدناه
هنا قيمة المقاوم التحويلة (SR1) هي 0.22 أوم. كما ذكرنا سابقًا ، فإننا نصمم الدائرة لـ 0-1A ، لذا بناءً على قانون أوم ، يمكننا حساب انخفاض الجهد عبر هذا المقاوم والذي سيكون حوالي 0.2 فولت عندما يمر تيار 1A بحد أقصى خلال الحمل. هذا الجهد صغير جدًا لقراءة متحكم دقيق ، نستخدم Op-Amp في وضع مضخم غير مقلوب لزيادة الجهد من 0.2 فولت إلى مستوى أعلى ليقرأه Arduino.
تم عرض Op-Amp في وضع Non-Inverting أعلاه. تم تصميم مكبر الصوت ليحقق ربحًا قدره 21 ، بحيث يكون 0.2 * 21 = 4.2 فولت. فيما يلي الصيغ لحساب كسب Op-amp ، يمكنك أيضًا استخدام حاسبة الكسب عبر الإنترنت للحصول على قيمة المقاوم الخاص بك إذا كنت تعيد تصميم الدائرة.
كسب = Vout / Vin = 1 + (Rf / Rin)
هنا في حالتنا ، قيمة Rf هي 20k وقيمة Rin هي 1k وهو ما يعطينا قيمة gian 21. الجهد المضخم من Op-amp ثم يُعطى لمرشح RC بمقاوم 1k ومكثف 0.1uF إلى تصفية أي ضوضاء مقترنة. أخيرًا يتم تغذية الجهد بعد ذلك إلى دبوس Arduino التناظري.
الجزء الأخير المتبقي في وحدة القياس هو جزء منظم الجهد. نظرًا لأننا سنعطي جهد دخل متغير ، فإننا بحاجة إلى منظم + 5 فولت فولت لتشغيل Arduino و Op-amp. سيتم توفير هذا الجهد المنظم بواسطة منظم الجهد 7805. يضاف مكثف عند الخرج لتصفية الضوضاء.
وحدة الحساب والعرض
في وحدة القياس ، قمنا بتصميم الدائرة لتحويل معلمات الجهد والتيار إلى 0-5 فولت والتي يمكن تغذيتها إلى دبابيس Arduino Analog. الآن في هذا الجزء من الدائرة ، سنقوم بتوصيل إشارات الجهد هذه بـ Arduino وأيضًا واجهة عرض 16 × 2 أبجدي رقمي مع Arduino حتى نتمكن من عرض النتائج. الدائرة لنفسه مبينة أدناه
كما ترى ، فإن دبوس الجهد متصل بالدبوس التناظري A3 والدبوس الحالي متصل بالدبوس التناظري A4. يتم تشغيل شاشة LCD من + 5V من 7805 ومتصلة بالمسامير الرقمية في Arduino للعمل في وضع 4 بت. لقد استخدمنا أيضًا مقياس جهد (10 كيلو) متصل بـ Con pin لتغيير تباين شاشة LCD.
برمجة اردوينو
الآن بعد أن أصبح لدينا فهم جيد للأجهزة ، دعونا نفتح Arduino ونبدأ في البرمجة. الغرض من الكود هو قراءة الجهد التمثيلي على الدبوس A3 و A4 وحساب قيمة الجهد والتيار والطاقة وعرضه أخيرًا على شاشة LCD. يتم تقديم البرنامج الكامل للقيام بنفس الشيء في نهاية الصفحة والذي يمكن استخدامه على هذا النحو للأجهزة التي تمت مناقشتها أعلاه. علاوة على ذلك ، يتم تقسيم الكود إلى قصاصات صغيرة وشرحها.
مثل جميع البرامج التي نبدأ بها ، نحدد المسامير التي استخدمناها. في المشروع الخارجي ، يتم استخدام دبوس A3 و A4 لقياس الجهد والتيار على التوالي ، ويتم استخدام المسامير الرقمية 3،4،8،9،10 و 11 لربط شاشة LCD مع Arduino
int Read_Voltage = A3 ؛ int Read_Current = A4 ؛ const int rs = 3 ، en = 4 ، d4 = 8 ، d5 = 9 ، d6 = 10 ، d7 = 11 ؛ // اذكر رقم التعريف الشخصي لتوصيل LCD LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛
لقد قمنا أيضًا بتضمين ملف رأس يسمى الكريستال السائل لربط شاشة LCD مع Arduino. ثم داخل وظيفة الإعداد ، نقوم بتهيئة شاشة LCD وعرض نص مقدمة باسم "Arduino Wattmeter" وانتظر لمدة ثانيتين قبل مسحه. يظهر رمز نفسه أدناه.
إعداد باطل () { lcd.begin (16، 2) ؛ // Initialise 16 * 2 LCD.print ("Arduino Wattmeter") ؛ // سطر رسالة المقدمة 1 lcd.setCursor (0 ، 1) ؛ lcd.print ("- Circuitdigest") ؛ // تأخير سطر الرسالة 2 (2000) ؛ lcd.clear () ؛ }
داخل وظيفة الحلقة الرئيسية ، نستخدم وظيفة القراءة التناظرية لقراءة قيمة الجهد من الدبوس A3 و A4. كما نعلم قيمة إخراج Arduino ADC من 0-1203 نظرًا لأنه يحتوي على ADC 10 بت. يجب تحويل هذه القيمة بعد ذلك إلى 0-5V والذي يمكن القيام به عن طريق الضرب بـ (5/1023). ثم مرة أخرى في وقت سابق في الجهاز ، قمنا بتعيين القيمة الفعلية للجهد من 0-24 فولت إلى 0-5 فولت والقيمة الفعلية للشكل الحالي 0-1A إلى 0-5V. لذا علينا الآن استخدام مُضاعِف لإعادة هذه القيم إلى القيمة الفعلية. يمكن القيام بذلك بضربها بقيمة مضاعفة. يمكن حساب قيمة المضاعف إما نظريًا باستخدام الصيغ المتوفرة في قسم الأجهزة أو إذا كان لديك مجموعة معروفة من قيم الجهد والتيار ، يمكنك حسابها عمليًا.لقد اتبعت الخيار الأخير لأنه يميل إلى أن يكون أكثر دقة في الوقت الفعلي. إذن قيمة المضاعفات هنا هي 6.46 و 0.239. ومن هنا يبدو الرمز أدناه
تعويم Voltage_Value = analogRead (Read_Voltage) ؛ تعويم Current_Value = analogRead (Read_Current) ، Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46 ؛ Current_Value = Current_Value * (5.0 / 1023.0) * 0.239 ؛
كيف تقيس بمزيد من الدقة؟
الطريقة المذكورة أعلاه لحساب قيمة الجهد الفعلي والتيار ستعمل بشكل جيد. لكنه يعاني من عيب واحد ، وهو أن العلاقة بين جهد ADC المقاس والجهد الفعلي لن يكون خطيًا وبالتالي لن يعطي المضاعف الفردي نتائج دقيقة للغاية ، وهو نفس الشيء ينطبق على التيار أيضًا.
لذلك لتحسين الدقة ، يمكننا رسم مجموعة من قيم ADC المقاسة مع القيم الفعلية باستخدام مجموعة معروفة من القيم ثم استخدام تلك البيانات لرسم رسم بياني واشتقاق معادلة المضاعف باستخدام طريقة الانحدار الخطي. يمكنك إحالة مقياس Arduino dB الذي استخدمت فيه طريقة مماثلة.
أخيرًا ، بمجرد أن نحسب قيمة الجهد الفعلي والتيار الفعلي من خلال الحمل ، يمكننا حساب الطاقة باستخدام الصيغ (P = V * I). ثم نعرض جميع القيم الثلاث على شاشة LCD باستخدام الكود أدناه.
lcd.setCursor (0 ، 0) ؛ lcd.print ("V =") ؛ lcd.print (Voltage_Value) ؛ lcd.print ("") ؛ lcd.print ("I =") ؛ lcd.print (Current_Value) ؛ تعويم Power_Value = Voltage_Value * Current_Value ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("الطاقة =") ؛ lcd.print (Power_Value) ؛
العمل والاختبار
من أجل البرنامج التعليمي ، استخدمت لوحة أداء لتلحيم جميع المكونات كما هو موضح في الدائرة. لقد استخدمت محطة برغي Phoenix لتوصيل الحمل ومقبس أسطوانة DC عادي لتوصيل مصدر الطاقة الخاص بي. تم تثبيت لوحة Arduino Nano وشاشة LCD على Female Bergstik بحيث يمكن إعادة استخدامها إذا لزم الأمر لاحقًا.
بعد تجهيز الجهاز ، قم بتحميل كود Arduino على لوحة Nano الخاصة بك. اضبط وعاء أداة التشذيب للتحكم في مستوى تباين شاشة LCD حتى ترى نصًا واضحًا للمقدمة. لاختبار اللوحة ، قم بتوصيل الحمل بموصل طرف المسمار والمصدر بمقبس برميل. يجب أن يكون جهد المصدر أكثر من 6 فولت حتى يعمل هذا المشروع ، حيث يتطلب Arduino + 5V للعمل. إذا كان كل شيء يعمل بشكل جيد ، يجب أن ترى قيمة الجهد عبر الحمل والتيار من خلاله معروضة في السطر الأول من شاشة LCD والقوة المحسوبة المعروضة في السطر الثاني من شاشة LCD كما هو موضح أدناه.
يكمن الجزء الممتع في بناء شيء ما في اختباره للتحقق من مدى عمله بشكل صحيح. للقيام بذلك ، استخدمت دعامات مؤشر السيارات 12 فولت كحمل و RPS كمصدر. نظرًا لأن RPS نفسها يمكنها قياس وعرض قيمة التيار والجهد ، فسيكون من السهل علينا التحقق من دقة وأداء دائرتنا. ونعم ، لقد استخدمت أيضًا RPS لمعايرة قيمة المضاعف الخاصة بي حتى أقترب من القيمة الدقيقة.
يمكن العثور على العمل الكامل في الفيديو المقدم في نهاية هذه الصفحة. آمل أن تكون قد فهمت الدائرة والبرنامج وتعلمت شيئًا مفيدًا. إذا كانت لديك أي مشكلة في جعل هذا يعمل ، فقم بنشره في قسم التعليقات أدناه أو اكتب على منتدياتنا للحصول على مزيد من المساعدة الفنية.
يحتوي مشروع Wattmeter القائم على Arduino على العديد من الترقيات التي يمكن إضافتها لزيادة الأداء لتسجيل البيانات تلقائيًا ، أو الرسم البياني ، أو الإخطار بالجهد الزائد أو المواقف الحالية وما إلى ذلك ، لذا ابق فضوليًا واسمحوا لي أن أعرف ما الذي ستستخدمه من أجله