PWM (Pulse Width Modulation) হলো একটি প্রযুক্তি যা ডিজিটাল পিনের মাধ্যমে এনালগ ফলাফল উৎপন্ন করতে ব্যবহৃত হয়। এটি সাধারণত এমন ক্ষেত্রে ব্যবহৃত হয় যেখানে অ্যানালগ সংকেতের প্রয়োজন হয়, কিন্তু শুধুমাত্র ডিজিটাল আউটপুট পাওয়া যায়। PWM-এর মাধ্যমে, একটি পিনে HIGH এবং LOW সিগন্যালের মধ্যবর্তী সময়ের পরিবর্তন করে একটি গড় ভোল্টেজ তৈরি করা হয়, যা অ্যানালগ আউটপুটের মতো আচরণ করে।
PWM একটি সংকেতের "ডিউটি সাইকেল" নিয়ন্ত্রণের মাধ্যমে কাজ করে। ডিউটি সাইকেল বলতে বোঝায় HIGH অবস্থা এবং LOW অবস্থার মধ্যকার সময়ের অনুপাত। এটি শতকরা হারে প্রকাশ করা হয়:
ডিউটি সাইকেলের পরিবর্তনের মাধ্যমে গড় আউটপুট ভোল্টেজ নিয়ন্ত্রণ করা হয়। উদাহরণস্বরূপ, একটি 50% ডিউটি সাইকেল 5V সরবরাহে 2.5V গড় আউটপুট ভোল্টেজ প্রদান করে।
Arduino তে নির্দিষ্ট পিনগুলোতে PWM আউটপুট প্রদান করা সম্ভব। সাধারণত এই পিনগুলোতে ~
চিহ্ন থাকে (যেমন: ~3, ~5, ~6, ~9, ~10, এবং ~11)। এই পিনগুলোতে analogWrite()
ফাংশনের মাধ্যমে PWM আউটপুট প্রদান করা যায়।
analogWrite()
ফাংশনের ব্যবহারanalogWrite()
ফাংশন ব্যবহার করে PWM আউটপুট প্রদান করা হয়। এই ফাংশনটি দুইটি প্যারামিটার নেয়:
উদাহরণ:
void setup() {
pinMode(9, OUTPUT); // পিন 9 কে আউটপুট হিসেবে সেট করা
}
void loop() {
analogWrite(9, 127); // 50% ডিউটি সাইকেল (গড় আউটপুট ভোল্টেজ প্রায় 2.5V)
delay(1000);
analogWrite(9, 255); // 100% ডিউটি সাইকেল (গড় আউটপুট ভোল্টেজ 5V)
delay(1000);
}
PWM সাধারণত নিচের ক্ষেত্রে ব্যবহৃত হয়:
analogWrite()
ফাংশনের মাধ্যমে LED এর গড় ভোল্টেজ নিয়ন্ত্রণ করে এর উজ্জ্বলতা বাড়ানো বা কমানো হয়।int brightness = 0; // LED এর প্রাথমিক উজ্জ্বলতা
int fadeAmount = 5; // উজ্জ্বলতা পরিবর্তনের পরিমাণ
void setup() {
pinMode(9, OUTPUT); // পিন 9 কে আউটপুট হিসেবে সেট করা
}
void loop() {
analogWrite(9, brightness); // বর্তমান উজ্জ্বলতা অনুযায়ী LED চালানো
brightness += fadeAmount; // উজ্জ্বলতা পরিবর্তন
// উজ্জ্বলতার সীমা নির্ধারণ
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount; // উল্টা দিকে পরিবর্তন
}
delay(30); // সামান্য বিলম্ব
}
এই উদাহরণে, LED এর উজ্জ্বলতা ধীরে ধীরে বৃদ্ধি এবং হ্রাস পায়, যার ফলে এটি ধীরে ধীরে জ্বলে এবং নিভে।
PWM হল একটি কার্যকর পদ্ধতি যা Arduino তে এনালগ আউটপুট তৈরি করতে এবং বিভিন্ন ডিভাইস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এটি ব্যবহার করে সহজেই আলো, মোটর, এবং অন্যান্য ডিভাইস নিয়ন্ত্রণ করা যায়।
common.read_more