در این درس یاد میگیری چطور با آردوینو و یک بازر صدا و حتی یک ملودی کوتاه بسازی. ابزار اصلی ما دو دستور ساده است: tone() برای تولید صدا و noTone() برای قطع آن.
دستور tone() یک موج با فرکانس مشخص روی پایه میسازد. هرچه فرکانس بیشتر باشد، صدا زیرتر (نازکتر) میشود. شکل کلی آن این است:
tone(pin, frequency);
tone(pin, frequency, duration);
noTone(pin);
پارامتر اول شماره پایهای است که بازر به آن وصل شده، پارامتر دوم فرکانس بر حسب هرتز (Hz) و پارامتر سوم (اختیاری) مدت زمان صدا بر حسب میلیثانیه است.
هر نوت موسیقی یک فرکانس مشخص دارد. مثلاً نوت «دو» (C4) برابر ۲۶۲ هرتز و نوت «می» (E4) برابر ۳۳۰ هرتز است. در کد زیر یک ملودی کوتاه پخش میکنیم. فرض کن بازر به پایه ۸ وصل است:
int buzzer = 8;
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
tone(buzzer, 262); // نوت دو
delay(400);
tone(buzzer, 330); // نوت می
delay(400);
tone(buzzer, 392); // نوت سل
delay(400);
tone(buzzer, 523); // نوت دوی بالا
delay(400);
noTone(buzzer); // قطع صدا
delay(1000); // یک ثانیه سکوت
}
در این برنامه چهار نوت پشت سر هم با فاصله ۴۰۰ میلیثانیه پخش میشوند، بعد صدا قطع میشود و یک ثانیه سکوت داریم؛ سپس ملودی دوباره تکرار میشود. میتوانی فرکانسها و زمانها را عوض کنی تا ملودی دلخواه خودت را بسازی.
tone() نیاز دارد و میتواند نوتهای مختلف بزند. اما بازر اکتیو (Active) خودش یک صدای ثابت دارد و فقط با digitalWrite روشن و خاموش میشود. برای موسیقی حتماً از بازر پسیو استفاده کن.این کد را همین حالا در حالت کدنویسی شبیهساز روبومیکر بنویس و اجرا کن.
🔌 همین حالا توی شبیهساز آنلاین روبومیکر امتحان کن — رایگان و بدون نصب