কোড অনুসন্ধান

ESP32 টিউটোরিয়াল ৬/৫৫ - RGB LED ব্যবহার করা প্রজেক্ট ২.৩ - SunFounder-এর ESP32 IoT লার্নিং কিট

ESP32 টিউটোরিয়াল ৬/৫৫ - RGB LED ব্যবহার করা প্রজেক্ট ২.৩ - SunFounder-এর ESP32 IoT লার্নিং কিট

এই টিউটোরিয়ালে, আমরা শিখব কীভাবে ESP32 মাইক্রোকন্ট্রোলার ব্যবহার করে একটি RGB LED নিয়ন্ত্রণ করতে হয়। এই প্রজেক্টটি আপনাকে RGB LED সংযোগ করতে এবং PWM (পালস উইডথ মডুলেশন) সিগন্যাল ব্যবহার করে এর রং নিয়ন্ত্রণ করতে সাহায্য করবে। এই টিউটোরিয়ালের শেষে, আপনি প্রতিটি LED উপাদানের তীব্রতা সামঞ্জস্য করে যেকোনো রঙের সংমিশ্রণ তৈরি করতে সক্ষম হবেন। এটি দৃশ্যত আকর্ষণীয় প্রজেক্ট তৈরির জন্য একটি মৌলিক দক্ষতা।

RGB LED এবং এর রঙ মিশ্রণের ক্ষমতা সম্পর্কে আরও ভালোভাবে বোঝার জন্য, আমরা ESP32 দিয়ে এটি নিয়ন্ত্রণের জন্য প্রয়োজনীয় ওয়্যারিং এবং কোড অন্বেষণ করব। যদি আপনার ভিজ্যুয়াল সহায়তার প্রয়োজন হয়, তাহলে ওয়্যারিং এবং কোড সেটআপের স্পষ্ট ব্যাখ্যার জন্য ভিডিওটি (ভিডিওতে 03:20 এ) দেখতে ভুলবেন না।

হার্ডওয়্যার ব্যাখ্যা

এই প্রজেক্টের প্রধান উপাদানগুলির মধ্যে রয়েছে ESP32 মডিউল, RGB LED এবং রেজিস্টর। ESP32 একটি শক্তিশালী মাইক্রোকন্ট্রোলার যাতে বিল্ট-ইন Wi-Fi এবং ব্লুটুথ রয়েছে, যা এটিকে IoT অ্যাপ্লিকেশনের জন্য আদর্শ করে তোলে। RGB LED-তে তিনটি পৃথক LED (লাল, সবুজ এবং নীল) একটি একক প্যাকেজের মধ্যে থাকে, যা তিনটি রঙের সংমিশ্রণের উপর ভিত্তি করে বিস্তৃত রঙের অনুমতি দেয়।

আমাদের সেটআপে, RGB LED একটি সাধারণ অ্যানোড কনফিগারেশনে সংযুক্ত থাকবে, যেখানে অ্যানোড পিনটি একটি পজিটিভ ভোল্টেজের সাথে সংযুক্ত থাকে এবং প্রতিটি রঙের ক্যাথোড পিন স্বাধীনভাবে নিয়ন্ত্রিত হয়। এইভাবে, আমরা ESP32 এর মাধ্যমে PWM সিগন্যাল পাঠিয়ে প্রতিটি রঙের উজ্জ্বলতা সামঞ্জস্য করতে পারি।

ডেটাশিট বিবরণ

প্রস্তুতকারকSunFounder
পার্ট নম্বরRGB-LED-4PIN
সাধারণ প্রকারসাধারণ অ্যানোড
ফরোয়ার্ড ভোল্টেজ (প্রতি LED)2.0 V (লাল), 3.2 V (সবুজ), 3.2 V (নীল)
সর্বোচ্চ কারেন্ট (প্রতি LED)20 mA
অপারেটিং তাপমাত্রা-25 থেকে 85 °C
প্যাকেজ4-পিন থ্রু-হোল

  • কারেন্ট সীমিত করতে এবং ক্ষতি রোধ করতে প্রতিটি রঙের জন্য একটি 220 Ω রেজিস্টর ব্যবহার করুন।
  • সাধারণ পিনটি উপযুক্ত ভোল্টেজের সাথে সংযুক্ত আছে তা নিশ্চিত করুন (ESP32 এর জন্য 3.3 V)।
  • রিভার্স ক্ষতি এড়াতে RGB LED সংযোগ করার সময় পোলারিটি ডাবল-চেক করুন।
  • উজ্জ্বলতার মাত্রা নিয়ন্ত্রণ করতে PWM ব্যবহার করুন, প্রায় 5000 Hz ফ্রিকোয়েন্সি সুপারিশ করা হয়।
  • সম্পূর্ণ সেটআপ ওয়্যারিং করার আগে প্রতিটি রঙ পৃথকভাবে পরীক্ষা করুন।

ওয়্যারিং নির্দেশাবলী

RGB LED কে ESP32 এর সাথে সংযোগ করতে, প্রথমে RGB LED এর পিনগুলি চিহ্নিত করুন। সবচেয়ে লম্বা পিনটি হল সাধারণ অ্যানোড, যা ESP32 এর 3.3 V সাপ্লাইয়ের সাথে সংযুক্ত হবে। অন্য তিনটি পিন লাল, সবুজ এবং নীলের জন্য। আমাদের সেটআপে, লাল পিনটি GPIO 27, সবুজ পিনটি GPIO 26 এবং নীল পিনটি GPIO 25 এর সাথে সংযুক্ত করুন। এই প্রতিটি পিনের সাথে একটি 220 Ω রেজিস্টরও সংযুক্ত থাকবে।

