- ما هي إشارة PWM؟
- كيفية تحويل إشارة PWM إلى الجهد التناظري؟
- مخطط الرسم البياني:
- برمجة MSP لإشارة PWM:
- التحكم في سطوع LED مع PWM:
هذا البرنامج التعليمي هو جزء من سلسلة دروس MSP430G2 LaunchPad التي نتعلم فيها استخدام MSP430G2 LaunchPad من Texas Instruments. لقد تعلمنا حتى الآن أساسيات اللوحة وقمنا بتغطية كيفية قراءة الجهد التناظري وواجهة LCD مع MSP430G2 وما إلى ذلك. والآن ننتقل إلى الخطوة التالية للتعرف على PWM في MSP430G2. سنفعل ذلك من خلال التحكم في سطوع LED عن طريق تغيير مقياس الجهد. لذلك سيتم توصيل مقياس الجهد بمسمار تناظري MSP430 لقراءة جهده التناظري ، ومن ثم يوصى بمعرفة كيفية متابعة البرنامج التعليمي ADC قبل المتابعة.
ما هي إشارة PWM؟
يعد تعديل عرض النبض (PWM) إشارة رقمية تستخدم بشكل شائع في دوائر التحكم. تم ضبط هذه الإشارة عالية (3.3 فولت) ومنخفضة (0 فولت) في وقت وسرعة محددين مسبقًا. يسمى الوقت الذي تظل فيه الإشارة عالية "في الوقت المحدد" والوقت الذي تظل خلاله الإشارة منخفضة يسمى "وقت التوقف". هناك نوعان من المعلمات الهامة لـ PWM كما هو موضح أدناه:
دورة عمل PWM:
تسمى النسبة المئوية للوقت الذي تظل فيه إشارة PWM عالية (في الوقت المحدد) كدورة عمل. إذا كانت الإشارة في وضع التشغيل دائمًا ، فهي في دورة عمل بنسبة 100٪ ، وإذا كانت متوقفة عن التشغيل دائمًا ، تكون 0٪ من دورة العمل.
دورة العمل = وقت التشغيل / (وقت التشغيل + وقت الإيقاف)
تردد PWM:
يحدد تردد إشارة PWM مدى سرعة إكمال PWM لفترة واحدة. فترة واحدة كاملة وإيقاف تشغيل إشارة PWM كما هو موضح في الشكل أعلاه. في البرنامج التعليمي الخاص بنا ، يكون التردد 500 هرتز لأنه القيمة الافتراضية التي يحددها Energia IDE.
هناك عدد كبير من التطبيقات لإشارات PWM في الوقت الفعلي ، ولكن لإعطائك فكرة ، يمكن استخدام إشارة PWM للتحكم في المحركات المؤازرة ويمكن أيضًا تحويلها إلى جهد تناظري يمكنه التحكم في سطوع سطوع LED. دعونا نتعلم قليلاً عن كيفية القيام بذلك.
فيما يلي بعض أمثلة PWM مع متحكم آخر:
- توليد PWM باستخدام PIC Microcontroller مع MPLAB و XC8
- التحكم في محرك سيرفو مع Raspberry Pi
- اردوينو LED باهتة باستخدام PWM
تحقق من جميع المشاريع المتعلقة بـ PWM هنا.
كيفية تحويل إشارة PWM إلى الجهد التناظري؟
لإشارات PWM إلى الجهد التناظري ، يمكننا استخدام دائرة تسمى مرشح RC. هذه دائرة بسيطة وشائعة الاستخدام لهذا الغرض. تشتمل الدائرة فقط على المقاوم ومكثف في سلسلة كما هو موضح في الدائرة أدناه.
إذن ما يحدث هنا بشكل أساسي هو أنه عندما تكون إشارة PWM عالية ، فإن المكثف يشحن من خلال المقاوم وعندما تنخفض إشارة PWM ، يقوم المكثف بتفريغ الشحنات المخزنة. بهذه الطريقة سيكون لدينا دائمًا جهد ثابت عند الخرج يتناسب مع دورة عمل PWM.
في الرسم البياني الموضح أعلاه ، اللون الأصفر هو إشارة PWM واللون الأزرق هو الجهد التناظري الناتج. كما ترى ، لن تكون موجة الخرج موجة تيار مستمر خالصة ولكنها يجب أن تعمل جيدًا لتطبيقنا. إذا كنت بحاجة إلى موجة DC نقية لنوع آخر من التطبيقات ، فيجب عليك تصميم دائرة تبديل.
مخطط الرسم البياني:
مخطط الدائرة بسيط جدًا ؛ إنه يحتوي فقط على مقياس جهد ومقاوم ومكثف لتشكيل دائرة RC والصمام نفسه. يتم استخدام مقياس الجهد لتوفير جهد تناظري يعتمد على إمكانية التحكم في دورة عمل إشارة PWM. يتم توصيل خرج القدر بـ Pin P1.0 والذي يمكنه قراءة الفولتية التناظرية. ثم يتعين علينا إنتاج إشارة PWM ، والتي يمكن إجراؤها باستخدام دبوس P1.2 ، ثم يتم إرسال إشارة PWM هذه إلى دائرة مرشح RC لتحويل إشارة PWM إلى جهد تناظري والذي يتم إعطاؤه بعد ذلك إلى LED.
من المهم جدًا أن نفهم أنه لا يمكن لجميع المسامير الموجودة على لوحة MSP قراءة الجهد التناظري أو يمكنها إنشاء دبابيس PWM. تظهر المسامير المحددة التي يمكنها القيام بالمهام المحددة في الشكل أدناه. استخدم هذا دائمًا كدليل لتحديد دبابيس البرمجة الخاصة بك.
قم بتجميع الدائرة الكاملة كما هو موضح أعلاه ، يمكنك استخدام لوحة توصيل وعدد قليل من أسلاك التوصيل وإجراء التوصيلات بسهولة. بمجرد الانتهاء من الاتصالات ، بدا لوحتي كما هو موضح أدناه.
برمجة MSP لإشارة PWM:
بمجرد أن يصبح الجهاز جاهزًا ، يمكننا البدء ببرمجتنا. أول شيء في البرنامج هو التصريح عن المسامير التي سنستخدمها. سنستخدم هنا رقم التعريف الشخصي 4 (P1.2) باعتباره دبوس الإخراج الخاص بنا نظرًا لأنه يتمتع بالقدرة على إنشاء PWM. لذلك قمنا بإنشاء متغير وقمنا بتعيين اسم الدبوس حتى يسهل الرجوع إليه لاحقًا في البرنامج. يتم تقديم البرنامج الكامل في النهاية.
كثافة العمليات PWMpin = 4 ؛ // نحن نستخدم الدبوس الرابع في وحدة MSP كدبوس PWM
بعد ذلك نأتي إلى وظيفة الإعداد . مهما كان الرمز المكتوب هنا سيتم تنفيذه مرة واحدة فقط ، هنا نعلن أننا نستخدم هذا الطرف الرابع كدبوس إخراج لأن PWM هي وظيفة الإخراج. لاحظ أننا استخدمنا المتغير PWMpin هنا بدلاً من الرقم 4 بحيث يبدو الرمز أكثر وضوحًا
إعداد باطل () { pinMode (PWMpin، OUTPUT) ؛ // تم تعيين PEMpin على أنه Outptut }
أخيرًا ندخل في وظيفة الحلقة . كل ما نكتبه هنا يتم إعدامه مرارًا وتكرارًا. في هذا البرنامج ، يتعين علينا قراءة الجهد التناظري وإنشاء إشارة PWM وفقًا لذلك ويجب أن يحدث هذا مرارًا وتكرارًا. لنبدأ أولاً بقراءة الجهد التناظري من الدبوس A0 لأننا وصلنا إلى مقياس الجهد.
نحن هنا نقرأ القيمة باستخدام وظيفة AanalogRead ، ستُرجع هذه الوظيفة قيمة من 0-1024 بناءً على قيمة الجهد المطبق على الدبوس. ثم نقوم بتخزين هذه القيمة في متغير يسمى "val" كما هو موضح أدناه
int val = analogRead (A0) ؛ // اقرأ قيمة ADC من الدبوس A0
يتعين علينا تحويل القيم من 0 إلى 1024 من ADC إلى قيم من 0 إلى 255 لإعطائها لوظيفة PWM. لماذا يجب علينا تحويل هذا؟ سأقول ذلك قريبًا ، لكن تذكر الآن أنه يتعين علينا التحويل. لتحويل مجموعة واحدة من القيم إلى مجموعة أخرى من القيم ، فإن Energia لديها وظيفة خريطة مشابهة لـ Arduino. لذلك نقوم بتحويل القيم من 0-1204 إلى 0-255 وحفظها مرة أخرى في المتغير "val".
فال = خريطة (val ، 0 ، 1023 ، 0 ، 255) ؛ // سيعطي ADC القيمة 0-1023 ، وقم بتحويلها إلى 0-255
الآن لدينا قيمة متغيرة من 0-255 بناءً على موضع مقياس الجهد. كل ما يتعين علينا القيام به هو استخدام هذه القيمة على دبوس PWM ويمكن القيام بذلك باستخدام السطر التالي.
analogWrite (PWMpin ، فال) ؛ // اكتب هذه القيمة إلى دبوس PWM.
دعنا نعود إلى السؤال عن سبب كتابة 0-255 على دبوس PWM. تحدد هذه القيمة 0-255 دورة عمل إشارة PWM. على سبيل المثال ، إذا كانت قيمة الإشارة 0 ، فهذا يعني أن دورة العمل هي 0٪ لـ 127 فهي 50٪ وبالنسبة لـ 255 تكون 100٪ تمامًا مثل ما هو موضح وموضح في الجزء العلوي من هذه المقالة.
التحكم في سطوع LED مع PWM:
بمجرد فهمك للجهاز والرمز ، فقد حان الوقت للاستمتاع ببعض المرح مع عمل الدائرة. قم بتحميل الكود إلى لوحة MSP430G2 وأدر مقبض مقياس الجهد. عندما تدير المقبض ، سيختلف الجهد على السن 2 والذي سيقرأه المتحكم الدقيق ووفقًا للجهد ، سيتم إنشاء إشارات PWM على الدبوس 4. وكلما زاد الجهد ، زادت دورة العمل والعكس صحيح.
ثم يتم تحويل إشارة PWM هذه إلى جهد تناظري لتوهج مؤشر LED. و سطوع LED يتناسب طرديا مع دورة العمل إشارة PWM. بصرف النظر عن مؤشر LED الموجود على اللوح ، يمكنك أيضًا ملاحظة أن مؤشر LED smd (اللون الأحمر) يغير سطوعه على غرار مصباح اللوح. هذا هو LED متصل أيضًا بنفس الدبوس ، لكنه لا يحتوي على شبكة RC ، لذا فهو في الواقع يومض بسرعة كبيرة. يمكنك هز السبورة في غرفة مظلمة للتحقق من طبيعتها الخافتة. يمكن أيضًا رؤية العمل الكامل في الفيديو أدناه.
هذا كل شيء الآن ، لقد تعلمنا كيفية استخدام إشارات PWM على لوحة MSP430G2 ، في برنامجنا التعليمي التالي سوف نتعلم مدى سهولة التحكم في محرك سيرفو باستخدام نفس إشارات PWM. إذا كانت لديك أي شكوك ، فقم بنشرها في قسم التعليقات أدناه أو على المنتديات للحصول على المساعدة الفنية.