Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp22 [2020/05/18 12:03] – [Эксперимент 22. Ноты] labuser29products:laboratory_iot:exp22 [2024/12/03 18:27] (текущий) – [Программный код эксперимента] labuser30
Строка 14: Строка 14:
 //Рисунок 2. Монтажная схема эксперимента// //Рисунок 2. Монтажная схема эксперимента//
  
 +==== Программный код эксперимента ====
 +
 +<file python Exp22.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +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)
 +</file>
 +
 +Объявляем //словарь// ''tones'' для записи нот и значений их частоты. Словарь очень похож на массив, но вместо числовых индексов в нем используются имена элементов. В нашем случае это названия нот, а значения — их частота. Словарь объявляется с помощью фигурных скобок ''{}'', внутри которых следуют пары ''ключ : значение'', перечисленные через запятую.
 +
 +Обращение к элементам словаря происходит аналогично элементам массива, но вместо индекса указывается имя элемента, ключ ''tones['c']''.
 +
 +Приведенная программа проигрывает 3 ноты До, Фа и Си, каждую в течение секунды, после чего отключает звук и завершается.
 +
 +<WRAP center round info 60%>
 +[[https://foxford.ru/wiki/informatika/slovari-assotsiativnye-massivy-v-python|Подробнее о словарях в Python]]
 +</WRAP>
 +
 +==== Дополнительное задание ====
 +<WRAP center round tip 60%>
 +  * Измени код программы, чтобы она играла мелодию из нескольких нот с разной длительностью.
 +</WRAP>