- المواد المطلوبة
- مخطط دائرة التحميل الإلكترونية لاردوينو DC
- تصميم ثنائي الفينيل متعدد الكلور وملف جربر
- طلب PCB الخاص بك من AllPCB
- كود اردوينو لتحميل تيار مستمر قابل للتعديل
- اختبار حمولة DC القابلة للتعديل
إذا سبق لك العمل مع البطاريات أو دوائر SMPS أو دوائر إمداد الطاقة الأخرى ، فغالبًا ما كان سيحدث أنه يتعين عليك اختبار مصدر الطاقة عن طريق تحميله للتحقق من أدائه في ظل ظروف تحميل مختلفة. يُطلق على الجهاز الذي يتم استخدامه بشكل شائع لإجراء هذا النوع من الاختبار اسم الحمل المستمر للتيار المستمر ، والذي يسمح لنا بضبط تيار الإخراج لمصدر الطاقة لديك ومن ثم الحفاظ عليه ثابتًا حتى يتم تعديله مرة أخرى. في هذا البرنامج التعليمي ، سوف نتعلم كيفية بناء الحمل الإلكتروني القابل للتعديل الخاص بنا باستخدام Arduino ، والذي يمكن أن يأخذ أقصى جهد إدخال يبلغ 24 فولت ويستنزف تيار يصل إلى 5 أمبير. بالنسبة لهذا المشروع ، استخدمنا لوحات PCB التي تم تصنيعها بواسطة AllPCB ، وهي شركة متخصصة في تصنيع وتجميع ثنائي الفينيل متعدد الكلور مقرها الصين.
في البرنامج التعليمي السابق للمصدر الحالي الذي يتم التحكم فيه بالجهد ، أوضحنا كيفية استخدام مضخم تشغيلي مع MOSFET والاستفادة من دائرة مصدر تيار يتحكم فيها الجهد. لكن في هذا البرنامج التعليمي ، سوف نطبق تلك الدائرة ونصنع مصدر تيار متحكم فيه رقميًا. من الواضح أن المصدر الحالي الذي يتم التحكم فيه رقميًا يتطلب دائرة رقمية ولخدمة هذا الغرض ، يتم استخدام Arduino NANO. سيوفر Arduino NANO الضوابط المطلوبة لتحميل التيار المباشر.
تتكون الدائرة من ثلاثة أجزاء. الجزء الأول هو قسم Arduino Nano ، والجزء الثاني هو المحول الرقمي إلى التناظري ، والجزء الثالث عبارة عن دائرة تمثيلية خالصة حيث يتم استخدام مضخم تشغيل مزدوج في حزمة واحدة والذي سيتحكم في قسم التحميل. هذا المشروع مستوحى من منشور على Arduino ، ومع ذلك ، يتم تغيير الدائرة لتقليل التعقيد مع الميزات الأساسية للجميع لبناءها.
تم تصميم الحمل الإلكتروني لدينا بحيث يحتوي على أقسام الإدخال والإخراج التالية.
- مفتاحا إدخال لزيادة الحمل وتقليله.
- شاشة LCD تعرض الحمل المحدد والحمل الفعلي وفولتية الحمل.
- الحد الأقصى للحمل الحالي يقتصر على 5A.
- الحد الأقصى لجهد الإدخال هو 24 فولت للحمل.
المواد المطلوبة
المكونات المطلوبة لبناء حمل إلكتروني للتيار المستمر مذكورة أدناه.
- اردوينو نانو
- شاشة LCD مقاس 16 × 2 حرف
- مقبس برميل
- Mosfet irf540n
- Mcp4921
- م 358
- 5 واط تحويل المقاوم 0.1 أوم
- 1 كيلو
- 10 ك - 6 قطع
- تقليل الحرارة
- .1 فائق التوهج 50 فولت
- 2 كيلو - 2 قطعة
مخطط دائرة التحميل الإلكترونية لاردوينو DC
في المخطط أدناه ، يحتوي مكبر الصوت التشغيلي على قسمين. أحدهما هو التحكم في MOSFET والآخر هو تضخيم التيار المحسوس. يمكنك أيضًا التحقق من الفيديو الموجود أسفل هذه الصفحة والذي يشرح العمل الكامل للدائرة. القسم الأول يحتوي على R12 و R13 و MOSFET. يستخدم R12 لتقليل تأثير التحميل على قسم التغذية الراجعة ويستخدم R13 كمقاوم بوابة Mosfet.
يتم استخدام مقاومين إضافيين R8 و R9 لاستشعار جهد الإمداد لمصدر الطاقة الذي سيتم التأكيد عليه بواسطة هذا الحمل الوهمي. وفقًا لقاعدة مقسم الجهد ، تدعم هاتان المقاومات بحد أقصى 24 فولت. ينتج عن أكثر من 24 فولت جهد لا يناسب دبابيس Arduino. لذا احرص على عدم توصيل مصدر طاقة به جهد خرج يزيد عن 24 فولت.
المقاوم R7 هو مقاوم الحمل الفعلي هنا. إنه مقاوم 5 وات ، 0.1 أوم. وفقًا لقانون الطاقة ، سيدعم الحد الأقصى 7A (P = I 2 R) ، ولكن بالنسبة للجانب الآمن ، من الحكمة تحديد الحد الأقصى للحمل الحالي وهو 5A. لذلك ، في الوقت الحاضر يمكن ضبط الحمل الوهمي بحد أقصى 24 فولت و 5 أمبير.
تم تكوين قسم آخر من مكبر الصوت كمكبر للصوت. سيوفر مكاسب 6x. أثناء تدفق التيار ، سيظهر انخفاض في الجهد. على سبيل المثال ، عندما يتدفق 5A من التيار عبر المقاوم ، سيكون انخفاض الجهد 0.5V عبر المقاوم التحويلة 0.1 أوم (V = I x R) وفقًا لقانون أوم. يقوم مكبر الصوت غير المقلوب بتضخيمه إلى x6 ، وبالتالي فإن 3V سيكون الناتج من الجزء الثاني من مكبر الصوت. سيتم استشعار هذا الإخراج بواسطة دبوس الإدخال التناظري Arduino nano وسيتم حساب التيار.
يتم تكوين الجزء الأول من مكبر الصوت كدائرة تتبع جهد والتي ستتحكم في MOSFET وفقًا لجهد الإدخال وتحصل على جهد التغذية المرتدة المطلوب بسبب تيار الحمل المتدفق عبر المقاوم التحويل.
MCP4921 هو المحول الرقمي إلى التناظري. تستخدم DAC بروتوكول الاتصال SPI للحصول على البيانات الرقمية من أي وحدة تحكم دقيقة وتوفير خرج جهد تناظري اعتمادًا عليها. هذا الجهد هو مدخلات المرجع أمبير. لقد تعلمنا سابقًا أيضًا كيفية استخدام MCP4921 DAC مع الموافقة المسبقة عن علم.
على الجانب الآخر ، يوجد Arduino Nano الذي سيوفر البيانات الرقمية إلى DAC عبر بروتوكول SPI ويتحكم في الحمل ، ويعرض أيضًا البيانات في عرض الأحرف 16 × 2. يتم استخدام شيئين إضافيين ، وهما زر الزيادة والنقصان. بدلاً من الاتصال بدبوس رقمي ، يتم توصيله في المسامير التناظرية. لذلك ، يمكن للمرء تغييره إلى نوع آخر من المفاتيح مثل شريط التمرير أو التشفير التمثيلي. أيضًا ، من خلال تعديل الكود ، يمكن للمرء توفير بيانات تمثيلية أولية للتحكم في الحمل. هذا أيضا يتجنب مشكلة debounce التبديل.
أخيرًا ، من خلال زيادة الحمل ، ستوفر Arduino nano بيانات التحميل إلى DAC بتنسيق رقمي ، وستوفر DAC البيانات التناظرية لمضخم التشغيل ، وسيتحكم مكبر التشغيل في MOSFET وفقًا لجهد الإدخال لمكبر التشغيل. أخيرًا ، اعتمادًا على تدفق تيار الحمل عبر المقاوم التحويل ، سيظهر انخفاض في الجهد والذي سيتم تضخيمه بشكل أكبر بواسطة القناة الثانية لـ LM358 والحصول عليه بواسطة Arduino nano. سيتم عرض هذا على شاشة عرض الأحرف. سيحدث نفس الشيء عندما يضغط المستخدم على زر تقليل.
تصميم ثنائي الفينيل متعدد الكلور وملف جربر
نظرًا لأن هذه الدائرة لها مسار تيار عالٍ ، فمن الأفضل استخدام أساليب تصميم PCB المناسبة لإزالة حالات الفشل غير المرغوب فيها. وبالتالي ، تم تصميم ثنائي الفينيل متعدد الكلور لهذا الحمل DC. لقد استخدمت برنامج تصميم Eagle PCB لتصميم ثنائي الفينيل متعدد الكلور. يمكنك اختيار أي برنامج PCB Cad. يظهر PCB المصمم النهائي في برنامج CAD في الصورة أدناه ،
أحد العوامل المهمة التي يجب ملاحظتها أثناء تصميم ثنائي الفينيل متعدد الكلور هو استخدام مستوى طاقة سميك لتدفق التيار المناسب في جميع أنحاء الدائرة. هناك أيضًا VIAS للتطريز الأرضي (فتحات عشوائية في المستوى الأرضي) تُستخدم لتدفق الأرض المناسب في كل من الطبقات إلى الأعلى والأسفل.
يمكنك أيضًا تنزيل ملف Gerber الخاص بـ PCB هذا من الرابط أدناه واستخدامه للتصنيع.
- قم بتنزيل ملف Gerber Electronic DC القابل للتعديل
طلب PCB الخاص بك من AllPCB
بمجرد أن تصبح جاهزًا باستخدام ملف Gerber الخاص بك ، يمكنك استخدامه للحصول على ملف PCB الخاص بك. بالحديث عن ذلك ، يجلب راعي هذه المقالة ALLPCB ، المعروفين بمركبات ثنائي الفينيل متعدد الكلور عالية الجودة والشحن فائق السرعة. بصرف النظر عن تصنيع ثنائي الفينيل متعدد الكلور ، يوفر AllPCB أيضًاتجميع ثنائي الفينيل متعدد الكلور ومكونات المصادر.
للحصول على طلب PCB منهم ، قم بزيارة allpcb.com والاشتراك. ثم في الصفحة الرئيسية ، أدخل أبعاد ثنائي الفينيل متعدد الكلور والكمية المطلوبة كما هو موضح أدناه. ثم انقر فوق اقتباس الآن.
يمكنك الآن تغيير المعلمات الأخرى لثنائي الفينيل متعدد الكلور مثل عدد الطبقات ولون القناع والسمك وما إلى ذلك. على الجانب الأيمن ، يمكنك اختيار بلدك وخيار الشحن المفضل. سيُظهر لك هذا المهلة الزمنية والمبلغ الإجمالي الذي يجب دفعه. لقد اخترت DHL وكان المبلغ الإجمالي 26 دولارًا ، ولكن إذا كنت عميلاً لأول مرة ، فستنخفض الأسعار عند الخروج. ثم انقر فوق Add to Cart ثم انقر فوق Check out now.
الآن ، يمكنك النقر فوق تحميل ملف Gerber الخاص بك عن طريق النقر فوق "تحميل Gerber" ثم النقر فوق شراء.
في الصفحة التالية ، يمكنك إدخال عنوان الشحن الخاص بك والتحقق من السعر النهائي الذي يتعين عليك دفعه مقابل PCB الخاص بك. يمكنك بعد ذلك مراجعة طلبك ثم النقر فوق إرسال لإجراء الدفع.
بمجرد تأكيد طلبك ، يمكنك الجلوس وترحيل PCB الخاص بك للوصول إلى عتبة داركم. لقد استلمت طلبي بعد بضعة أيام ، وبعد ذلك كان التغليف أنيقًا كما هو موضح أدناه
كانت جودة PCB جيدة كما هو الحال دائمًا كما ترون بنفسك في الصور أدناه. يظهر الجانب العلوي والجانب السفلي من اللوحة أدناه.
بمجرد الحصول على اللوحة الخاصة بك ، يمكنك المضي قدمًا في تجميع جميع المكونات. لوحتي النهائية تبدو مثل هذا الموضح أدناه.
بعد ذلك ، يمكنك تحميل الكود وتشغيل الوحدة للتحقق من كيفية عملها. الكود الكامل لهذا المشروع مُعطى في أسفل هذه الصفحة. شرح الكود كالتالي.
كود اردوينو لتحميل تيار مستمر قابل للتعديل
الكود بسيط جدا في البداية ، قمنا بتضمين ملفات رأس SPI و LCD بالإضافة إلى ضبط الحد الأقصى للجهد المنطقي ودبابيس اختيار الشريحة وما إلى ذلك.
#تضمن
يتكون هذا القسم من التصريحات المطلوبة المتعلقة بتدفق البرنامج للأعداد الصحيحة والمتغيرات. أيضًا ، قمنا بتعيين دبابيس الأجهزة الطرفية المرتبطة بـ Arduino Nano.
const int slaveSelectPin = 10 ؛ // رقاقة حدد رقم رقم التعريف الشخصي = 0 ؛ زيادة كثافة العمليات = A2 ؛ // زيادة انخفاض كثافة الدبوس = A3 ؛ // تقليل pin int current_sense = A0 ؛ // دبوس الإحساس الحالي int voltage_sense = A1 ؛ // دبوس إحساس الجهد int state1 = 0 ؛ int state2 = 0 ؛ مجموعة int = 0 ؛ تعويم فولت = 0 ؛ تعويم load_current = 0.0 ؛ تعويم load_voltage = 0.0 ؛ تيار تعويم = 0.0 ؛ الجهد العائم = 0.0 ؛ LiquidCrystal LCD (7 ، 6 ، 5 ، 4 ، 3 ، 2) ؛ // دبابيس LCD
يستخدم هذا لإعداد LCD و SPI. أيضًا ، يتم تعيين اتجاهات الدبوس هنا.
إعداد باطل () { pinMode (slaveSelectPin، OUTPUT) ؛ pinMode (زيادة ، INPUT) ؛ pinMode (انخفاض ، إدخال) ؛ pinMode (Current_sense، INPUT) ؛ pinMode (استشعار الجهد ، INPUT) ؛ // تهيئة SPI: SPI.begin () ؛ // قم بإعداد عدد الأعمدة والصفوف في شاشة LCD: lcd.begin (16 ، 2) ؛ // اطبع رسالة على شاشة LCD. lcd.print ("تحميل رقمي") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("ملخص الدائرة") ؛ تأخير (2000) ؛ }
يتم استخدامه لتحويل قيمة DAC.
باطل convert_DAC (قيمة int غير موقعة) { / * حجم الخطوة = 2 ^ n ، لذلك 12bit 2 ^ 12 = 4096 بالنسبة لمرجع 5V ، ستكون الخطوة 5/4095 = 0.0012210012210012V أو 1mV (تقريبًا) * / حاوية int غير موقعة ؛ MSB int MSB غير موقعة ؛ غير موقعة Int LSB ؛ / * الخطوة: 1 ، تخزين بيانات 12 بت في الحاوية لنفترض أن البيانات هي 4095 ، في النظام الثنائي 1111 1111 1111 * / الحاوية = القيمة ؛ / * الخطوة: 2 إنشاء دمية 8 بت. لذلك ، بقسمة 256 ، يتم التقاط 4 بت العلوية في LSB LSB = 0000 1111 * / LSB = حاوية / 256 ؛ / * الخطوة: 3 إرسال التكوين مع تثقيب بيانات 4 بت. LSB = 0011 0000 أو 0000 1111. النتيجة هي 0011 1111 * / LSB = (0x30) - LSB ؛ / * الخطوة: 4 لا تزال قيمة الحاوية 21 بت. استخراج 8 بت أقل. 1111 1111 و 1111 1111 1111. النتيجة هي 1111 1111 وهي MSB * / MSB = 0xFF & container؛ / * الخطوة: 4 إرسال بيانات 16 بت عن طريق تقسيمها إلى وحدتي بايت. * / digitalWrite (slaveSelectPin ، منخفض) ؛ تأخير (100) ؛ SPI.transfer (LSB) ؛ SPI.transfer (MSB) ؛ تأخير (100) ؛ / / خذ دبوس SS عاليًا لإلغاء تحديد الشريحة: digitalWrite (slaveSelectPin ، HIGH) ؛ }
يستخدم هذا القسم للعمليات الحالية ذات الصلة بالاستشعار.
تعويم read_current (باطل) { load_current = 0 ؛ لـ (int a = 0؛ a <average؛ a ++) { load_current = load_current + analogRead (current_sense) ؛ } load_current = load_current / average ؛ load_current = (load_current * MAX_VOLT) / 1024 ؛ load_current = (load_current / opamp_gain) / load_resistor؛ عودة load_current؛ }
يستخدم هذا لقراءة جهد الحمل.
تعويم read_voltage (باطل) { load_voltage = 0 ؛ لـ (int a = 0؛ a <average؛ a ++) { load_voltage = load_voltage + analogRead (voltage_sense) ؛ } load_voltage = load_voltage / المتوسط ؛ load_voltage = ((load_voltage * MAX_VOLT) /1024.0) * 6 ؛ عودة load_voltage ؛ }
هذه هي الحلقة الفعلية. هنا ، يتم قياس خطوات التبديل وإرسال البيانات إلى DAC. بعد نقل البيانات ، يتم قياس التدفق الحالي الفعلي و جهد الحمل. تتم أيضًا طباعة كلا القيمتين أخيرًا على شاشة LCD.
حلقة باطلة () { state1 = analogRead (زيادة) ؛ إذا (الحالة 1> 500) { تأخير (50) ؛ state1 = analogRead (زيادة) ؛ إذا (state1> 500) { volt = volt + 0.02 ؛ } } state2 = analogRead (انخفاض) ؛ إذا (الحالة 2> 500) { تأخير (50) ؛ state2 = analogRead (نقصان) ؛ إذا (state2> 500) { if (volt == 0) { volt = 0 ؛ } آخر { volt = volt-0.02 ؛ } } } number = volt / 0.0012210012210012 ؛ convert_DAC (رقم) ؛ الجهد = read_voltage () ؛ Current = read_current () ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("تعيين القيمة") ؛ lcd.print ("=") ؛ ضبط = (فولت / 2) * 10000 ؛ lcd.print (مجموعة) ؛ lcd.print ("مللي أمبير") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("I") ؛ lcd.print ("=") ؛ lcd.print (الحالية) ؛ lcd.print ("أ") ؛ lcd.print ("V") ؛ lcd.print ("=") ؛ lcd.print (الجهد) ؛ lcd.print ("V") ؛ // lcd.print (load_voltage) ؛ //lcd.print("mA ") ؛ // تأخير (1000) ؛ //lcd.clear () ، }
اختبار حمولة DC القابلة للتعديل
يتم لحام دائرة الحمل الرقمية وتشغيلها باستخدام مصدر طاقة 12 فولت. لقد استخدمت بطارية الليثيوم 7.4 فولت الخاصة بي على جانب مصدر الطاقة وقمت بتوصيل مقياس المشبك للتحقق من كيفية عمله. كما ترى عندما يكون التيار المحدد 300 مللي أمبير ، تسحب الدائرة 300 مللي أمبير من البطارية والتي تقاس أيضًا بمقياس المشبك 310 مللي أمبير.
يمكن العثور على العمل الكامل للدائرة في الفيديو المرتبط أدناه. آمل أن تكون قد فهمت المشروع واستمتعت ببناء شيء مفيد. إذا كانت لديك أي أسئلة ، فاتركها في قسم التعليقات أو استخدم المنتديات.