pwm در آردوینو – آموزش آردوینو جلسه هفتم

pwm در آردوینو یا مدولاسیون عرض پالس روشی برای ایجاد سیگنال انالوگ توسط یک سیستم دیجیتاله ، در کنترل دیجیتال یک پایه فقط دو حالت صفر و یک داره .توی یک شکل موج مربعی هم مدت زمان صفر یا یک بودن سیگنال با هم برابره و مقدار متوسط موج مربعی برابر نصف دامنه هستش.حالا اگه زمان صفر یا یک بودن مساوی نباشه و تغییرش بدیم مقدار متوسط ما هم تغییر میکنه:

pwm در آردوینو

حالا با تغییر نسبت وظیفه موج (مدت زمان یک بودن یک پالسو میگن مدت وظیفه) میشه توان متوسط خروجی رو کنترل کرد ، مثلا میشه نور یک led رو تغییر داد یا دور موتور رو کنترل کرد.
توی آردوینو تابع analogWrite() برای ایجاد موج pwm استفاده میشه و قالب اون اینطوریه:

تابع analogWrite

 

توی این تابع پارامتر pin برای تعیین پایه ای هست که موج رو میخوایم روی اون ایجاد کنیم و مقدار val نسبت وظیفه شکل موج یا زمان یک بودن شکل موج هست که مقداری بین 0 تا 255 میگیره.(روی شکل بالا مقدار analogwrite ها رو کنار dutycycle ها نوشته) که باتغییر اون به عرض پالس مورد نظرمون میرسیم.

مثال میخوایم با استفاده از پتاسنیومتر مقدار نور یک LED رو تنظیم میکنیم:

وقتی مقدار آنالوگ رو میخونیم عددی بین 0 تا 1023 به ما میده اما ما میخوایم عددی بین صفر تا 255 رو توی خروجی analogWrite کنیم ، باید اون رو موقع analogWrite کردن تقسیم بر 4 کنیم،البته این کار بهترین روش نیست و بهتر بود با استفاده از دستور map این رنج رو تبدیل میکردیم.

مبحث PWM در آردوینو مبحث ساده ای هست و توضیح خاص دیگه ای به ذهنم نمیرسه.توی بخش موتور ها اگر فراموش نکنم مثال هایی برای pwm و کنترل دور موتور هم میزنم که اونم سخت نیست.

دستور map و دوستورات ریاضی رو جلسه بعد توضیح میدم.
لوینیک رو به دوستانتون هم معرفی کنید.

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

4 پاسخ‌ها

  1. بهمن گفت:

    سلام مهندس خسته نباشی…ما در اردوینو چیزی بعنوان لاک بیت و فیوز بیت هم داریم؟ بیشتر لاک شدن برنامه و غیر قابل کپی کردنش برام مهمه…و اصولا آیا میشه برنامه ای رو از یه اردوینو کپی کرد؟

    • سلام . ممنون همچنین
      خود آردوینو این قابلیت رو نداره . چون اساس شکل گیریش اپن سورس بودنه . اما چون ساختار ما میکرو کنترلره پس میشه ! کافیه میکرو رو از روی برد بردارین و مثل یک میکرو Avr با پروگرامر ، فیوزبیت های مربوط به قفل کردن کد رو تغییر بدین.

      • بهمن گفت:

        سلام روز بخیر….من از آردوینو مگا دارم استفاده میکنم و نمیشه آی سی رو در آورد.مجبورم به روش ISP به پروگرمر وصلش کنم تا لاک بیتهاشو فعال کنم….اما هنوز میخوام بدونم چطور میشه از یه برنامه اردوینو کپی کرد.

        • سلام مجدد ، بله پایه های مربوط به اتصال به پروگرامر موجوده روی برد مگا هم .همونطور که گفتم مثل avr . تفاوتی نداره. متاسفانه هنوز آموزش های AVR روی سایت قرار نگرفته. سرچ کنید مطالب بسیاری هم به فارسی و هم زبان انگلیسی وجود داره.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *