مقياس فولط رقمي باستخدام المتحكم PIC16F877A و MicroC القرية الالكترونية : قسم الإلكترونيات : دوائر الميكروكنترولر Microcontroller circuits : مقياس فولط رقمي باستخدام المتحكم PIC16F877A و MicroC
PIC16F877A Voltmeter

فكرة المشروع :
تقوم الفكرة على تصميم جهاز لقياس قيمة جهد Volt Meter حول نقطتين من دارة, واظهار قيمة الجهد على شاشتي عرض 7seg وأيضا إظهارها رقميا بشكل ثنائي على مجموعة ليدات.

مبدأ العمل :
ستتم قراءة أي جهد يتراوح من (0 __ 15 ) فولط من خلال المبدل التشابهي الرقمي للمتحكم ومن ثم معالجته من خلال المتحكم وإظهار قيمته من خلال الشاشات والليدات .

عناصر الدارة :

- المتحكم PIC16f877A
- عناصر لتشغيل المتحكم ( هزاز كريستالي 4mhz, ومكثفين 22 بيكو فاراد)
- منظم جهد خمسة فولط 7805
- مقاومتين لصنع مقسم جهد (R1=15K , R2=4.7K )
- شاشة إظهار 7seg مصعد مشترك عدد 2
- مشفر BCD to7seg رقمه 7447 عدد 2
- مقاومات 470 أوم عدد 18
- أربع ليدات
- تغذية 12 فولط أو 9
- جاك DC

لماذا مقسم الجهد :تعلمنا في المشروع الأول عن المبدل التشابهي الرقمي , وكيفية التعامل معه والتعليمات الخاصة لتشغيله , وكما نعلم أن أكبر قيمة ممكن إدخالها للمبدل التشابهي الرقمي هي 5 فولط . لذلك نحن الآن امام سؤال هام جدا
والسؤال هو ؟؟؟؟
هل سأكون محدود بمجال من صفر حتى خمسة فولط لمقياس الفولط المراد تصميمه أي كيف سأقوم بادخال جهود أكبر من خمسة فولط ؟
الجواب سهل : وبأقل تعب فكري وبأقل كلفة ممكنة.
وذلك من خلال الحل السحري وهو مقسم الجهد , وكل ما سيلزمنا هو مقاومتين , نعم مقاومتين فقط , ولكن ماهي قيمة هاتين المقاومتين , الجواب حسب المجال الذي تريد أن تصمم مقياسك عليه .
أنا فرضت في مشروعي مجال من صفر وحتى 15 فولط
أي أنني يجب أن أدخل 15 فولط إلى المتحكم بقيمة أصغر من حقيقتها أي يجب أن تدخل خلسة بقيمة أصغر من خمسة فولط ,وسيساعدنا على ذلك عميلنا السري مقسم الجهد , وفي برنامج المايكرو سي الذي سنكتبه بأناملنا السحرية سنقوم بكشف الغطاء عن القيمة الكبيرة التي مررناها خلسة من خلال تصحيح الرقم بعامل ضرب سنراه لاحقا .

الحل السحري : مقسم الجهد :

