در این آموزش، یاد خواهیم گرفت که چگونه یک LED RGB را با استفاده از میکروکنترلر ESP32 کنترل کنیم. این پروژه به شما کمک میکند تا نحوه اتصال LED RGB و کنترل رنگهای آن را با استفاده از سیگنالهای PWM (مدولاسیون عرض پالس) درک کنید. در انتهای این آموزش، قادر خواهید بود هر ترکیب رنگی را با تنظیم شدت هر مؤلفه LED ایجاد کنید. این یک مهارت اساسی برای ایجاد پروژههای بصری جذاب است.
برای درک بهتر LED RGB و قابلیتهای مخلوط کردن رنگ آن، ما به بررسی سیمکشی و شِفر (کود) مورد نیاز برای کنترل آن با ESP32 خواهیم پرداخت. اگر به کمک بصری نیاز دارید، حتماً ویدئو را در (در ویدئو در 03:20) برای توضیح واضحتری از راهاندازی سیمکشی و شِفر (کود) مشاهده کنید.
توضیح سختافزار
اجزای اصلی این پروژه شامل ماجیول ESP32، LED RGB و مقاومتها است. ESP32 یک میکروکنترلر قدرتمند است که دارای Wi-Fi و Bluetooth داخلی بوده و آن را برای کاربردهای اینترنت اشیا ایدهآل میسازد. LED RGB متشکل از سه LED جداگانه (قرمز، سبز و آبی) است که در یک بسته واحد قرار دارند و این امکان را میدهند که بر اساس ترکیب این سه رنگ، دامنه وسیعی از رنگها ایجاد شود.
در تنظیمات ما، LED RGB به صورت یک پیکربندی آند مشترک متصل خواهد شد، جایی که پایه آند به یک ولتاژ مثبت متصل است و پایه کاتد هر رنگ به طور مستقل کنترل میشود. به این ترتیب، میتوانیم با ارسال سیگنالهای PWM از طریق ESP32، روشنایی هر رنگ را تنظیم کنیم.
جزئیات ورقه داده
سازنده
سانفاندر
شماره قطعه
RGB-LED-4PIN
نوع رایج
آند مشترک
ولتاژ پیشرو (به ازای هر LED)
۲.۰ ولت (قرمز)، ۳.۲ ولت (سبز)، ۳.۲ ولت (آبی)
حداکثر جریان (برای cada LED)
20 میلیآمپر
دمای عملکرد
-25 تا 85 درجه سانتیگراد
بسته
۴ پایه سوراخدار
برای هر رنگ از یک مقاوم ۲۲۰ Ω استفاده کنید تا جریان را محدود کرده و از آسیب جلوگیری کنید.
مطمئن شوید که پایه مشترک به ولتاژ مناسب متصل است (3.3 ولت برای ESP32).
در هنگام اتصال LED RGB، جهت قطبی را دوباره بررسی کنید تا از آسیب معکوس جلوگیری شود.
از PWM برای کنترل سطوح روشنایی استفاده کنید، با فرکانسی حدود 5000 هرتز توصیه شده است.
هر رنگ را بهطور جداگانه امتحان کنید قبل از اینکه کل سیستم را سیمکشی کنید.
دستورالعملهای سیمکشی
برای وصل کردن LED RGB به ESP32، با شناسایی پایهها روی LED RGB شروع کنید. طولانیترین پایه، آند مشترک است که باید به منبع 3.3 ولت روی ESP32 متصل شود. سه پایه دیگر برای قرمز، سبز و آبی هستند. در تنظیمات ما، پایه قرمز را به GPIO وصل کنید.27پایه سبز به GPIO26و پایه آبی به GPIO25هر یک از این پایهها همچنین یک مقاومت ۲۲۰ اهمی به آنها متصل خواهد بود.
ابتدا RGB LED را بر روی بُرد نان قرار دهید و اطمینان حاصل کنید که پایه آند مشترک در سمت چپ است. پایه قرمز را در بُرد نان وارد کرده و آن را به یکی از انتهای مقاومت وصل کنید، به طوری که انتهای دیگر مقاومت به GPIO متصل شود.27این کار را برای پایههای سبز و آبی تکرار کنید و پایه سبز را به GPIO متصل کنید.26و پایه آبی به GPIO25در نهایت، پایه مشترک را به پایه ۳.۳ ولت روی ESP32 متصل کنید تا مدار کامل شود. همچنین مطمئن شوید که زمین ESP32 را به برد بورد متصل کنید.
ESP32_RGB_LED_wiring_lesson_06
نمونههای شِفر (کود) و راهنمایی
در شِفر (کود)، ابتدا با استفاده از ثابتها پایههای LED RGB را تعریف میکنیم. به عنوان مثال،const int redPin = 27;پایه GPIO برای LED قرمز را تعریف میکند. ما همچنین فرکانس و وضوح PWM را تنظیم میکنیم باconst int freq = 5000;وconst int resolution = 8;این پارامترهای لازم برای کنترل روشنایی هر رنگ LED را تنظیم میکند.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
بعد، ما کانالهای PWM را برای هر رنگ پیکربندی میکنیم درsetup()توابع. ledcAttach()عملکرد هر پایه را به کانال PWM مربوطه متصل میکند. این تنظیمات اطمینان میدهد که میتوانیم روشنایی هر رنگ را بهطور مستقل کنترل کنیم.
در loop()عملکرد، ما از آن استفاده میکنیمsetColor()تابعی برای تغییر رنگهای LED. مقادیر ارسال شده به این تابع نمایانگر شدت رنگهای قرمز، سبز و آبی هستند. به عنوان مثال، فراخوانیsetColor(255, 0, 0);چراغ LED را به رنگ قرمز تنظیم میکند. پس از هر تغییر رنگ، ما ازdelay(1000);یک ثانیه صبر کنید قبل از اینکه به رنگ بعدی تغییر دهید.
void loop() {
setColor(255, 0, 0); // Red
delay(1000);
setColor(0, 255, 0); // Green
delay(1000);
}
نمایش / چه انتظاری باید داشت
پس از تکمیل سیمکشی و بارگذاری شِفر (کود) بر روی ESP32، باید چراغ LED RGB را در حال چرخهزنی از رنگهای مختلف ببینید: قرمز، سبز، آبی، زرد، بنفش و فیروزهای. اگر LED به درستی روشن نشود، سیمکشی خود را دوباره بررسی کنید و اطمینان حاصل کنید که آند مشترک به ۳.۳ ولت متصل است. علاوه بر این، اگر هر رنگ غیرمنتظرهای را مشاهده کردید، اتصالات مقاومت به پایههای LED را بررسی کنید.
همانطور که در ویدیو نشان داده شده است (در ویدیو در ساعت ۱۰:۴۵)، تنظیم مقادیر درsetColor()این تابع به شما این امکان را میدهد که رنگهای مختلفی ایجاد کنید. با ترکیبهای مختلف آزمایش کنید تا ببینید LED RGB چگونه پاسخ میدهد.
زمانبندی ویدئوها
۰۰:۰۰مقدمهای بر LED RGB
۰۳:۲۰توضیحاتی درباره سیمکشی
۱۰:۴۵- مرور شِفر (کود)
۱۲:۳۰- نمایش ترکیب رنگها
تصاویر
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32