در این آموزش نحوه تولید سیگنال های ESP8266 PWM با استفاده از Arduino IDE را راه اندازی میکنیم. به عنوان مثال، با تغییر مقدار duty cycle در طول زمان، میزان نور LED را کنترل می کنیم.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

برای نسخه های برد ESP8266 قبل از نسخه 3.0، محدوده پیش فرض بین 0 تا 1023 است. محدوده PWM ممکن است با فراخوانی analogWriteRange (new_range) تغییر کند.

قبل از ادامه این آموزش، باید بردهای ESP8266 را در Arduino IDE خود نصب کنید. میتوانید این آموزش را برای نصب ESP8266 در Arduino IDE مطالعه کنید.

GPIO های ESP8266 را می توان برای خروجی دیجیتال 0 ولت یا 3.3 ولت تنظیم کرد، اما نمی توانند هیچ ولتاژی در این بین تولید کنند. با این حال، می‌توانید ولتاژهای سطح میانی را «بصورت تغییر سطح دائمی» را با استفاده از مدولاسیون عرض پالس (PWM) تولید کنید، به این ترتیب سطوح مختلفی از روشنایی LED را با تغییر ولتاژ میتوانید تولید کنید.

بصورت ساده نحوه کارکرد pwm به این صورت است که اگر با سرعت بالا ولتاژ LED را بین HIGH و LOW تغییر دهید، چشمان شما نمی توانند سرعت روشن و خاموش شدن LED را دنبال کنند. و در این حالت بصورت میانگین مقدار ولتاژهای متفاوتی را تولید خواهید کرد.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

اساساً نحوه عملکرد PWM به این صورت است : تولید خروجی که بین HIGH و LOW با فرکانس بسیار بالا تغییر می کند.

چرخه وظیفه (duty cycle) قسمتی از زمانی است که در آن LED روی مقدار HIGH تنظیم می شود. شکل زیر نحوه عملکرد PWM را نشان می دهد.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

چرخه کاری یا دیوتی سایکل 50 درصد باعث روشنایی LED به میزان 50 درصد می شود، چرخه کاری 0 به معنای خاموش شدن کامل LED و چرخه کاری 100 به معنای روشن شدن کامل LED است. تغییر چرخه وظیفه یا دیوتی سایکل نحوه تولید سطوح مختلف ولتاژ که در این پروژه باعث تغییر نور ال ای دی است.

برای تولید یک سیگنال PWM روی یک پین معین از تابع زیر استفاده می کنید:

analogWrite(pin, value);

مقدار pin میتواند بین 0 تا 16 باشد و مقدار value باید در محدوده 0 تا PWMRANGE باشد که به طور پیش فرض 255 است. وقتی مقدار 0 باشد، مقدار دیوتی سایکل PWM در آن پین 0% می شود و مقدار 255 مربوط به دیوتی سایکل 100٪ است.

می توانید محدوده تغییر PWM را با تابع زیر تغییر دهید:

analogWriteRange(new_range);

به طور پیش فرض، فرکانس PWM ESP8266 مقدار 1 کیلوهرتز است. می توانید فرکانس PWM را با تابع زیر تغییر دهید:

analogWriteFreq(new_frequency);

مقادیر معتبر از 100 هرتز تا 40000 هرتز است.

در این پروژه نحوه تغییر نور یک ال ای دی توسط مدولاسیون عرض پالس یا pwm با هسته esp8266 را با هم بررسی میکنیم تا نحوه کار این واحد را در میکروکنترلر مشاهده نماییم.

قطعات مورد نیاز این پروژه:

  • برد esp8266 node mcu
  • LED
  • مقاومت 330 اهم 
  • بردبورد
  • سیم های جامپر بردبوردی
  • اسیلکسوپ(اختیاری جهت مشاهده پالس خروجی)

در صورتی که از برد Esp-01 استفاده میکنید باید از یک پروگرمر مخصوص این ماژول (یا یک مبدل usb به سریال) نیز استفاده کنید .

همانطور که در دیاگرام شماتیک زیر نشان داده شده است، یک LED را به ESP8266 خود با سیم جامپر متصل کنید. ما LED را به GPIO 2 وصل می کنیم، اما می توانید از هر GPIO مناسب دیگری استفاده کنید.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

کد زیر را در آردوینو IDE کپی کنید :

const int ledPin = 2; 

void setup() {
  
}

void loop() {
  // increase the LED brightness
  for(int dutyCycle = 0; dutyCycle < 255; dutyCycle++){   
    // changing the LED brightness with PWM
    analogWrite(ledPin, dutyCycle);
    delay(1);
  }

  // decrease the LED brightness
  for(int dutyCycle = 255; dutyCycle > 0; dutyCycle--){
    // changing the LED brightness with PWM
    analogWrite(ledPin, dutyCycle);
    delay(1);
  }
}

در Arduino IDE خود، به منو Tools > Board بروید و مدل ESP8266 خود را انتخاب کنید (اگر از ESP-01 استفاده می کنید، «Generic ESP8266 Module» را انتخاب کنید).

به Tools > Port بروید و پورت COM که ESP8266 به آن متصل است را انتخاب کنید.

اگر از ESP-01 استفاده می کنید، برای آپلود کد به یک پروگرمر FTDI یا مبدل سریال نیاز دارید. در اینجا اتصالات مورد نیاز برای این مدل ماژول اورده شده است

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED
ESP-01FTDI Programmer
RXTX
TXRX
CH_PD3.3V
GPIO 0GND
VCC3.3V
GNDGND

پس از آپلود کد خود، LED متصل به GPIO 2 باید به مرور زمان روشنایی خود را کم و زیاد کند.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

می‌توانید GPIO 2 را به یک اسیلوسکوپ وصل کنید تا ببینید سیگنال PWM در طول زمان چگونه تغییر می‌کند.

راه اندازی ESP8266 PWM (خروجی آنالوگ)- تغییر نور LED

امیدواریم این راهنمای استفاده از ESP8266 PWM برای شما مفید بوده باشد. علاوه بر کنترل روشنایی LED، PWM همچنین می تواند برای کنترل سرعت موتور DC استفاده شود.

پروژه های دیگر ESP8266:

راه اندازی سنسور BME680 با استفاده از ESP8266 اندازه گیری گاز، فشار، رطوبت و دما به صورت ساده و وب سرور

راه اندازی سنسور DS18B20 با ESP8266 در حالت تکی ، چندتایی و وب سرور (اینترنت اشیا)

برای امتیاز به این نوشته کلیک کنید!
[کل: 3 میانگین: 3.7]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *