مــا نحــنُ إلا طُـــلاب عــلمِ نسعـــى لنشـــر الرحمـــة مــن خــلال العــلـــم ----- مطلوب مدرس - مدرب لديه خبره في الإلكترونيات التفاعلية و الأردوينو، راسلنا على رسائل الموقع
image

تعديل عرض النبضــة

الـ Pulse Width Modulation أو الـ PWM هي طريقـة للتحكم في عرض النبضــة في Train أو سلسلـة نبضات، أي أنهـا طريقـة للتحك في الفترة الزمنيـة التي تكـون فيهـا الإشارة HIGH و الفترة التي تكـون فيهـا الإشارة LOW. الـ PWM تستخدم في العديد من التطبيقـات مثل التحكم في محركـات السيرفو و دوائر التحكم في السرعـة للمحركـات و تحديد القدرة الفعالة للمحركـات.

مبدأ عمل الـ PWM

الـ PWM في الأساس عبارة عن موجـة مربعـة Square wave يتغير فيهـا الأزمنة التي تكون فيهـا الإشارة LOW و HIGH, الشكل التالي يوضح إشارة الـ PWM

بعض المصطلحات المتعلقـة بالـ PWM

  • زمن التشغيل On time هي الفترة الزمنية التي تكون فيها الإشارة HIGH
  • زمن التوقف Off time هي الفترة الزمنية التي تكون فيها الإشارة LOW
  • الفترة Period عبارة عن مجموع زمن التشغيل و زمن الإيقاف
  • الدورة Duty Cycle هي عبارة عن النسبة المئوية للفترة التي تكون فيها الإشارة HIGH بالنسبة للزمن الكلي أو الفترة Period

الفترة Period

كما هو موضح بالشكل السابق، الـTon  يمثل الزمن الذي تكون فيه الإشارة HIGH و الـ Toff يمثل الزمن الذي تكون فيه الإشارة LOW. الفترة الزمنية Period عبارة عن مجموع الأزمنة التي تكون فيها الإشارة HIGH و LOW و يتم التعبير عنها رياضياً كالتالـي:

Period = Sum Ton + sum Toff

 

دورة العمل Duty Cycle

دورة العمل عبارة عن النسبة المئوية لزمن التشغيل من الزمن الكلي، ويتم التعبير عنها رياضياً كالتالي:

Duty Cycle = Ton / Period = Ton / (Ton + Toff)

 

الدالـة analogWrite()

تستخدم الدالـة analogWrite() لكتابـة قيمة تماثلية على أحد أرجل الأردوينـو التي تدعم الـPWM. يمكن إستخدام هذه الدالة لتشغيل المحركات بسرعات مختلفة أو تشغيل الـLED  بسطوع مختلف. بعد إستدعاء دالة analogWrite() ستقوم الرجل الخاصة بالأردوينـو بإنتاج موجة مربعـة ثابتـة لدورة العمل المحددة حتى الإستدعاء التالي لدالة analogWrite() أو  دالة digitalRead() أو digitalWrite() على نفس الرجل. يبلغ تردد إشارة PWM على معظم الأرجل حوالي 490 هرتز. في لوحات Uno واللوحات المشابهة، يبلغ تردد الأطراف 5 و6 حوالي 980 هرتز. تعمل الأرجل رقم  3 و 11 الموجودة في أردوينو ليوناردو أيضًا بسرعة 980 هرتز.

في معظم لوحات أردوينو (التي تحتوي على ATmega168 أو ATmega328)، تعمل هذه الوظيفة على الأرجل  3 و5 و6 و9 و10 و11. وفي Arduino Mega، تعمل على الأرجل  2 - 13 و44 - 46. اللوحات التي تحتوي على ATmega8 تدعم فقط AnalogWrite() على الأرجل 9 و10 و11.

يدعم Arduino Due دالة  AnalogWrite() على الأرجل  من 2 إلى 13، وعلى الأرجل DAC0 وDAC1. على عكس أطراف PWM، فإن DAC0 وDAC1 عبارة عن محولات رقمية إلى تناظرية، وتعمل كمخرجات تناظرية حقيقية.

لا تحتاج إلى استدعاء pinMode() لتعيين الرجل كمخرج قبل استدعاء AnalogWrite().

تركيب دالة analogWrite()

analogWrite ( pin , value ) ;

 

القيمة - دورة العمل: بين 0 (إيقاف دائمًا) و255 (تشغيل دائمًا).

مثــال

int ledPin = 9; // LED connected to digital pin 9
int analogPin = 3; // potentiometer connected to analog pin 3
int val = 0; // variable to store the read value
 
void setup() {
   pinMode(ledPin, OUTPUT); // sets the pin as output
}
 
void loop() {
   val = analogRead(analogPin); // read the input pin
   analogWrite(ledPin, (val / 4)); // analogRead values go from 0 to 1023, 
      // analogWrite values from 0 to 255
}

المخترع المجنـون

مدون و كاتب محتوى تكنولوجي و متخصص في علوم الإلكترونيات

التعليقات

سجل الدخول لتترك تعليق

نقوم بالتبرع بـ 5 % من قيمـة المنتجات للأعمال الخيرية

تـواصـل معنـا

الطائــف - المملكــة العربيــة السعــوديـة

المـوقـع مـوثـق من

المختــرع المجنــون © جميـــع الحقــوق محفوظــة