Сделай Сам Свою Работу на 5

Практическое занятие 6. Управление звуком кнопками ЖК индикатора





Генерация звука

Для генерации звука определенной частоты используется команда tone:

tone(контакт, частота) – генерировать сигнал определенной частоты (в Герцах) на определенном пине Arduino tone(контакт, частота, длительность) – генерировать сигнал определенной частоты (в Герцах) на определенном пине Arduino в течение заданного в миллисекундах времени noTone(контакт) – прекратить генерацию звука на этом контакте

Примечание: команда tone может генерировать звук только на одном контакте. Для использования нескольких спикеров их можно либо подключить на один и тот же контакт, либо генерировать на них звук по очереди (только один спикер звучит в определенный момент времени). Еще вариант – генерировать с помощью digitalWrite частоты на пинах, не используя команду tone

Подключать низкоомные динамики (например, 4 Ом, 8 Ом) напрямую на вход Arduino нельзя, так как в этом случае ток через динамик в соответствии с законом Ома U = I · R

I = U / R = 5 В / 4 Ом = 1,25 А = 1250 мА, что намного больше тока, который допустим для пина Arduino 40 мА

Поэтому мощные динамики подключают через транзисторный ключ или, как и в случае со светодиодом, используют резистор, чтобы ограничить проходящий через динамик ток (схема слева).



Используемые в занятии спикеры с материнских плат компьютеров имеют высокое сопротивление и малый ток (но и существенно более тихий звук), поэтому можно их подключать напрямую к пину Arduino одним контактом, и к земле другим контактом. На некоторых спикерах есть маркировка полярности, но особой разницы, какой контакт спикера подключить к пину Arduino, а какой – к земле, нет.

Практическое занятие 1. Проигрывание заданной мелодии

1. установите на макетную плату спикер, один кон такт его подключите к контакту D8 Arduino, другой – к Gnd

2. откройте и загрузите в контроллер программу Файл / Примеры / Digital / toneMelody

3. при включении контроллер должен издавать определенную мелодию

4. в примере код мелодии находится в блоке setup, поэтому мелодия проигрывается только один раз. Чтобы запустить повторное проигрывание, нужно отключить и вновь включить питание либо нажать кнопку Reset на Arduino. Сделайте воспроизведение мелодии непрерывным, переместив код в блок loop



Примечание: пример содержит библиотеку pitches.h, которая содержит наборы частот для нот

5. попробуйте загрузить в контроллер другие мелодии – пример программы приведен в приложении, также коды мелодий можно найти в интернете по запросам типа Arduino Melody, Arduino Sound и т.п.

Практическое занятие 2. Управление звуком резистором

Подключите к контроллеру переменный резистор и сделайте, чтобы частота звука спикера зависела от угла поворота резистора.

Пример программы – Файл / Примеры / Digital / tonePitchFollower

ЖК индикатор

Для работы с используемым в курсе ЖК индикатором (2 строки по 16 символов) используется библиотека LiquidCrystal, уже имеющаяся в составе программы Arduino IDE.

Практическое занятие 2. Проверка и настройка ЖК индикатора

1. установите ЖК шилд (LCD Shield) на Arduino Uno

2. откройте пример работы с ЖК индикатором: Файл / Примеры / Liquid Crystal / HelloWorld

3. приведенная в строке LiquidCrystal lcd(12, 11, 5, 4, 3, 2); нумерация контактов не соответствует таковой в используемом ЖК шилде, исправьте ее на:

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

4. загрузите программу в контроллер. При отсутствии текста на дисплее или плохом качестве попробуйте настроить контрастность, поворачивая резистор на шилде

Примечание: так как приведенные цифровые пины – 8, 9, 4, 5, 6, 7 используются для связи с ЖК индикатором, использовать их для чего-то еще нельзя (например, не будут работать подключенные к этим контактам светодиоды)

Практическое занятие 4. Эффекты

1. откройте и загрузите в контроллер программу Файл / Примеры / Liquid Crystal / Scroll

2. откройте и загрузите в контроллер программу Файл / Примеры / Liquid Crystal / Autoscroll



3. откройте и загрузите в контроллер программу Файл / Примеры / Liquid Crystal / Display

Практическое занятие 5. Вывод текста на ЖК индикатор

1. выведите на ЖК индикатор транслитом данные занимающихся на стенде: в первой строке Фамилия Имя одного занимающегося, во второй строке Фамилия Имя другого (или какой-то другой текст, если занимающийся один)

2. попробуйте различные эффекты – мигание (выводить и стирать текст), автоскролл с надписями фамилий или другими надписями на усмотрение

Практическое занятие 6. Управление звуком кнопками ЖК индикатора

1. загрузите программу Файл / Примеры / Analog / AnalogInOutSerial в контроллер

2. откройте программу, написанную на предыдущем занятии (скопируете из папки других участников, если не была сохранена своя программа)

3. подключите к плате спикер. Пользуйтесь аналоговыми входами ЖК индикатора. Для использования их как цифровых используется соответствие: А0=14, А1=15 и т.д.

4. напишите программу, которая включает определенную частоту при нажатии на определенную кнопку. Для облегчения программирования условий запишите значения, полученные для каждой кнопки, в переменные right, up и т.д. Приведен фрагмент кода программы:

int speaker = 15;// пин, к которому подключен спикер (А1) int right = 0; // значение, выдаваемое при нажатии кнопки Right int up = x1; // значение, выдаваемое при нажатии кнопки Up int down = x2; // значение, выдаваемое при нажатии кнопки Down int left = x3; // значение, выдаваемое при нажатии кнопки Left int select = x4; // значение, выдаваемое при нажатии кнопки Select   int f1 = 100; … // частоты (можно поставить другие) int f5 = 500; int note_duration = 500; // длительность проигрывания ноты … if (sensorValue == right) { // если снятое с аналогового входа значение равно значению, определенному для нажатия кнопки Right tone (speaker, f1, note_duration); // выдаем звук определенной длительности } …

 

5. загрузите программу в контроллер и опробуйте ее работу

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.