
আসসালামু আলাইকুম, আমি আবরার অন্তর। আশা করি সবাই ভাল আছেন। অনেকদিন পর আবার একটি নতুন টিউটোরিয়াল লিখলাম। অনেকেই জানিয়েছেন কেন আমি নতুন কিছু লিখি না। আসলে আমার পরিক্ষা ছিল তা আমি আগেও জানিয়েছি। আশা করি এখন থেকে আমি আপনাদের নতুন নতুন কিছু সিখাতে পারব। কারন আমার পরিক্ষা শেষ। 😀
আচ্ছা এখন আমরা আমাদের আজকের বিষয় নিয়ে আলোচনা করিঃ
PWM(Pulse Width Modulation) এর মানেই আমরা অনেকেই জানি না। কি এইটা? এর কাজ কি? কেন ব্যবহার করি? এবং কিভাবে ব্যবহার করতে হয় এসব নিয়েই আমার আজকের টিউন। আসুন তাহলে দেখা যাকঃ
Pulse মানে আমরা বুঝি কম্পন/স্পন্দন, Width মানে আমরা বুঝি প্রস্থ, Modulation মানে আমরা বুঝি পরিবর্তন/নানাভাবে বিস্তার। তাহলে Pulse Width Modulation এর মানে দাড়ায় কোন কম্পনের প্রস্থের পরিবরতন/নানাভাবে বিস্তার। এখন কথা হল ডিজিটাল ইলেক্ট্রনিক্স এ কম্পনটা কিভাবে হয়??? আমরা তো জানি ডিজিটাল মানে শুধু ০ আর ১!! তার মানে আমাদের মাইক্রোকন্ট্রোলার আমাদের শুধু ০ বা ১ আউটপুট দিবে। তবে ১,০,১,০,১... ...,০,১,০,১ আউটপুটও কিন্তু দিবে। তাহলে কি কম্পন হয় না?? নিচের ছবিটা দেখুনঃ
আশা করি এখন অনেকেই বুঝতে পারছেন আসলে PWM কি? কিন্তু এখানেই শেষ না।। আচ্ছা ছবির ৩নং বক্সটা দেখে কি আমাদের মাথায় প্রশ্ন আসে না যদি ৫v এ বেশিক্ষণ থাকতো বা 0v এ বেশিক্ষণ থাকতো বা এর উল্টুটা হতো?? এখন তাহলে একটু নিচের ছবিটা দেখেনঃ

আচ্ছা এখানে কি হল ব্যাপারটা?? লক্ষ্য করে দেখুন, সব গুলোর উপরে (5v) উঠার পয়েন্ট একই। কিন্তু নিচে নামার সময় কিন্তু ভিন্ন ভিন্ন পয়েন্ট। আসলে এখানে কি ঘটলো?? :/ আরেকটু লক্ষ্য করে দেখেন, সব গুলোর কিন্তু ৫v হয়ে থাকার মধ্যেই পরিবর্তন। এখানে এই ৫v হয়ে থাকা কে যদি আমরা % করি তাহলে উপরের ছবির ৪টা PWM এর জন্য কি ১০%, ২৫%, ৫০%, ৯০% হয় না?? হুম, এই 5v হয়ে থাকাকেই DUTY বলে। আবার লক্ষ্য করুন, প্রতিটা PWM আবার DUTY-র পর LOW হয়ে আবার DUTY শুরু হয়েছে। এখানে এক DUTY থেকে অন্য DUTY শুরু হওয়ার আগ পর্যন্ত সময়কে PERIOD বলে। আর DUTY কে DUTY CYCLE-ও বলে। নিচের ছবিটা দেখলে আশা করি ক্লিয়ার হবেনঃ
একটা উদাহরন দিয়া বুঝাইয়া দেইঃ
একটা pulse যার 10ms HIGH & 10ms LOW হয়. তাহলেঃ
Period = 10 + 10 = 20ms
Frequency = 1 / 20 = 0.05Khz = 50Hz
Duty = (10 / (10+10)) * 100 = 50%
PWM আমরা অনেক বুঝলাম; আসুন আবার PWM নিয়ে মাইক্রোকন্ট্রোলার দিয়ে খেলা করি। 😀

MikroC for PIC প্রোগ্রামটা দেখে নেইঃ
void main() {
TRISC = 0x00; // designate PORTC pins as output
PORTC = 0x00; // set PORTC to 0
while (1) {// endless loop
portc.f0 = 1; //high
delay_ms(10); //high delay
portc.f0 = 0; //low
delay_ms(10); //low delay
}
}
কি খুব সহজ তাইনা?? কত সিমপ্ললি আমরা 50Hz এর 50% Duty এর একটি প্রোগ্রাম করে ফেললাম!!
কেন PWM দরকার হয়?
ডিজিটাল ইলেক্ট্রনিক্স এ PWM এর ভুমিকা অপরিহার্য। আমরা প্রতিদিন টিভির রিমোট টিপি তার communication থেকে শুরু করে মোবাইলের communication ও হয়ে থাকে এই PWM এর মাধ্যমেই। সুহুধু তাই না, ডিজিটাল লজিক(0V/5V) কে এনালগ হিসেবে কাজ করানো যায় এই PWM এর মাধ্যমে। PWM এর মাধ্যমে বিভিন্ন Protocol(like UART etc) করানো হয়। তাছারা স্পীড কন্ট্রোল, ডিমিং করা সম্ভব এই PWM দিয়েই। বর্তমানে AC wave তৈরি করে Sine wave IPS তৈরি করা হচ্ছে। এমন অনেক কিছু রয়েছে যা PWM এর উপর নির্ভর।
আজ তাহলে এই পর্যন্তই থাক। পরবর্তী part এর জন্য টিউমেন্ট করুন এবং আমাকে জানান কেমন লাগব আমার এই টিউন।
সবাই ভাল থাকুন, সুস্থ থাকুন। আল্লাহ হাফেজ।
আমি আবরার অন্তর। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 10 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 13 টি টিউন ও 26 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
দারুন হইছে বস………. পরবর্তী টার অাশায় থাকলাম।