ব্রেডবোর্ডে RGB LED রাখার মাধ্যমে শুরু করুন, নিশ্চিত করুন যে সাধারণ অ্যানোড পিনটি বাম দিকে রয়েছে। লাল পিনটি ব্রেডবোর্ডে ঢোকান এবং এটি রেজিস্টরের এক প্রান্তে সংযুক্ত করুন, রেজিস্টরের অন্য প্রান্তটি GPIO 27 এ যাবে। সবুজ এবং নীল পিনের জন্য এটি পুনরাবৃত্তি করুন, সবুজ পিনটি GPIO 26 এবং নীল পিনটি GPIO 25 এর সাথে সংযুক্ত করুন। অবশেষে, সার্কিট সম্পূর্ণ করতে সাধারণ পিনটি ESP32 এর 3.3 V পিনের সাথে সংযুক্ত করুন। ESP32 এর গ্রাউন্ডটি ব্রেডবোর্ডের সাথেও সংযুক্ত করতে ভুলবেন না।

ESP32_RGB_LED_wiring_lesson_06

কোড উদাহরণ ও ওয়াকথ্রু

কোডে, আমরা ধ্রুবক ব্যবহার করে RGB LED পিনগুলি সংজ্ঞায়িত করে শুরু করি। উদাহরণস্বরূপ, const int redPin = 27; লাল LED এর জন্য GPIO পিন সংজ্ঞায়িত করে। আমরা PWM ফ্রিকোয়েন্সি এবং রেজোলিউশনও সেট করি const int freq = 5000; এবং const int resolution = 8; দিয়ে। এটি প্রতিটি LED রঙের উজ্জ্বলতা নিয়ন্ত্রণের জন্য প্রয়োজনীয় প্যারামিটার সেট করে।

const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

এরপর, আমরা setup() ফাংশনে প্রতিটি রঙের জন্য PWM চ্যানেল কনফিগার করি। ledcAttach() ফাংশন প্রতিটি পিনকে সংশ্লিষ্ট PWM চ্যানেলের সাথে লিঙ্ক করে। এই সেটআপ নিশ্চিত করে যে আমরা প্রতিটি রঙের উজ্জ্বলতা স্বাধীনভাবে নিয়ন্ত্রণ করতে পারি।

void setup() {
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

loop() ফাংশনে, আমরা LED রং পরিবর্তন করতে setColor() ফাংশন ব্যবহার করি। এই ফাংশনে পাস করা মানগুলি লাল, সবুজ এবং নীলের তীব্রতা উপস্থাপন করে। উদাহরণস্বরূপ, setColor(255, 0, 0); কল করলে LED লাল হয়ে যায়। প্রতিটি রঙ পরিবর্তনের পরে, আমরা পরবর্তী রঙে স্যুইচ করার আগে এক সেকেন্ড অপেক্ষা করতে delay(1000); ব্যবহার করি।

void loop() {
  setColor(255, 0, 0); // লাল
  delay(1000);
  setColor(0, 255, 0); // সবুজ
  delay(1000);
}

প্রদর্শন / কী আশা করবেন

ওয়্যারিং সম্পূর্ণ করে এবং কোডটি ESP32 এ আপলোড করার পরে, আপনার RGB LED বিভিন্ন রঙের মধ্যে ঘুরতে দেখা উচিত: লাল, সবুজ, নীল, হলুদ, বেগুনি এবং সায়ান। যদি LED সঠিকভাবে আলো না জ্বালায়, তাহলে আপনার ওয়্যারিং ডাবল-চেক করুন এবং নিশ্চিত করুন যে সাধারণ অ্যানোডটি 3.3 V এর সাথে সংযুক্ত আছে। অতিরিক্তভাবে, যদি আপনি অপ্রত্যাশিত রং লক্ষ্য করেন, তাহলে LED পিনগুলির সাথে রেজিস্টর সংযোগ যাচাই করুন।

ভিডিওতে (ভিডিওতে 10:45 এ) প্রদর্শিত হিসাবে, setColor() ফাংশনে মানগুলি সামঞ্জস্য করলে আপনি বিভিন্ন রং তৈরি করতে পারবেন। RGB LED কীভাবে সাড়া দেয় তা দেখতে বিভিন্ন সংমিশ্রণ নিয়ে পরীক্ষা করুন।

ভিডিও টাইমস্ট্যাম্প

  • 00:00 - আরজিবি এলইডি-র পরিচিতি
  • 03:20 - ওয়্যারিং ব্যাখ্যা
  • 10:45 - কোড বিশ্লেষণ
  • 12:30 - রঙ মেশানোর প্রদর্শন

ছবি

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_RGB_LED_wiring_lesson_06
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32
ভাষা: C++
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;

void setup() {
  // Set up PWM pins
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

void loop() {
  setColor(255, 0, 0); // Red
  delay(1000);
  setColor(0, 255, 0); // Green
  delay(1000);
  setColor(0, 0, 255); // Blue
  delay(1000);
  setColor(255, 255, 0); // Yellow
  delay(1000);
  setColor(80, 0, 80); // Purple
  delay(1000);
  setColor(0, 255, 255); // Cyan
  delay(1000);
}

void setColor(int red, int green, int blue) {
  ledcWrite(redPin, red);
  ledcWrite(greenPin, green);
  ledcWrite(bluePin, blue);
}

সম্পদ ও রেফারেন্সসমূহ

ফাইলসমূহ📁

কোনো ফাইল উপলব্ধ নেই।