فهم تصميم الدائرة
إذا كنت لا ترغب في قراءة التفسير بالكامل ، فيمكنك مشاهدة هذا الفيديو بدلاً من ذلك:

الآن دعونا نرى مخطط الدائرة أدناه ونتعلم كيف يعمل هذا الشيء بالفعل. نرى الأجزاء الرئيسية التالية في الدائرة:

لوحة أردوينو - هذا هو دماغنا. إنه يعطي نبضات SPWM التي تقرر كيفية تشغيل دائرتنا.
IR2110 MOSFET DRIVER ICS (IC1 و IC2) -تأخذ هذه الأجهزة إشارات SPWM القياسية من Arduino وجعلها متوافقة لتبديل 4 N-channel H-bridge mosfets بشكل صحيح ، باستخدام طريقة bootstrapping.
MOSFETS (Q1 ، Q2 ، Q3 ، Q4) - هذه هي مفاتيح الطاقة. يقومون بتشغيل قوة DC وإيقافها بطريقة محددة لإنشاء AC في الإخراج.
الثنائيات (1N4007) والمكثفات - هذه لتمكين العمل الصحيح لشبكة bootstrapping من ICS للتبديل المثالي لـ 4 MOSFETs.
المكثفات والمقاومات الأخرى - هذه صغيرة ولكنها مهمة للغاية لأنها تبقي كل شيء يعمل بسلاسة.
مزود الطاقة - نحتاج إلى +12V و +5V لـ Arduino و IR2110 ICs ، وجهد DC عالي للمواد ، وفقًا لمواصفات الحمل.
ماذا يحدث في الدائرة؟
الآن دعونا نرى كيف يعمل هذا خطوة بخطوة:
Arduino يولد إشارات SPWM في دبابيس الإخراج (دبوس 8 و PIN 9). تستمر هذه الإشارات في تغيير العرض لإنشاء شكل مكافئ لموجة جيبية التيار المتردد.
تتلقى IR2110 ICS إشارات PWM واستخدمها لتبديل MOSFETs وإيقافها بطريقة محددة للغاية.
يحول H-bridge المصنوع باستخدام أربعة MOSFETs إمدادات ناقل DC إلى إخراج يشبه AC عن طريق تبديل الاتجاه الحالي من خلال التحميل باستخدام SPWM تبديل.
في الإخراج ، نحصل على تقريب موجة جيبية مما يعني أنه يبدو وكأنه موجة جيبية ولكنها مصنوعة بالفعل من نبضات تبديل سريع.
إذا أضفنا دائرة مرشح في الإخراج ، فيمكننا تنعيم هذه البقول والحصول على موجة جيبية أكثر مثالية.
رمز Arduino الخاص بنا لـ GET Wave PWM
حتى الآن دعونا نرى الرمز. هذا ما سيقوم Arduino بتشغيله لإنشاء إشارات SPWM.
// By Swagatam
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// First half of the sine wave
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(2000);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
// Second half of the sine wave
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(2000);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
}
ما الذي يحدث في هذا الرمز؟
أولاً ، أنشأنا دبابيس الإخراج (PIN 8 و PIN 9). هذه سوف ترسل إشارات PWM لدينا.
ثم في الحلقة نقوم بتشغيل الدبوس وإيقافها في نمط خاص.
نبدأ بنبضات ضيقة وزيادة عرض النبض تدريجياً ثم نقوم بتخفيضه. هذا يخلق نمط PWM موجة جيبية خطوة.
بعد الانتهاء من دورة النصف الأول ، نكرر نفس الشيء على الدبوس الآخر (دبوس 9) للدورة التالية.
وبهذه الطريقة ، يقوم H-bridge بتبديل MOSFETs في موجة الجيوب الأنفية المناسبة مثل الموضة.
ما هو جيد في هذا التصميم
التصميم بسيط للغاية. نحن نستخدم مجرد Arduino وبعض المكونات الشائعة.
لا نحتاج إلى مولد موجة جيبية هنا ، صحيح. Arduino نفسه يجعل شكل جيبي باستخدام SPWM.
يعمل H-bridge بكفاءة باستخدام IR2110 ICS للتأكد من أن MOSFETs تبديل بشكل صحيح دون ارتفاع درجة الحرارة.
يمكننا ضبط SPWM بسهولة ، في حال كنا نريد تردد موجة جيبية مختلفة ، ثم نقوم فقط بتعديل الكود قليلاً.
كيف يجب أن نتعامل مع تأخير التمهيد Arduino
الآن شيء مهم للغاية يجب أن نفهمه هو أن Arduino يستغرق بعض الوقت للبدء بعد تبديل الطاقة.
يحدث هذا لأنه عندما نقوم بتشغيل Arduino ، يقوم أولاً بتشغيل محمل التمهيد الداخلي الذي يستغرق بضع ثوان.
لذلك خلال هذا الوقت ، قد لا يتلقى برنامج تشغيل IR2110 GATE و MOSFETs أي إشارات مناسبة من Arduino.
في حالة حدوث ذلك ، قد يتم تشغيل MOSFETs بشكل عشوائي مما قد يلحق الضرر بالـ ICS على الفور ، أو يتسبب في دائرة قصيرة أو انفجار.
للتأكد من أن تأخير التمهيد أعلاه لا يحرق ICs و MOSFETs أثناء الطاقة الأولية ، نحتاج إلى تعديل الكود أعلاه كما هو موضح أدناه:
// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
// First pin (8) switching pattern
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(2000);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
// Second pin (9) switching pattern
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(2000);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
}
قائمة قطع الغيار
لوحة أردوينو | Arduino Uno (أو أي لوحة متوافقة) | 1 |
MOSFET DRIVER IC | IR2110 سائق جانبي مرتفع ومنخفض | 2 |
mosfets | IRF3205 (أو قناة N مماثلة) | 4 |
الثنائيات | 1N4007 (للتمهيد والحماية) | 4 |
المقاومات | 1KΩ 1/4W (سحب بوابة MOSFET) | 4 |
المقاومات | 150Ω 1/4W (مقاوم سلسلة بوابة MOSFET) | 4 |
المكثفات | 100NF (Bootstrap Capacitor) | 2 |
المكثفات | 22UF 25V (مرشح إمداد الطاقة) | 2 |
حمولة | أي حمل مقاوم أو استقرائي | 1 |
مزود الطاقة | +12V DC (لـ MOSFETS) و +5V DC (لأردوينو) | 1 |
الأسلاك والموصلات | مناسبة لاتصالات الدائرة | حسب الحاجة |
نصائح البناء
الآن عندما نبني هذا الشيء فعليًا ، يجب أن نكون حذرين للغاية بشأن بعض الأشياء المهمة. وإلا فقد لا يعمل أو ما هو أسوأ ، فقد يحترق شيء ما؟ لذا ، إليك بعض نصائح البناء المهمة التي يجب أن نتبعها:
كيف يجب أن نرتب الأجزاء الموجودة على السبورة
إذا استخدمنا لوح الخبز ، فقد لا تعمل هذه الدائرة بشكل جيد لأن MOSFETs عالية الطاقة والسائقين تحتاج إلى اتصالات قوية ومصادرة.
لذلك يجب أن نستخدم ثنائي الفينيل متعدد الكلور (لوحة الدوائر المطبوعة) أو على الأقل لوحة Perf و Colder الأجزاء بشكل صحيح.
إذا صنعنا ثنائي الفينيل متعدد الكلور ، فيجب علينا الاحتفاظ بـ MOSFETs و IR2110 ICs قريبة من بعضها البعض بحيث لا تصبح الإشارات ضعيفة أو متأخرة.
يجب أن تذهب الأسلاك السميكة للمسارات الحالية العالية مثل مصدر الطاقة إلى MOSFETs ومن MOSFETs إلى الحمل.
يمكن استخدام الأسلاك الرقيقة فقط لاتصالات الإشارة مثل من Arduino إلى IR2110 ICs.
كيف يجب أن نضع MOSFETs
يجب وضع MOSFETs الأربعة في شكل H-bridge المناسب بحيث لا تصبح الأسلاك فوضوية.
يجب أن يكون لكل MOSFET اتصالات قصيرة وسميكة لـ IR2110 IC.
إذا وضعنا MOSFETs بعيدًا جدًا عن IR2110 ، فقد تصبح الإشارات ضعيفة وقد لا تتحول MOSFETs بشكل صحيح.
إذا حدث ذلك ، فيمكن أن تصبح MOSFETs ساخنة وحتى تحترق.
كيف يجب أن نصلح مشكلة الحرارة
إذا استخدمنا IRF3205 MOSFETs أو مشابهة ، فسيتم تسخينها إذا لم نمنحهم غرفة تبريد.
لذلك يجب علينا إصلاح غرفة تبريد الألومنيوم الكبيرة إلى MOSFETs للحفاظ على هدوئها.
إذا كنا نصنع العاكس عالي الطاقة (أكثر من 100 واط) ، فيجب علينا أيضًا إرفاق مروحة تبريد على غرفة التبريد.
إذا أصبحت MOSFETs ساخنة جدًا بحيث لا يمكن لمسها ، فهذا يعني أن هناك بعض المشكلات ونحن بحاجة إلى التحقق من الدائرة مرة أخرى.
كيف يجب أن نشغل الدائرة
يعمل جزء Arduino على 5V ويحتاج MOSFETs إلى 12V أو أكثر للعمل.
لذلك يجب ألا نربط 12 فولت بأردوينو ، أو سيحترق على الفور!
تحتاج IR2110 ICS إلى مستلزمتين طاقة:
12 فولت ل moSfets عالية
5V لقسم المنطق
إذا خلطنا خطوط الطاقة هذه ، فلن تعمل الدائرة بشكل صحيح ولن يتم تبديل MOSFETs بشكل صحيح.
كيف يجب أن نربط الأسلاك
اتصال الأرض (GND) مهم للغاية. إذا كانت الأسلاك الأرضية ضعيفة أو طويلة ، فقد تتصرف الدائرة بغرابة.
يجب أن نستخدم أرضية مشتركة لجميع الأجزاء ، مما يعني أن أرض Arduino و IR2110 الأرضية ومصدر MOSFET يجب أن تكون متصلة معًا.
إذا رأينا أن الدائرة تتصرف بشكل غريب (مثل الخفقان أو MOSFETs تتدفق دون تحميل) ، فيجب علينا التحقق من اتصالات الأرض أولاً.
كيف يجب أن نتحقق من الدائرة قبل تشغيلها
قبل أن نقوم بتشغيل الطاقة ، يجب علينا التحقق من جميع الاتصالات لمعرفة ما إذا كان كل شيء صحيحًا.
إذا كان لدينا مقياس متعدد ، فيجب علينا استخدامه للتحقق من الفولتية في نقاط مختلفة قبل إدخال MOSFETs.
سنحتاج بدقة إلى الذبذبات حتى نتمكن من التحقق من إشارات SPWM القادمة من Arduino لمعرفة ما إذا كانت تبدو صحيحة.
كيف ينبغي لنا اختبار الدائرة بعناية
أفضل طريقة لاختبار هذه الدائرة بأمان هي البدء بجهد منخفض.
بدلاً من 12 فولت ، يمكننا أولاً المحاولة مع 6V أو 9V لمعرفة ما إذا كانت MOSFETs تتحول بشكل صحيح.
إذا كانت الدائرة تعمل بشكل جيد عند الجهد المنخفض ، فيمكننا زيادة ببطء إلى 12 فولت وأخيراً إلى الجهد الكامل.
إذا قمنا بتطبيق الجهد الكامل فجأة وشيء خاطئ ، فقد يكون هناك شيء ما قد يحترق على الفور!
لذلك يجب أن نختبر خطوة بخطوة والاستمرار في التحقق من ارتفاع درجة الحرارة أو السلوك الخاطئ.
كيف يمكننا إضافة مرشح لإخراج أكثر سلاسة
تقوم هذه الدائرة بإخراج AC باستخدام PWM ولكنه لا يزال مصنوعًا من نبضات سريعة.
إذا كنا نريد موجة جيبية نظيفة ، فيجب علينا إضافة مرشح LC في الإخراج.
مرشح LC هذا مجرد محث كبير ومكثف متصل بالإخراج.
يزيل المحث نبضات التبديل السريع ويؤدي المكثف إلى تنعيم الشكل الموجي.
إذا فعلنا ذلك بشكل صحيح ، فيمكننا الحصول على موجة جيبية نقية آمنة للأجهزة.
كيف يجب أن نحمي الدائرة من الضرر
يجب أن نضيف دائمًا فتيل في سلسلة مع مصدر الطاقة.
في حالة فشل شيء ما أو MOSFET ، فسوف ينفصل الصمامات أولاً وإنقاذ الدائرة من الاحتراق.
إذا فشلت MOSFETs فأنت في بعض الأحيان تفشل (بمعنى أنها تبقى دائمًا).
إذا حدث ذلك ، فإن التيار الضخم يمكن أن يتدفق ويضر بالمحول أو الأجزاء الأخرى.
لذلك من الجيد دائمًا التحقق من MOSFETs باستخدام مقياس متعدد قبل تطبيق الطاقة العالية.
خاتمة
لذا ، رأينا هنا كيف يمكننا أن نجعل عاكس موجة جيبية باستخدام Arduino فقط ودائرة H-Bridge Mosfet. استخدمنا برامج تشغيل IR2110 MOSFET لتبديل MOSFETs و PWM بشكل صحيح من Arduino لتوليد AC المُشجّل الجيبي.
الآن شيء واحد يجب تذكره هو أن هذا المخرج لا يزال مصنوعًا من نبضات تبديل سريع ، لذا إذا كنا بحاجة إلى موجة جيبية نقية ، فيجب علينا إضافة مرشح LC في الإخراج لتنعيمه.
ولكن بشكل عام ، هذه طريقة عملية وسهلة للغاية لجعل العاكس موجة جيبية في المنزل!