PWM
اليوم سوف نتناول هذا الموضوع بشيء من التفصيل
هذا الإختصار للتالي
Pulse Width Modulation
ما هو ؟
نشاهد الصورة التالية
كما تشاهدون أن الـ PWM عبارة عن نبضة أو Puls لها بداية و لها نهاية هذه النبضة تتكون من التالي
Ton & Toff & Ttotal
قبل الدخول للقوانين ما هي الفائدة من PWM ؟
هو التحكم بقيم تماثلية عن طريق قيم رقمية يعني استطيع التحكم بالفولت عن Duty cycle .
قبل الشرح الفائدة يجب أن تعرف بعض الأشياء
ما هو الـ Duty Cycle ?
نشاهد القانون التالي
نسبة الـ Ton لـ Ttotal .
إلى الآن لم تفهم الفائدة ؟ نعم كلامك صحيح لكن استمر في القراءة .
نأخذ قانون آخر و هو علاقة خرج الفولت مع Ton
نشاهد القانون التالي
و نحن نعرف أن دخل البك يساوي 5 فولت و بالتالي خرج أطرافه حالتين إما صفر أو 5 فولت . و من خلال مبدأ الـ PWM استطيع أن اجعل الخرج يبدأ من صفر حتى 5 فولت . كيف ذلك ؟ نأخذ مثال لتوضيح ذلك
لو أردت أن اجعل خرج البك عن طريق الـ PWM يساوي 2.5 فولت كيف ذلك ؟ نشاهد التالي
من خلال القوانين السابقة نستطيع جعل الخرج 2.5 فولت عن طريق التحكم بالـ Duty Cycle و لا تنسى أن الـ Duty Cycle عبارة عن نسبة مئوية يعني لو كان الـ Duty Cycle يساوي 50 % فإن نصف الخمسة فولت سوف تصبح 2.5 فولت و كلما زاد الـ Duty Cycle زادت قيمة الخرج فالعلاقة بين Vout و الـ Duty Cycle علاقة طردية .
شاهد العلاقة التالية
Vout = 0.5*5 = 2.5V
و بالطريقة هذه استطيع التحكم بالخرج .
الآن نرجع للسؤال ما هي الفائدة من الـ PWM ؟ باختصار لو كان هناك DC motor مشبوك بطرف البك الذي يولد لي الـ PWM لاستطعت التحكم بسرعته من خلال تغيير Duty Cycle الذي بدوره يغير الخرج و كلما زاد الخرج زادت سرعة الـ DC motor . ارجو أنك عرفت ما هي الفائدة من هذا النوع و للمعلومية هناك فوائد أخرى تستطيع أن توظف هذه الميزة من خلال ما تريد عمله من مشاريع .
الأكثر إثارة في التالي
هناك أنواع كثيرة من البك تدعم هذه الخاصية نأخذ مثال و هو البك رقم 16f877 و لاحظ أن هذا البك يحتوي على رجلين تولد لي هذه الخاصية نشاهد التالي
لاحظ كلمة CCP أي هذه الرجل هي التي سوف تولد لي الـ PWM و هذا البك يمتلك رجلين لتوليد الـ PWM فهي تعتبر ميزة إذاً في البك 16f877 الرجل 16 و 17 هي المسؤولة عن هذا .
الآن نأتي لأهم نقطة في هذا الموضوع و هي لغة البرمجة الميكروسي و هي التي من خلالها نتحكم بالـ duty cycle و كيف نفعل خاصية الـ PWM في الرجلين 16 و 17 .
اللغة المستخدمة
MikroC Pro 3.8
الأوامر الضرورية
هذا الأمر هو المسؤول عن تهيئة أمر توليد الـ PWM فإذا لم تضع هذا الأمر البك سوف يعتبر الـرجلين 16 و 17 كمنفذ فقط يدخل أو يخرج فولت .
صيغة الأمر
5000 تردد الموجة و تستطيع تغييره على حسب ما تريد
و اللون الأخضر هي الصيغة التي يجب أن تكتبها في الكود و رقم واحد PWM1 أي فعل الـ CCP1 في البك أي استخدم الرجل 16 . في البك 16f877 هناك رجلين لخاصية الـ PWM فإذا أردت الرجل 16 استخدم PWM1 و إذا أردت الرجل 17 استتخدم PWM2 و هكذا.
PWM1_Set_Duty
و هو المسؤول عن تغيير الـ Duty Cycle
و صيغته كالتالي
الصيغة باللون الأخضر و الرقم 192 لجعل الـ Duty Cycle
75 % هذا الرقم (192) من 0 إلى 255 حيث 0 يمثل 0 % و 255 تمثل 100%
و من خلال العلاقة التالية نعرف كيف نحسب هذا الرقم
PWM1_Start
و هو لعملية بدأ توليد الـ PWM
صيغة الأمر
PWM1_Stop
و هو لعملية وقف توليد الـ PWM
صيغة الأمر
أخيرا مشاهدة المحاكاة ببرنامج البروتيس
النتيجة
و أخيرا هذا هو الكود
ملاحظة
Proteus 7.6 PS0 يوجد فيه مشكلة في الـ PWM فلا تستغرب أن لا يشتغل معك الكود استخدم Proteus 7.7
ارجو أنكم استفدتم من هذا الدرس و ارجو أنه حاز على الرضى .
و قبل الختام
هذه مفاهيم أساسية يجب أن تعرفها
Duty Cycle
و هي نسبة الـ Ton لـ Ttotal
The PWM resolution
أقصى عدد نبضات في الفترة
The PWM period
شاهد الصورة التالية
frequency of PWM
f = 1/T
حيث الـ T هي الفترة أو period
حقوق النسخ محفوظ لكل مسلم
يجوز نشره و توزيعه و طباعته بأي وسيلة و لا يحق نشره بطريقة تجارية أو نسب هذا العمل لغير كاتبه
تحياتي للجميع
Eng_Bandar