التحكم في تعديل عرض النبضة PWM باستخدام ESP32 مع الاردوينو IDE اكتب تعليقُا

ESP32 PWM with Arduino IDE

سنشرح لك في هذا المشروع كيفية إنشاء إشارات PWM باستخدام ESP32 مع الاردوينو IDE . على سبيل المثال ، سنبني دائرة بسيطة تخفت مؤشر LED باستخدام وحدة التحكم PWM LED في ESP32 . سنبين لك أيضًا كيف يمكنك الحصول على نفس إشارة PWM على GPIOs مختلفة في نفس الوقت .

نوصي أيضًا بإلقاء نظرة على الموارد التالية :

المنتجات الخاصة بالمشروع

لمتابعة هذا المشروع ، تحتاج إلى هذه الأجزاء :
  • لوحة ESP32 DOIT DEVKIT V1
  • 3 ليدات مقاس 5mm LED
  • 3 مقاومات 330 أو 220 أوم
  • لوحة تجارب صغيرة
  • عدد 10 اسلاك توصيل حسب ما هو مناسب للمشروع
Untitled2

حاكمة ESP32 LED PWM

يحتوي ESP32 على وحدة تحكم LED PWM مع 16 قناة مستقلة يمكن تهيئتها لتوليد إشارات PWM بخصائص مختلفة .

إليك الخطوات التي يجب اتباعها لتعتيم مصباح LED باستخدام PWM مع الاردوينو IDE :

  1.  أولاً ، تحتاج إلى اختيار قناة PWM . هناك 16 قناة من 0 إلى 15 .
  2.  ثم ، تحتاج إلى ضبط تردد إشارة PWM . بالنسبة لمصباح LED ، يكون تردد 5000 هرتز جيدًا للاستخدام .
  3.  تحتاج أيضًا إلى ضبط دقة دورة واجب الإشارة : لديك قرارات من 1 إلى 16 بت. سنستخدم دقة 8 بت ، مما يعني أنه يمكنك التحكم في سطوع LED باستخدام قيمة من 0 إلى 255 .
  4.  بعد ذلك ، تحتاج إلى تحديد GPIO أو GPIOs التي ستظهر عليها الإشارة . لذلك ستستخدم الوظيفة التالية :
1

هذه الوظيفة تقبل وسيطين . الأول هو GPIO الذي سينتج الإشارة ، والثاني هو القناة التي ستنشئ الإشارة .

5. أخيرًا ، للتحكم في سطوع LED باستخدام PWM ، يمكنك استخدام الوظيفة التالية :

2

تقبل هذه الوظيفة كحجة القناة التي تنشئ إشارة PWM ، ودورة التشغيل .

تعديل شدة أضاءة الليد ESP32 LED PWM

دعونا نرى مثالًا بسيطًا لمعرفة كيفية استخدام وحدة التحكم ESP32 LED PWM باستخدام الاردوينو IDE .

مخطط الدائرة ESP32 LED PWM

وصل سلك الصمام إلى ESP32 الخاص بك كما في الرسم التخطيطي التالي . يجب أن يكون الصمام متصلاً بـ GPIO 16 .

LED_PWM_Example

(يستخدم هذا المخطط إصدار وحدة ESP32 DEVKIT V1 مع 30 GPIOs – إذا كنت تستخدم طرازًا آخر ، فالرجاء التحقق من أطراف الوحة التي تستخدمها.)

ملاحظة : يمكنك استخدام أي دبوس تريد ، طالما أنه يمكن أن يكون بمثابة إخراج . جميع الاطراف التي يمكن أن تعمل كمخرجات يمكن استخدامها كدبابيس PWM .

الكود البرمجي ESP32 LED PWM

افتح ملف الاردوينو IDE الخاص بك وانسخ الكود التالي .

// the number of the LED pin
const int ledPin = 16;  // 16 corresponds to GPIO16

// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;
 
void setup(){
  // configure LED PWM functionalitites
  ledcSetup(ledChannel, freq, resolution);
  
  // attach the channel to the GPIO to be controlled
  ledcAttachPin(ledPin, ledChannel);
}
 
void loop(){
  // increase the LED brightness
  for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
    // changing the LED brightness with PWM
    ledcWrite(ledChannel, dutyCycle);
    delay(15);
  }

  // decrease the LED brightness
  for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
    // changing the LED brightness with PWM
    ledcWrite(ledChannel, dutyCycle);   
    delay(15);
  }
}

أنتهت !!!

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *