আমি সম্প্রতি পিডব্লিউএম নিজেই পরীক্ষা-নিরীক্ষার কিছু কারণ পেয়েছি এবং দেখেছি যে (কোনও একটি মন্তব্যে দেখানো হয়েছে) দায়িত্ব চক্রের সাথে ফ্রিকোয়েন্সি আলাদা বলে মনে হচ্ছে - বিজার, তাই না? দেখা যাচ্ছে যে পিডাব্লুএম ডালগুলি যথাসম্ভব সমানভাবে বিতরণ করার জন্য ব্রডকম "ভারসাম্যপূর্ণ" পিডাব্লুএমএম প্রয়োগ করেছে। তারা তাদের ডাটাশিটের ১৩৯ পৃষ্ঠায় অ্যালগরিদমের বিবরণ এবং আরও কিছু আলোচনার বিবরণ দেয়:
http://www.element14.com/commune/servlet/JiveServlet/downloadBody/43016-102-1-231518/Broadcom.Datasheet.pdf
সুতরাং আপনি যা চান তা হ'ল পিডব্লিউএমকে মার্ক-স্পেস মোডে স্থাপন করা যা আপনাকে যে theতিহ্যবাহী (এবং সহজেই অনুমানযোগ্য) পিডাব্লুএম খুঁজছেন তা দেবে:
pwmSetMode(PWM_MODE_MS);
উত্তরটির বাকি অংশটি ধরে নেওয়া হয় যে আমরা মার্ক স্পেস মোডে আছি।
আমিও কিছু মূল্যবোধের অনুমোদিত সীমার নিয়ে পরীক্ষা-নিরীক্ষা করেনি pwmSetClock()
এবং pwmSetRange()
। অন্য একটি উত্তরে যেমন উল্লেখ করা হয়েছে, এর বৈধ pwmSetClock()
পরিধিটি 2 থেকে 4095 পর্যন্ত চলেছে বলে মনে হচ্ছে, তবে এর বৈধ পরিধি pwmSetRange()
4096 অবধি রয়েছে (আমি একটি নিম্ন-সীমা সন্ধানের চেষ্টা করি নি)।
পরিসর এবং ঘড়ি (আরও ভাল নাম সম্ভবত বিভাজক) উভয়ই ফ্রিকোয়েন্সিকে প্রভাবিত করে। পরিসীমাটি রেজোলিউশনকেও প্রভাবিত করে, সুতরাং খুব কম মান ব্যবহার করা সম্ভব হতে পারে, আপনি সম্ভবত কতটা কম যেতে চান তার একটি ব্যবহারিক সীমা রয়েছে। উদাহরণস্বরূপ, আপনি যদি 4 এর ব্যাপ্তি ব্যবহার করেন তবে আপনি উচ্চতর ফ্রিকোয়েন্সি অর্জন করতে পারবেন তবে আপনি কেবল শুল্কচক্রটি 0/4, 1/4, 2/4, 3/4 বা 4/4 তে সেট করতে পারবেন।
রাস্পবেরি পাই পিডব্লিউএম ঘড়ির বেস ফ্রিকোয়েন্সি 19.2 মেগাহার্টজ রয়েছে। যুক্তি দ্বারা বিভক্ত এই ফ্রিকোয়েন্সিটি pwmSetClock()
হ'ল ফ্রিকোয়েন্সি যেখানে পিডব্লিউএম কাউন্টারটি বাড়ানো হয়। যখন কাউন্টারটি নির্দিষ্ট ব্যাপ্তির সমান মান পৌঁছে যায় তখন তা শূন্যে পুনরায় সেট হয়। উল্লিখিত শুল্ক চক্রের তুলনায় কাউন্টারটি কম, আউটপুট বেশি, অন্যথায় আউটপুট কম।
এর অর্থ, আপনি যদি একটি নির্দিষ্ট ফ্রিকোয়েন্সি রাখতে PWM সেট করতে চান তবে আপনি নীচের সম্পর্কটি ব্যবহার করতে পারেন:
pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.
আপনি যদি এর জন্য সর্বাধিক অনুমতিযোগ্য মানগুলি ব্যবহার করেন pwmSetClock()
এবং pwmSetRange()
আপনি সর্বনিম্ন অর্জনযোগ্য হার্ডওয়্যার PWM ফ্রিকোয়েন্সিটি ~ 1.14 Hz এর সাথে শেষ করবেন। এটি অবশ্যই একটি এলইডিকে একটি দৃশ্যমান ঝাঁকুনি দেবে (সত্যিই আরও বেশি ফ্ল্যাশ করবে)। আমি ওসিলোস্কোপের সাহায্যে উপরের সমীকরণটি নিশ্চিত করেছিলাম এবং এটি মনে হয়। উপরের বর্ণনা অনুসারে আপনার প্রয়োজনীয় রেজোলিউশন দ্বারা উপরের ফ্রিকোয়েন্সি সীমাটি প্রভাবিত হবে।
pwmWrite()
। এমন কিছু নয় যা আমি প্রত্যাশা করবো