()analogWrite در آردوینو

()analogWrite در آردوینو

()analogWrite در آردوینو
()analogWrite در آردوینو

()analogWrite در آردوینو یک مقدار آنالوگ (PWM wave) را روی پین می‌نویسد. از ()analogWrite می‌توان برای تنظیم روشنایی یک ال‌ای‌دی با شدت نور متنوع یا راندن یک موتور با سرعت‌های مختلف استفاده کرد. پس از فراخوانی ()analogWrite، تا فراخوانی بعد همین دستور (یا فراخوانی ()digitalRead یا ()digitalWrite روی همان پین) پین یک موج مربعی ثابت را طبق چرخه‌ی وظیفه‌ی (دوره‌ی کاری – duty cycle) مشخص‌شده، تولید خواهد کرد. در بیشتر پین‌ها، فرکانس سیگنال PWM، تقریباً 490 هرتز است. در آردوینو Uno و بردهای مشابه، پین‌های 5 و 6 حدوداً فرکانس 980 هرتز دارند. پین‌های 3 و 11 Leonardo هم فرکانس 980 هرتز دارند.

 

در بیشتر بردهای آردوینو (آن‌هایی که مبتنی بر  ATmega168 و ATmega328 هستند)، این تابع (فانکشن) روی پین‌های 10،9،6،5،3 و 11 و در آردوینو Mega، تابع روی پین‌های 13-2 و 46-44 کار می‌کند. بردهای قدیمی‌تر آردوینو دارای ATmega8، فقط روی پین‌های 10،9 و 11 از ()analogWrite پشتیبانی می‌کند.

آردوینو Duo از ()analogWrite روی پین 2 ار طریق پین 13 و پین‌های DAC0 و DAC1 پشتیبانی می‌کند. بر‌خلاف پین‌های PWM، پین  DAC0 و DAC1 مبدل دیجیتال به آنالوگ هستند و همانند خروجی‌های آنالوگ واقعی عمل می‌کنند.

قبل از فراخوانی ()analogWrite نیازی به فراخوانی ()pinMode و تنظیم پین‌ها به‌عنوان خروجی نیست.

تابع analogWrite هیچ ارتباطی با پین‌های آنالوگ و  تابع analogRead ندارد.

سینتکس (نحو)

(analogWrite(pin, value

پارامتر

pin: پین برای نوشتن.

value: چرخه‌ی وظیفه: بین ۲۵۵ (همیشه on) و ۰ (همیشه off)

خروجی

ندارد (هیچ)

نکته

خروجی‌های PWM تولید‌شده روی پین‌های 5 و 6، چرخه‌ی وظیفه‌ی بالاتری نسبت به آنچه انتظار می‌رود را خواهد داشت. این اتفاق به دلیل اثر متقابل با توابع ()millis و ()delay است که تایمر درونیِ یکسانی را برای تولید آن خروجی‌های PWM به‌صورت مشترک استفاده می‌کنند و بیشتر در تنظیمات پایین چرخه‌ی وظیفه (به‌عنوان‌مثال 10 – 0) دیده خواهد شد و ممکن است به مقداری از 0 که به‌صورت کامل خروجی روی پین 5 و 6 را خاموش نکند، بیانجامد.

مثال:

خروجی را به LED تنظیم می کند که متناسب با مقدار خوانده‌شده از پتانسیومتر است:

 

 

()analogRead در آردوینو

()analogWriteResolution

Tutorial: PWM

منبع

0 نفر

پــــســنــدیـده انـد

توجه

Yalda
Yalda

علاقه‌مند به یادگیری چیزهای جدید!

دیدگاه ها

4 دیدگاه

  • سپهر یحیایی
    ۱۱ آبان ۱۳۹۹

    خوب بود اما کامل نبود بهتر بود ک توضیحات بیشتری بدهید .
    همینطور برنامه رو باز تر می‌کردید .
    ممنون

    • Sisoog Os
      Sisoog Os
      ۱۲ آبان ۱۳۹۹

      این قسمت بیشتر یه حالت رفرنس داره و ترجمه خود سایت اردوینو هست و گرنه واقعا جا برای توضیحات خیلی زیاد تر هست

  • حامد
    ۲۸ اسفند ۱۳۹۸

    ببخشید نوشتید که: وقتی value =0 باشه حالت on خواهد داشت و وقتی که value=255باشه حالت off خواهد داشت (در حالت analogWrite).
    این برعکسش درست نیست؟

    • Zeus ‌
      زئوس Zeus
      ۵ فروردین ۱۳۹۹

      بله دوست عزیز – اصلاح شد
      ممنون برای نکته سنجی شما 🙂

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک