تعديل عرض النبضة (PWM) هو مُصطلح يستخدم للتعبير عن نوع من الإشارات الرقمية. يُستخدم تعديل عرض النبضة في العديد من التطبيقات بما في ذلك دوائر التحكم المُتقدمة (sophisticated control circuitry). ومن الطرق الشائعة لاستخدام تعديل عرض النبضة التحكم في مستوى إضاءة ديودات RGB المضيئة أو التحكم في اتجاه مُحرك السيرفو (servo motor). من الممكن تحقيق مدى واسع من النتائج في كلا التطبيقين، لأن تعديل عرض النبضة يسمح لنا بتغيير كمية الوقت الذي تكون في الإشارة ذات قيمة مرتفعة (high). يُمكن أن تكون الإشارة خلال أي وقت على إحدى حالتين: إما مرتفعة high (5V غالباً) أو منخفضة low (أرضي (ground))، لكن باستخدام تعديل عرض النبضة يمكننا تغير النسبة المئوية للزمن الذي تكون فيه الإشارة مرتفعة خلال فترة زمنية مُحددة.
ذراع روبوت يتم التحكم به باستخدام محرك سيرفو اعتماداً على تعديل عرض النبضة.
مواضيع مُقترحة للقراءة
بعض الدروس الأساسية التي يجب الاطلاع عليها قبل هذا الدرس:
- الجهد (Voltage)، التيار (Current)، المقاومة (Resistance)، وقانون أوم (Ohm’s Law)
- الرقمي (Analog) والتناظري (Digital)
- مُجزئات الجهد (Voltage Dividers)
- المنطق الرقمي (Digital Logic)
دورة العمل (Duty Cycle)
يُطلق على الوقت الذي تكون قيمة الإشارة فيه مرتفعة اسم “وقت التشغيل (on time)”. للتعبير عن كمية “وقت التشغيل” نستخدم مُصطلح دورة العمل. ويُعبر عن دورة العمل بنسبة مئوية. تصف دورة العمل النسبة المئوية للزمن الذي تكون فيه قيمة الإشارة مرتفعة خلال دورة زمنية مُحددة. هذه الدورة الزمنية (أو الزمن الدوري) تساوي مقلوب تردد الشكل الموجي.
فإذا كانت قيمة الإشارة مرتفعة لنصف الوقت ومنخفضة للنصف الآخر، نقول أن دورة العمل لهذه الإشارة الرقمية تساوي 50%، ويمكن تمثيلها بموجة مربعة (square wave) مثالية. وإذا كانت قيمة دورة العمل أكبر من 50% فهذا يعني أن الإشارة الرقمية تكون ذات قيمة مُرتفعة لمدة أطول من كونها ذات قيمة منخفضة، والعكس صحيح في حالة كانت قيمة دورة العمل أقل من 50%. الرسوم البيانية التالية توضح هذه الحالات الثلاث:
أمثلة على دورة عمل بقيم 50%، 75%، 25% من أعلى إلى أسفل
عندما تبلغ قيمة دورة العمل 100% فهذا يعني أن قيمة الجهد ثابتة عند 5V (قيمة مرتفعة)، بينما عندما تكون قيمة دورة العمل 0% فهذا يعني أن الإشارة مُؤرضة.
أمثلة
يُمكنك التحكم في شدة إضاءة الديودات المضيئة عن طريق تعديل قيمة دورة العمل.
استخدام تعديل عرض النبضة للتحكم في شدة إضاءة الديودات المضيئة
إذا كان لدينا ديود مضيء RGB (يصدر الألوان: أحمر (red)، أخضر (green)، أزرق (blue)) يُمكننا التحكم في كمية كل لون من الألوان الثلاثة ضمن مزيج الألوان عن طريق إعتام كل منها بدرجات متفاوتة.
القواعد الأساسية لمزج الألوان الرئيسية
إذا كانت درجات جميع الألوان متساوية يكون الناتج ضوء أبيض ذا سطوع متفاوت. أما مزج الأزرق مع الأخضر بالتساوي يُعطي لون أزرق مائل للخضرة (teal). ولنأخذ مثالاً أكثر تعقيداً: جرب أن تجعل دورة العمل للأحمر 100% وللأخضر 50% وللأزرق 0%، وسيكون اللون الناتج هو اللون البرتقالي.
يُمكن استخدام تعديل عرض النبضة للتحكم في لون ديودات RGB
يجب أن يكون تردد الموجة المربعة كبيراً بدرجة كافية عند التحكم في الديودات المضيئة للحصول على شدة السطوع المناسبة. في حال كانت دورة العمل تساوي 20% والتردد 1Hz سيبدو لعينيك أن الديود الضوئي يضيء ويطفئ، بينما إذا كانت دورة العمل تساوي 20% والتردد 100Hz فسيبدو الديود الضوئي مضيء باستمرار لكن أعتم مما هو عليه عندما تكون دورة العمل 100%. كذلك من الضروري ألا يكون الزمني كبيراً إذا كنت تسعى إلى التحكم في شدة سطوع (درجة إعتام) الديودات الضوئية.
من الممكن كذلك استخدام تعديل عرض النبضة للتحكم في زاوية مُحرك سيرفو متصل بجسم ميكانيكي مثل ذراع الروبوت. حيث تحتوي مُحركات السيرفو على محور يُمكن جعله يدور إلى وضعية مُعينة باستخدام خط التحكم (control line) الخاص به. بعض مُحركات السيرفو يُمكن أن تدور في مدى يصل إلى 180 درجة.
تكون قيم التردد/الزمن الدوري مُحددة للتحكم في مُحرك سيرفو مُعين. بالنسبة لمُحرك السيرفو النموذجي يُتوقع أن يتم تحديثه كل 20ms باستخدام نبضة تتراوح بين 1ms و 2ms، أو -بطريقة أخرى- بقيمة دورة عمل تتراوح بين 5% إلى 10%مع موجة ذات تردد 50Hz. باستخدام نبضة 1.5ms يكون مُحرك السيرفو في موضعه الطبيعي عند 90 درجة، وباستخدام نبضة 1ms تكون وضعية مُحرك السيرفو عند زاوية 0، أما باستخدام نبضة 2ms يكون مُحرك السيرفو عند 180 درجة. ويُمكنك الحصول على مدى كامل من الحركة عن طريق تحديث المُحرك بقيم بين القيم السابقة.
استخدام تعديل عرض النبضة لجعل مُحرك السيرفو في وضعية 90 درجة.
المصادر والمُضي قدماً
يُستخدم تعديل عرض النبضة في الكثير من التطبيقات، وخاصة في تطبيقات التحكم. أنت تعرف الآن أنه يُمكن استخدامه للتحكم في شدة إضاءة الديودات المُضيئة أو للتحكم في زاوية محرك السيرفو، والآن يُمكنك البدء في استكشاف المزيد من الاستخدامات المُمكنة لتعديل عرض النبضة. وإذا كنت مُستعداً للخوض في كتابة الأكواد ولديك بطاقة أردوينو بالفعل فاطلع على هذا المثال الخاص بكتابة أكواد PWM.
كما يمكنك أيضاً الاطلاع على الدروس التالية:
- المُحركات واختيار المحرك الأمثل (قريباً)
- ما هو الأردوينو؟
- التحويل من التناظري إلى الرقمي
- الديودات الضوئية (LEDs)
- الاتصال بالأشعة تحت الحمراء (IR Communication) (قريباً)
تمّت ترجمة هذه المادّة من موقع sparkfun تحت تصريح كرييتف كومّونز 3 (Creative Commons 3.0)
بارك الله فيك وجزاك عنا كل خير
Thanks a lot
شكرا جزيلا على المقال الرائع … مع أني لم افهم كل شيئ