- المكونات المطلوبة:
- وصف:
- مخطط الدائرة وشرح العمل:
- تصميم الدوائر و PCB باستخدام EasyEDA:
- حساب وطلب عينات ثنائي الفينيل متعدد الكلور عبر الإنترنت:
- شرح البرمجة:
في هذا المشروع ، سنصنع نظام مراقبة بطارية السيارة على أساس الموافقة المسبقة عن علم على ثنائي الفينيل متعدد الكلور. هنا قمنا بتصميم ثنائي الفينيل متعدد الكلور باستخدام مصمم ومحاكاة ثنائي الفينيل متعدد الكلور عبر الإنترنت من EASYEDA. تُستخدم دائرة مراقبة بطارية السيارة هذه لمراقبة قوة بطارية السيارة عن طريق توصيلها فقط بمأخذ الطاقة على لوحة القيادة في السيارة. يحتوي PCB أيضًا على خيار استخدامه كأداة قياس الجهد أو الفولتميتر دون استخدام شاحن سيارة USB. لقد قمنا بتوصيل كتلة طرفية هنا لقياس جهد مصادر الطاقة الأخرى ، فقط عن طريق توصيل سلكين فيه من مصدر الطاقة.
المكونات المطلوبة:
- متحكم PIC PIC18F2520 -1
- مجلس ثنائي الفينيل متعدد الكلور ملفقة -1
- موصل USB -1
- موصل طرفي ثنائي السنون (اختياري) -1
- عرض الأنود سبعة مقاطع (4 في 1) -1
- BC557 الترانزستور -4
- 1 كيلو المقاوم -6
- 2 كيلو المقاوم -1
- 100R المقاوم -8
- 1000 فائق التوهج مكثف -1
- 10 فائق التوهج مكثف -1
- 28 دبوس IC قاعدة -1
- أنثى برجستيك -1
- 7805 منظم الجهد -1
- شاحن سيارة USB -1
- الصمام -1
- الصمام الثنائي زينر 5.1 فولت -2
- كابل USB (متوافق من النوع B أو Arduino UNO) -1
- 20 ميجا هرتز كريستال -1
- 33pF مكثف -2
وصف:
بشكل عام ، ليس من المهم قياس طاقة بطارية السيارة في كل مرة ، ولكن غالبًا ما نحتاج إلى معرفة جهد البطارية أثناء الشحن ، للتحقق مما إذا كان يتم شحنها أم لا. من خلال ذلك ، يمكننا حماية فشل البطارية بسبب نظام الشحن الخاطئ. يبلغ جهد بطارية السيارة 12 فولت أثناء الشحن حوالي 13.7 فولت. حتى نتمكن من تحديد ما إذا كانت بطاريتنا يتم شحنها جيدًا أم لا ويمكننا التحقيق في أسباب فشل البطارية. في هذا المشروع ، سنقوم بتنفيذ مقياس الجهد لبطارية السيارة باستخدام متحكم PIC. يتم استخدام شاحن ولاعة السجائر في السيارة أو شاحن USB للسيارة للحصول على جهد البطارية إلى دبوس ADC في وحدة التحكم الدقيقة بمساعدة حلبة مقسم الجهد. ثم عرض من 4 أرقام سبعة أجزاءيستخدم لإظهار قيمة الجهد للبطارية. يمكن لهذه الدائرة قياس الجهد حتى 15 فولت.
عندما يتم شحن بطارية السيارة ، فإن الجهد عبر أطراف البطارية يأتي فعليًا من المولد / المعدل ، ولهذا السبب يقرأ النظام 13.7 فولت. ولكن في حالة عدم شحن البطارية أو عدم تشغيل محرك السيارة ، يكون الجهد عبر طرف البطارية هو الجهد الفعلي للبطارية حوالي 12 فولت.
يمكننا أيضًا استخدام نفس الدائرة لقياس جهد مصادر الطاقة الأخرى حتى 15 فولت. لهذا الغرض ، قمنا بلحام الوحدة الطرفية (كتلة بلاستيكية ذات لون أخضر) في ثنائي الفينيل متعدد الكلور حيث يمكنك توصيل سلكين من مصدر الطاقة ويمكنك مراقبة الجهد. تحقق من الفيديو في النهاية ، حيث أظهرنا ذلك من خلال قياس جهد مصدر طاقة متغير وبنك طاقة USB ومحول تيار متردد بجهد 12 فولت. تحقق أيضًا من دائرة مراقبة البطارية البسيطة ودائرة شاحن البطارية بجهد 12 فولت.
مخطط الدائرة وشرح العمل:
في دائرة مراقبة جهد البطارية هذه ، قرأنا جهد بطارية السيارة باستخدام دبوس تناظري يحمل في ثناياه عوامل من متحكم PIC وهنا اخترنا دبوس AN0 (28) من متحكم دقيق من خلال دائرة مقسم الجهد. يستخدم الصمام الثنائي زينر 5.1 فولت أيضًا للحماية.
يتم استخدام شاشة العرض 4 في 1 ذات الأجزاء السبعة لعرض القيمة اللحظية لجهد بطارية السيارة المتصل في PORTB و PORTC للمتحكم الدقيق. يتم استخدام منظم جهد 5 فولت وهو LM7805 لتشغيل الدائرة بأكملها بما في ذلك شاشات العرض السبعة. يتم استخدام مذبذب بلوري بسرعة 20 ميجاهرتز لتوقيت وحدة التحكم الدقيقة. يتم تشغيل الدائرة بواسطة شاحن السيارة USB نفسه باستخدام LM7805. لقد أضفنا منفذ USB في PCB ، حتى نتمكن من توصيل شاحن USB للسيارة بالدائرة مباشرةً.
يوفر شاحن USB للسيارة أو ولاعة السجائر إمدادًا منظمًا بجهد 5 فولت من منفذ طاقة 12 فولت للسيارة ، لكننا نحتاج إلى قياس الجهد الفعلي لبطارية السيارة ، لذلك قمنا بتعديل شاحن السيارة. تحتاج إلى فتح شاحن USB للسيارة ثم العثور على طرفي 5 فولت (خرج) و 12 فولت (إدخال) ثم إزالة اتصال 5 فولت عن طريق فركه بورق رملي أو ببعض الأشياء الصعبة واختصار طرف إخراج USB إلى 12 فولت مباشرة. أولاً ، افتح اتصال 5 فولت من منفذ USB في شاحن USB للسيارة ثم قم بتوصيل 12 فولت بمنفذ USB حيث تم توصيل 5 فولت. كما هو موضح في الشكل أدناه ، قمنا بقطع الاتصال ذي الدائرة الحمراء ، وقد يختلف في شاحن سيارتك.
لتكوين ADC هنا ، اخترنا الدبوس التناظري AN0 بجهد مرجعي داخلي يبلغ 5 فولت و f / 32 على مدار الساعة لتحويل ADC.
لحساب جهد بطارية السيارة من قيمة ADC ، استخدمنا الصيغة المعطاة:
الجهد = (قيمة ADC / عامل المقاوم) * الجهد المرجعي حيث: قيمة ADC = خرج مقسم الجهد (تم تحويله إلى رقمي بواسطة متحكم دقيق) عامل المقاوم = 1023.0 / (R2 / R1 + R2) // 1023 هي أقصى قيمة ADC (10- بت) الجهد المرجعي = 5 فولت // تم تحديد مرجع داخلي 5 فولت
حساب عامل المقاوم:
في هذا المشروع نقرأ جهد بطارية السيارة الذي يبلغ (بشكل عام) حوالي 12 فولت إلى 14 فولت. لذلك قمنا بهذا المشروع على افتراض أن الحد الأقصى 15 فولت يعني أن هذا النظام يمكن قراءته بحد أقصى 15 فولت.
لذلك في الدائرة ، استخدمنا المقاوم R1 و R2 في جزء مقسم الجهد والقيم هي:
R1 = 2 كيلو
R2 = 1 كيلو
عامل المقاوم = 1023.0 * (1000/2000 + 1000)
عامل المقاوم = 1023.0 * (1/3)
عامل المقاومة = 341.0 حتى 15 فولت
لذا فإن الصيغة النهائية لحساب الجهد ستكون على النحو التالي ، والتي استخدمناها في الكود الوارد في نهاية هذه المقالة:
الجهد = (قيمة ADC / 341.0) * 5.0
تصميم الدوائر و PCB باستخدام EasyEDA:
لتصميم دائرة لمراقبة جهد بطارية السيارة ، استخدمنا EasyEDA وهي أداة EDA مجانية عبر الإنترنت لإنشاء الدوائر وثنائي الفينيل متعدد الكلور بطريقة سلسة. لقد طلبنا سابقًا عددًا قليلاً من مركبات ثنائي الفينيل متعدد الكلور من EasyEDA وما زلنا نستخدم خدماتهم حيث وجدنا العملية بأكملها ، بدءًا من رسم الدوائر إلى طلب ثنائي الفينيل متعدد الكلور ، أكثر ملاءمة وكفاءة مقارنةً بمصنعي ثنائي الفينيل متعدد الكلور الآخرين. تقدم EasyEDA رسم الدوائر ، والمحاكاة ، وتصميم ثنائي الفينيل متعدد الكلور مجانًا ، كما تقدم خدمة PCB مخصصة عالية الجودة ولكن بسعر منخفض. تحقق هنا من البرنامج التعليمي الكامل حول كيفية استخدام Easy EDA لصنع المخططات وتخطيطات PCB ومحاكاة الدوائر وما إلى ذلك.
EasyEDA تتحسن يومًا بعد يوم ؛ لقد أضافوا العديد من الميزات الجديدة وتحسين تجربة المستخدم الإجمالية ، مما يجعل EasyEDA أسهل وقابلة للاستخدام في تصميم الدوائر. سيطلقون قريبًا إصدار سطح المكتب الخاص به ، والذي يمكن تنزيله وتثبيته على جهاز الكمبيوتر الخاص بك للاستخدام في وضع عدم الاتصال.
في EasyEDA ، يمكنك جعل تصميمات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور الخاصة بك عامة حتى يتمكن المستخدمون الآخرون من نسخها أو تعديلها والاستفادة منها ، كما أننا جعلنا تخطيطات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور الخاصة بنا عامة لشاشة جهد بطارية السيارة هذه ، تحقق من الرابط أدناه:
easyeda.com/circuitdigest/PIC_based_Car_Battery_Monitoring_System-63c2d5948eaa48c5bcb”db49a6c776
يوجد أدناه لقطة من الطبقة العليا لتخطيط ثنائي الفينيل متعدد الكلور من EasyEDA ، يمكنك عرض أي طبقة (أعلى ، أسفل ، سطح علوي ، حرير سفلي ، إلخ) من ثنائي الفينيل متعدد الكلور عن طريق تحديد الطبقة من نافذة "الطبقات".
حساب وطلب عينات ثنائي الفينيل متعدد الكلور عبر الإنترنت:
بعد الانتهاء من تصميم ثنائي الفينيل متعدد الكلور ، يمكنك النقر فوق رمز إخراج التصنيع ، والذي سينقلك إلى صفحة طلب PCB. هنا يمكنك عرض PCB الخاص بك في Gerber Viewer أو تنزيل ملفات Gerber الخاصة بـ PCB وإرسالها إلى أي مصنع ، كما أنه من الأسهل (والأرخص) طلبها مباشرة في EasyEDA. هنا يمكنك تحديد عدد مركبات ثنائي الفينيل متعدد الكلور التي تريد طلبها ، وعدد طبقات النحاس التي تحتاجها ، وسمك ثنائي الفينيل متعدد الكلور ، ووزن النحاس ، وحتى لون ثنائي الفينيل متعدد الكلور. بعد تحديد جميع الخيارات ، انقر فوق "حفظ في عربة التسوق" وإكمال الطلب ، ثم ستحصل على ثنائي الفينيل متعدد الكلور بعد بضعة أيام.
يمكنك طلب PCB مباشرة أو تنزيل ملف Gerber باستخدام هذا الرابط.
بعد أيام قليلة من طلب PCB ، حصلت على عينات PCB
بعد الحصول على ثنائي الفينيل متعدد الكلور ، قمت بتركيب جميع المكونات المطلوبة على ثنائي الفينيل متعدد الكلور ، وأخيراً أصبح لدينا نظام مراقبة بطارية السيارة جاهزًا ، تحقق من هذه الدائرة في العمل في الفيديو المقدم في النهاية.
شرح البرمجة:
برنامج هذا المشروع صعب بعض الشيء للمبتدئين. لكتابة هذا الرمز ، نحتاج إلى بعض ملفات الرأس. نحن هنا نستخدم MPLAB X IDE للترميز و XC مترجم لبناء وتجميع الكود. الشفرة مكتوبة بلغة سي.
في هذا الكود ، قرأنا جهد البطارية باستخدام دبوس تمثيلي وللتحكم في البيانات أو إرسالها إلى عرض مكون من 4 أرقام بسبعة مقاطع ، استخدمنا Timer Interrupt Server Routine في متحكم PIC. تتم جميع حسابات قياس الجهد في روتين البرنامج الرئيسي.
أولاً ، في الكود قمنا بتضمين رأس ثم تكوين متحكم PIC باستخدام بتات التكوين.
#تضمن
ثم يتم عرض المتغيرات المعلنة والدبابيس المحددة لسبعة قطاعات
عداد عدد العمليات 2 بدون إشارة ؛ موضع حرف غير موقع = 0 ؛ حرف غير موقّع = {0xc0،0xf9،0xa4،0xb0،0x99،0x92،0x82،0xf8،0x80،0x90} ؛ int digit1 = 0 ، digit2 = 0 ، digit3 = 0 ، digit4 = 0 ؛ # تعريف TRIS_seg1 TRISCbits.TRISC0 # تعريف TRIS_seg2 TRISCbits.TRISC1 # تعريف TRIS_seg3 TRISCbits.TRISC2 # تعريف TRIS_seg4 TRISCbits.TRISC3 # تعريف TRIS_led1 TRISAbits.TRISA2 # تعريف TRIS_led2 TRISAbits.TRISA5 # تعريف TRIS_led3 TRISAbits.TRISA0 # تعريف TRIS_led4 TRISAbits.TRISA1 تعريف # TRIS_led5 TRISAbits.TRISA………………
لقد أنشأنا الآن روتين مقاطعة مؤقت لقيادة عرض سبعة أجزاء:
مقاطعة باطلة low_priority LowIsr (باطل) {if (TMR0IF == 1) {counter2 ++؛ إذا (counter2> = 1) {if (position == 0) {seg1 = 0 ؛ seg2 = 1 ؛ seg3 = 1 ؛ seg4 = 1 ؛………………
الآن في الوظيفة الرئيسية () الفارغة ، قمنا بتهيئة المؤقت والمقاطعة.
GIE = 1 ؛ // GLOBLE INTRRUPT ENABLE PEIE = 1 ؛ // علم انتفاخ محيطي T0CON = 0b000000000 ؛ // قيمة prescaler وضع TMR0IE = 1 ؛ // تمكين المقاطعة TMR0IP = 0 ؛ // أولوية المقاطعة TMR0 = 55536 ؛ // بدء العداد بعد هذه القيمة TMR0ON = 1 ؛
ثم في حلقة while loop ، نقرأ المدخلات التناظرية عند الدبوس التناظري ونستدعى بعض الوظائف لإجراء العمليات الحسابية.
بينما (1) {adc_init () ؛ لـ (i = 0 ؛ i <40 ؛ i ++) {القيمة = adc_value () ؛ adcValue + = القيمة ؛ } adcValue = (float) adcValue / 40.0 ؛ تحويل (adcValue) ؛ تأخير (100) ؛ }
نظرا adc_init () يتم استخدام الدالة لتهيئة ADC
adc_init () باطل {ADCON0 = 0b00000011 ؛ // حدد قناة adc ADCON1 = 0b00001110 ؛ // حدد التناظرية والرقمية i / p ADCON2 = 0b10001010 ؛ // وقت التكافؤ عقد الغطاء الوقت ADON = 1 ؛ }
نظرا adc_value يتم استخدام الدالة لقراءة المدخلات من دبوس التناظرية والجهد حساب.
float adc_value (void) {float adc_data = 0 ؛ بينما (GO / DONE == 1) ؛ // قيمة تحويل بيانات بدء البت الأعلى adc_data = (ADRESL) + (ADRESH << 8) ؛ // تخزين إخراج 10 بت adc_data = ((adc_data / 342.0) * 5.0) ؛ إرجاع adc_data ؛ }
ويتم استخدام دالة التحويل المعطاة لتحويل قيمة الجهد إلى قيم مدعومة للقطاع.
تحويل باطل (float f) {int d = (f * 100) ؛ digit1 = d٪ 10 ؛ د = د / 10 ؛ digit2 = d٪ 10 ؛ د = د / 10 ؛ digit3 = d٪ 10 ؛ digit4 = d / 10 ؛ }
تحقق من الكود الكامل لهذا المشروع أدناه مع فيديو توضيحي.