В музыке каждой ноте соответствует строго определенная частота, или как говорят музыканты — тон. Также у каждой ноты есть обозначение на нотном стане и буквенный код. Например тона Ля обозначается как A.
Не будем сильно вдаваться в музыкальную теорию так как это не является предметом нашего курса. Просто примем эти обозначения, соберем схему и составим программу для воспроизведения нот.
from machine import Pin, PWM import time _init() tones = { 'c': 262, 'd': 294, 'e': 330, 'f': 349, 'g': 392, 'a': 440, 'b': 494, 'C': 523 } speaker = PWM(Pin(15, Pin.OUT)) speaker.duty(512) speaker.freq(tones['c']) time.sleep(1) speaker.freq(tones['f']) time.sleep(1) speaker.freq(tones['b']) time.sleep(1) speaker.duty(0)
Объявляем словарь tones
для записи нот и значений их частоты. Словарь очень похож на массив, но вместо числовых индексов в нем используются имена элементов. В нашем случае это названия нот, а значения — их частота. Словарь объявляется с помощью фигурных скобок {}
, внутри которых следуют пары ключ : значение
, перечисленные через запятую.
Обращение к элементам словаря происходит аналогично элементам массива, но вместо индекса указывается имя элемента, ключ tones['c']
.
Приведенная программа проигрывает 3 ноты До, Фа и Си, каждую в течение секунды, после чего отключает звук и завершается.