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

دستور 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() را روی پایه مورد نظر اجرا کنید.

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

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

تصویر از محمد رحیمی

محمد رحیمی

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

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

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