Arduino হল এমন একটি ওপেন-সোর্স মাইক্রোকন্ট্রোলার বোর্ড যা বিভিন্ন ইলেকট্রনিক প্রজেক্টে ব্যবহার করা হয়। আজ আমরা জানব কীভাবে একটি ভ্যারিয়েবল রেজিস্টর (Potentiometer) ব্যবহার করে LED-এর ব্লিংকিং রেট (Blinking Rate) পরিবর্তন করা যায়।
এই প্রজেক্টটি খুব সহজ, এটি অ্যানালগ ইনপুট, ডিলে কন্ট্রোল এবং PWM ধারণা বুঝতে দারুণ সহায়ক হবে।
প্রয়োজনীয় উপকরণ
এই প্রজেক্টের জন্য দরকার হবে —
| উপকরণ | পরিমাণ | বর্ণনা |
|---|---|---|
| Arduino Uno | 1টি | মূল মাইক্রোকন্ট্রোলার বোর্ড |
| LED | 1টি | আলো নির্গত ডায়োড |
| 220Ω রেজিস্টর | 1টি | LED-কে অতিরিক্ত কারেন্ট থেকে রক্ষা করবে |
| Potentiometer (10kΩ) | 1টি | ভ্যারিয়েবল রেজিস্টর |
| Jumper Wire | প্রয়োজনমতো | সংযোগের জন্য |
| Breadboard | 1টি | সার্কিট তৈরি করার জন্য |
সার্কিট কানেকশন (Circuit Connection)
সার্কিটটি নিম্নরূপে সংযুক্ত করব:
- LED এর positive leg (anode) → Arduino এর Pin 13 (বা অন্য কোনো ডিজিটাল পিন)
- LED এর negative leg (cathode) → 220Ω resistor হয়ে GND তে
Potentiometer এর তিনটি পিনের মধ্যে —
- এক পাশের পিন → 5V
- অন্য পাশের পিন → GND
- মাঝের পিন (wiper) → A0 (Analog input pin)
Arduino কোড
int ledPin = 13; // LED সংযুক্ত পিন
int potPin = A0; // পটেনশিওমিটারের মধ্যম পিন
int potValue = 0; // পটেনশিওমিটারের মান
int delayTime = 0; // ডিলে সময়
void setup() {
pinMode(ledPin, OUTPUT); // LED পিনকে আউটপুট হিসেবে সেট করা
}
void loop() {
potValue = analogRead(potPin); // পটেনশিওমিটারের মান পড়া (0-1023)
delayTime = map(potValue, 0, 1023, 100, 1000); // মানকে ডিলে রেঞ্জে রূপান্তর (100ms থেকে 1000ms)
digitalWrite(ledPin, HIGH); // LED অন
delay(delayTime); // নির্দিষ্ট সময় অপেক্ষা
digitalWrite(ledPin, LOW); // LED অফ
delay(delayTime); // নির্দিষ্ট সময় অপেক্ষা
}
কোডের ব্যাখ্যা
analogRead(A0)দ্বারা Arduino পটেনশিওমিটারের অ্যানালগ ভোল্টেজ মান পড়ে (0 থেকে 1023 পর্যন্ত)।map()ফাংশন ব্যবহার করে এই মানকে ডিলে টাইমে রূপান্তর করা হয়, যাতে রেজিস্ট্যান্স পরিবর্তনের সাথে LED-এর ব্লিংকিং স্পিডও পরিবর্তিত হয়।- পটেনশিওমিটার ঘুরালে LED কখনও দ্রুত, কখনও ধীরে ব্লিংক করবে।
কাজের ফলাফল
যখন আমরা পটেনশিওমিটার ঘুরাব, তখন তার রেজিস্ট্যান্স পরিবর্তন হবে — ফলে Arduino-তে ইনপুট ভোল্টেজ পরিবর্তিত হবে এবং কোড অনুযায়ী LED-এর ব্লিংকিং স্পিড কমবে বা বাড়বে।
এভাবে আমরা রিয়েল-টাইমে LED-এর blinking speed নিয়ন্ত্রণ করতে পারি।
শেখার মূল পয়েন্ট
- অ্যানালগ ইনপুট ব্যবহার করে সেন্সর মান পড়া শেখা যায়।
- map() ফাংশন এর মাধ্যমে ইনপুট মানকে অন্য রেঞ্জে কনভার্ট করা শেখা যায়।
- রেজিস্ট্যান্স পরিবর্তন কীভাবে ভোল্টেজ ও সময় নিয়ন্ত্রণে প্রভাব ফেলে, তা বোঝা যায়।
উপসংহার
এই প্রজেক্টটি নবীন Arduino ব্যবহারকারীদের জন্য একটি দারুণ অনুশীলন। খুব অল্প উপকরণে সহজেই LED-এর ব্লিংক রেট নিয়ন্ত্রণ করতে পারি।
পরবর্তীতে আমরা এই ধারণা ব্যবহার করে servo motor control, light dimming, বা sensor-based automation project তৈরি করতে পারি।

0 Comments