آموزش آردوینو UNO ( ایجاد صوت با بازر )

به آموزش آردوینو (قسمت هشتم – ایجاد صوت با بازر) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۱ انجام شد!

بازر Buzzer

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

پیاده سازی عملی پروژه

برای این پروژه مدار خود را مانند شکل زیر ببندید. پایه آند بازر را به پایه مورد نظر خود در برد آردوینو متصل کنید و پایه کاتد آن را نیز به یکی از GND های برد وصل کنید.

نکته : پایه بلند تر Buzzer آند و پایه کوتاه تر کاتد نامیده میشود.

شبیه سازی پروژه در نرم افزار پروتئوس

یک برد آردوینو ، یک Buzzer را در پروتئوس از قسمت Devices به صفحه بیافزایید.پایه آند بازر را به پین مورد نظر آردوینو خود و کاتد آن را به GND وصل کنید.

تابع tone

این تابع یک موج مربعی روی یک پین ایجاد میکند .

pin : شماره یا اسم پین مورد نظر است.

نکته : در برد های آردوینو (به جز mega ) استفاده از پین های شماره ۳ و ۱۱ برای این تابع اختلال ایجاد میکند .

frequency : فرکانس مورد نظر در واحد هرتز

نکته : ایجاد فرکانس های کمتر از ۳۱Hz امکان پذیر نمی باشد.

duration : زمان ایجاد صدا به میلی ثانیه

نکته : اگر duration تعریف نشود ایجاد صدا تا زمان فراخوانی تابع noTone ادامه میابد.

tone(pin, frequency, duration);
noTone(pin);

تابع sizeof

عملگر sizeof تعداد بایت ها را در یک نوع متغیر یا تعداد خانه های اشغال شده توسط یک آرایه را برمی گرداند.

sizeof(variable);

کد های دستوری

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

int buzz = 9;
int tones[] = {200, 400, 600, 800, 1000, 1200, 1400, 1800, 5000};

در تابع setup ابتدا سایز آرایه را تعیین میکنیم . به جای تعیین سایز میتوانستیم خودمان تعداد خانه های آرایه را بشماریم.سپس با استفاده از یک حلقه for صوت های آرایه را ایجاد میکنیم.در آخر با فراخوانی تابع noTone تولید صدا را متوقف میکنیم.

نکته : تابع sizeof تعداد کل خانه های اشغال شده را نشان میدهد اما ما در for شمارش را از خانه صفر آرایه شروع میکنیم به همین دلیل برای استفاده از سایز آرایه در حلقه یکی از عدد آن کم میکنیم.

void setup()
{
  int lengthOfTones = sizeof(tones);
  lengthOfTones -= 1;
  for (int i = 0; i < lengthOfTones; i++)
  {
    tone(buzz, tones[i]);
    delay(1000);
  }
  noTone(buzz);
}
void loop()
{
}

پایان آموزش آردوینو (قسمت هشتم – ایجاد صوت با بازر)

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

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

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...