buzzer - П’єзо-динамік

Функції для роботи з п’єзо-динаміком.

Примітка

Ці функції не блокують виконання програми: всі звуки та мелодії відтворюються в фоновому режимі.

class buzzer
static play(frequency, size?)

Відтворює звук заданої частоти.

Якщо передати другий аргумент, звук буде відтворено впродовж цього часу (в мілісекундах).

Parameters:
  • frequency (number) – частота тону

  • size? (number) – тривалість звуку (в мілісекундах)

static play_melody(melody, tempo)

Відтворює мелодію.

Мелодія - це масив з пар частота-розмірність.

Наприклад, ноту з частотою 523 Гц (нота «до» п’ятої октави) і тривалістю 1/4 можна представити як {523, 4}.

Від’ємна тривалість означає ноту з крапкою, наприклад:

  • -1 - ціла нота з крапкою (1 + 1/2)

  • -2 - половина з крапкою (1/2 + 1/4)

  • -4 - чверть з крапкою (1/4 + 1/8)

…і так далі.

Якщо частота дорівнює 0, то вона інтерпретується як пауза.

Parameters:
  • melody (table) – мелодія (масив пар частота-розмірність)

  • tempo (number) – темп мелодії (кількість ударів на хвилину)

Usage:

 1-- Мелодія "до-ре-мі-фа-соль" п'ятої октави
 2local melody = {
 3    {523, 2},
 4    {587, 4},
 5    {659, 2},
 6    {698, 4},
 7    {784, 2},
 8}
 9buzzer.play_melody(melody, 60)  -- Відтворює мелодію з темпом 60 ударів на хвилину
10-- Також можна використовувати глобальний модуль notes, де є константи для нот від B0 до D#8:
11local melody2 = {
12    {notes.C4, 4},  -- "до" четвертої октави
13    {notes.FS4, 2}, -- "фа-дієз" четвертої октави
14    {notes.D5, 1},  -- "ре" п'ятої октави
15    {0, 2},  -- Пауза
16}
17buzzer.play_melody(melody2, 60)
static stop()

Зупиняє відтворення всіх звуків.

Return type:

nil