آموزش آردوینودستورات آردوینو

دستور Tone در آردوینو (ایجاد صدا و موج مربعی)

دستور Tone در آردوینو برای ایجاد صدا و امواج مربعی استفاده میشود.

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

استفاده از دستور Tone() با خروجی PWM در پایه های 3 و 11 (در برد های غیر از Mega) تداخل ایجاد می کند. تولید صدا با فرکانس کمتر از 31 هرتز امکان پذیر نیست. موج مربعی ایجاد شده میتواند به یک بازر برسد و صدا های مختلفی را ایجاد کند.

دستور Tone

tone(pin, frequency)
tone(pin, frequency, duration)

  • pin: به جای pin باید نام پین که میخواهید در آن موج مربعی (صدا) ایجاد کنید بنویسید.
  • frequency: در این پارامتر باید فرکانس صدای مورد نظر خود را وارد کنید. (یا فرکانس موج مربعی را تعیین کنید.)
  • duration: در این پارامتر تعیین میکند صدا به چه مدت پخش شود (یا ایجاد موج مربعی ادامه پیدا کند.)

به طور مثال اگر میخواهید در پین 3 یک صدا با فرکانس 110 ایجاد کنید، باید دستور را به صورت tone(pin, frequency) بنویسید.

همچنین زمانی که میخواهید ایجاد صدا را متوقف کنید، باید دستور noTone(pin) را وارد کنید.

جهت کسب اطلاعات بیشتر، مقالات زیر را مشاهده کنید:

نمونه کد با دستور Tone

در کد زیر ما بازر را به پین 9 متصل میکنیم. همچنین یک صدا با فرکانس 100 را در این پایه ایجاد میکنیم.

int buzzer = 9;      // بازر به پین 9 متصل است

void setup() {
  pinMode(buzzer, OUTPUT);  // تعیین پین در حالت خروجی
}

void loop() {
  tone(buzzer, 100);
}

نکات:

اگر می خواهید صدا های مختلف را روی چندین پایه پخش کنید، باید قبل از فراخوانی Tone() روی پایه بعدی، noTone() را روی پایه مورد نظر اجرا کنید.

4.7 (4 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

دیدگاهتان را بنویسید

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