كما نعلم من قوانين الدارات الكهربائية أن قانون مقسم الجهد هو :
(Vout=Vin� R2/(R1+R2
الجهد Vin هو الجهد المقاس الذي سيتراوح من صفر وحتى 15 فولط .
الجهد Vout هو الجهد السري ( المخفض ) الذي سيدخل إلى قطب المبدل التشابهي الرقمي
أي أن جهد الدخل سينخفض بمقدار الكسر المضروب به .
ولكان ماهي قيم المقاومات التي سنستخدمها يا أستاذ Winmad ؟
الجواب سهل بحسب قيمة التخفيض التي ترغبها فنحن نريد أن نخفض قيمة 15 فولط إلى قيمة أصغر تقريبا من 5 فولط . أي سنضرب بكسر مساوي لثلث تقريبا .
وبالتالي يجب اختيار مقاومات شهيرة تحقق ذلك وأنا عن نفسي اخترت
R1=15 K , R2= 4.7 K
ولك حرية اختيار قيم أخرى بشرط أن تحقق المطلوب .
وبالتالي : مقسم جهد دارتنا سيأخذ المعادلة :
(Vout=Vin� 4.7/(15+4.7

لنتأكد من صحة عملنا بمثال :
اذا كانت أكبر قيمة ستقيسها هي 15 فولط فما هي القيمة المخفضة التي ستدخل إلى قطب المبدل التشابهي الرقمي , أي هل نحن ضمن مجال الأمان الذي صنعناه وهو أقل من خمسة فولط .
سنحسب من المعادلة : ( Vout=Vin�4.7/(15+4.7
نعوض جهد الدخل Vin=15 volt
ومنه Vout=15�4.7/(15+4.7)=3.5786 volt
نلاحظ أن الجواب أصغر من خمسة أي ان عملنا صحيح .

تصحيح القيمة في برنامج المايكروسي ( كشف السر )
بعد تخفيض القيمة وإدخالها الى المتحكم من خلال المبدل التشابهي الرقمي فان المتحكم الآن يحتوي على قيمة الجهد المخفضة ويجب تصحيحها للقيمة الأصلية قبل إظهارها على الشاشة والأمر بسيط جد وهو أن نوجد عامل الضرب ونضرب به كل قراءة للمبدل وفقط .
عامل الضرب سيكون مقلوب الكسر السابق
عامل الضرب K سيساوي :
K=(15+4.7)/4.7=4.1915
اذن سنضرب كل قيمة للمبدل التشابهي الرقمي بالقيمة K . فنحصل على القيمة الحقيقة المقاسة للجهد .
هكذا فقط ببساطة .....................

لماذا المشفرات الخارجية ؟
قد يلاحظ البعض استخدامي لمشفرين خارجيين من أجل الاظهار على شاشتي السبع قطع ويتبادر إليه السؤال : لماذا لاتستخدم طريقة المسح وتوفر على نفسك كلفة مادية وتعب بالرسم وستتعب فقط بالبرنامج .
سأجاوبه معك حق المهندس المحترف يجب أن يأخذ باعتباره الكلفة الاقتصادية والحل الأسهل والامثل , وفي المشاريع التي تستخدم شاشات السبع قطع مع المتحمات يعد من قلة الخبرة استخدام مشفرات خارجية لأن المتحكم يغني عن ذلك ببضعة سطور من التعليمات وبعدد بسيط من الترانزستورات , لكنني أحببت أن يركز المتعلم في هذه الدارة على فكرة الجهد فقط , ويتعرف على عناصر الكترونية ربما لم يجربها من قبل كذلك وفي مشاريع قادمة سأقوم باستخدام فكرة المسح لأنها الطريقة الصحيحة والأمثل مع المتحكمات لذلك أجلناها فقط ولم نلغيها .

سؤال يا مهندس Winmad :
أنت قلت أن المشفر سهل الفهم والتعامل ولكنني بصراحة لا أعرف كيف يعمل هذا المشفر . ممكن تجاوبني يا مهندس Winmad ؟

الجواب بغاية البساطة : في الرسم التالي

فقط قم بإرسال الرقم بشكل ثنائي إلى الأقطاب A ,B ,C, D والمشفر سيظهرها على الشاشة .
لذلك سنقوم بوصل هذه الأقطاب إلى المتحكم ونرسل الرقم إلى الأقطاب الموافقة في المتحكم .

عندي رقمين آحاد وعشرات فكيف سأفصل خانة الآحاد عن العشرات ؟
هنا الفكرة مهمة جدا فكما نعلم أن قيمة الجهد المقاسة والتي سيتم عرضها على الشاشات تتالف من خانتين آحاد وعشرات , فكيف سأرسل رقم الآحاد إلى شاشة ورقم العشرات إلى شاشة ثانية ,
الحل كالتالي :
سنعرف متحول من النوع الصحيح لتخزن فيه قيمة الجهد .
ونعرف متحولين من النوع الصحيح لتخزين قيمتي الاحاد والعشرات .
سنقوم أولا بتقسيم القيمة على الرقم عشرة ونخزنها في متحول العشرات وبما أن المتحول من النوع الصحيح لذلك سيكون ناتج القسمة بدون فواصل ونكون قد حصلنا على قيمة العشرات .
ثم بعملية أخرى نوجد باقي قسمة قيمة الجهد على عشرة فنحصل على قيمة الآحاد .
أكيد لم تتوضح الفكرة لذلك سنأخذ مثال :
اذا كانت قيمة الجهد المقاسة 13
ونريد أن نحولها إلى عشرات = 1 , وآحاد = 3
أولا نقسم العدد 13 على عشرة فنحصل على العشرات
أي 10 / 13 = 1 نلاحظ ان الناتج يساوي الواحد لان المتحول من النوع الصحيح ولا يخزن فواصل .
لايجاد الآحاد نكتب التعليمة التالية وهي تعليمة باقي القسمة : %
أي : 10%13= 3 أي باقي قسمة الرقم 13 على عشرة هو 3.
وهكذا حصلنا على الأحاد والعشرات .

مخطط عمل الدارة :

الدارة المطبوعة schematic في برنامج eagle

الكود مع الشرح بلغة مايكرو سي

تعريف متحول صحيح غير مؤشر لتخزين قيمة الجهد المقاس

unsigned in volt;

متحول صحيح لتخزين قيمة العشرات للجهد

int b;

متحول صحيح لتخزين قيمة الاحاد للجهد

int t;

التابع الرئيسي

void main() {

تعريف المنفذ A كدخل

TRISA = 0;

تعريف المنفذ C كخرج

TRISC = 0;

تعريف المنفذ B كخرج

TRISB = 0;

تعريف المنفذ d كخرج

TRISd = 0;

حلقة لا نهائية

do {

تعليمة قراءة الجهد من قطب المحول التشابهي الرقمي (.) وتخزينها في المتحول Volt

volt = ADC_Read(0);

تصحيح القيمة المخزنة في المتحول أو لا بضربها بالجهد المرجعي المختار وهو 5

volt= (volt*5*4.191489362)/1000;

للرد أو الاستفسار عن هذا المشروع اضغط هنا

أضف هذا الموضوع إلى