===== Эксперимент 22. Ноты ===== В музыке каждой ноте соответствует строго определенная частота, или как говорят музыканты — тон. Также у каждой ноты есть обозначение на нотном стане и буквенный код. Например тона Ля обозначается как A. {{ :products:esp-iot:2020-05-18_12-02-06.png?nolink |}} Не будем сильно вдаваться в музыкальную теорию так как это не является предметом нашего курса. Просто примем эти обозначения, соберем схему и составим программу для воспроизведения нот. ==== Схема эксперимента ==== {{ :products:esp-iot:exp7_sch.png?nolink |}} //Рисунок 1. Электрическая принципиальная схема эксперимента// {{ :wiki:exp7_mont.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента// ==== Программный код эксперимента ==== 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 ноты До, Фа и Си, каждую в течение секунды, после чего отключает звук и завершается. [[https://foxford.ru/wiki/informatika/slovari-assotsiativnye-massivy-v-python|Подробнее о словарях в Python]] ==== Дополнительное задание ==== * Измени код программы, чтобы она играла мелодию из нескольких нот с разной длительностью.