PWM কী? আর Arduino দিয়ে LED কিভাবে ধীরে ধীরে জ্বলে ওঠে?
সূচনা
আপনি কি কখনো লক্ষ্য করেছেন কীভাবে কিছু আলো ধীরে ধীরে জ্বলে উঠে বা ধীরে ধীরে নিভে যায়? সেটি কিভাবে সম্ভব হয়? এখানে আমরা খুব সহজভাবে দেখাব কীভাবে আপনি Arduino দিয়ে একটি LED-কে এমনভাবে জ্বালাতে পারেন যেন সেটি ধীরে ধীরে উজ্জ্বল হয় এবং আবার ধীরে ধীরে নিভে যায়।
এই কাজটি করতে আমরা ব্যবহার করব একটি পটেনশিওমিটার (একধরনের ভলিউম কন্ট্রোলার) এবং একটি LED। আর সাথে থাকবে আমাদের জনপ্রিয় Arduino UNO বোর্ড।
যেসব জিনিস লাগবে:
উপকরণ | পরিমাণ |
---|---|
Arduino UNO | ১টি |
LED (লাল আলো) | ১টি |
220 ওহম রেজিস্টার | ১টি |
পটেনশিওমিটার (10kΩ) | ১টি |
জাম্পার তার | কয়েকটি |
ব্রেডবোর্ড (ঐচ্ছিক) | ১টি |
সংযোগ কিভাবে করবেন (আসুন সহজভাবে বুঝি)
চিত্রে যেমন দেখানো হয়েছে:
1. পটেনশিওমিটার:
- একটি পিন যাবে VCC (5V) এ
- একটি পিন যাবে GND (গ্রাউন্ড) এ
- মাঝের পিন যাবে Arduino-এর A0 পিনে
- LED-এর লম্বা পা (পজিটিভ) যাবে Arduino-এর পিন 10 এ
- ছোট পা (নেগেটিভ) যাবে গ্রাউন্ডে, একটি মিনিমাম 220Ω রেজিস্টর দিয়ে (যদিও এখানে দেখানো হয় নাই মাস্ট ইউজ ফর ফিজিক্যাক কানেকশন)
পেছনের সহজ যুক্তি
আমরা পটেনশিওমিটার ঘোরালে Arduino বোঝে আপনি কত আলো চাইছেন। Arduino এই তথ্য ব্যবহার করে PWM নামের একটি কৌশল দিয়ে LED-এ সেই পরিমাণ আলো পাঠায়।
কোড (ভয় পাবেন না, এটা খুব সহজ!)
int potPin = A0; // পটেনশিওমিটার সংযুক্ত পিনint ledPin = 9; // LED সংযুক্ত পিন (PWM সমর্থিত) void setup() { pinMode(ledPin, OUTPUT); // LED পিনকে আউটপুট হিসেবে ঘোষণা }void loop() { int value = analogRead(potPin); // পটেনশিওমিটার থেকে মান পড়া int brightness = map(value, 0, 1023, 0, 255); // মানকে 0-255 এ রূপান্তর analogWrite(ledPin, brightness); // LED-তে আলো পাঠানো delay(10); // একটু বিরতি }
বাস্তবে কী হবে?
যখন আপনি পটেনশিওমিটার ঘোরাবেন, LED ধীরে ধীরে উজ্জ্বল বা ম্লান হবে। একদম যেন আপনি একটি ফ্যানের স্পিড কন্ট্রোল করছেন!
উপসংহার
এই প্রজেক্টটি খুবই সহজ এবং যেকোনো শিক্ষার্থী বা হবি-লাভার এটি ঘরে বসে করতে পারবেন। এতে আপনি শিখতে পারবেন:
- কীভাবে ইনপুট (পটেনশিওমিটার) কাজ করে
- কীভাবে আউটপুট (LED) PWM দিয়ে নিয়ন্ত্রিত হয়
- Arduino প্রোগ্রামিং-এর প্রাথমিক ধারণা
No comments:
Post a Comment