Arduino:Примеры/Мини пианино
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Мини пианино
Данный пример демонтирует построение небольшого пианино. При нажатии на одну из 5-ти кнопок будет воспроизводится одна из нот, пока вы не отпустите кнопку.
Необходимые компоненты
- Плата Arduino;
- Резистор 150 Ом;
- Резисторы 10 кОм, 5 шт;
- Кнопки 5 шт.;
- Переменный резистор 10 кОм;
- Динамик;
- Макетная плата;
- Провода-перемычки;
- Провода с крокодилами;
Монтажная схема
Соберите схему согласно монтажной схеме.
При подключении динамика к выводам Arduino необходимо использовать токоограничивающие резисторы. Каждый вывод Arduino может выдать ток не более 40 мА (0,04 А). Воспользовавшись законом Ома, вычислим минимальное сопротивление токоограничивающего резистора:
- U = I * R;
- R = U / I = 5 / 0,04 = 125 Ом;
Но т.к. динамик имеет также сопротивление(обмотка провода катушки электромагнита), для примера возьмем 8 Ом, то получим минимальное сопротивление токоограничивающего резистора равным:
- R = 125 - 8 = 117 Ом;
Ближайший номинал резистора равен 150 Ом, его и будем использовать в нашей схеме.
Чтобы регулировать громкость звучания мелодии, воспользуемся переменным резистором на 10 кОм, включив его последовательно с подобранным токоограничивающим резистором. Обратите внимание, что мы используем только крайний и средний вывод потенциометра. Крайний вывод соединен с токоограничивающим резистором, а средний с одним из выводов динамика.
При повороте ручки потенциометра громкость воспроизведения будет изменяться вследствие изменения сопротивления цепи.
Код
#define NOTE_C 262 // частота в Гц
#define NOTE_D 294 // частота в Гц
#define NOTE_E 330 // частота в Гц
#define NOTE_G 392 // частота в Гц
#define NOTE_A 440 // частота в Гц
#define SPEAKER 9 // к 9-му выводу подключаем динамик
#define BUTTON_C 7 // к 7-му выводу подключаем кнопку
#define BUTTON_D 6 // к 6-му выводу подключаем кнопку
#define BUTTON_E 5 // к 5-му выводу подключаем кнопку
#define BUTTON_G 4 // к 4-му выводу подключаем кнопку
#define BUTTON_A 3 // к 3-му выводу подключаем кнопку
void setup()
{
// Не требуется настройки
// функция tone() установит выводы как выходы
}
void loop()
{
while (digitalRead(BUTTON_C))
tone(SPEAKER, NOTE_C);
while(digitalRead(BUTTON_D))
tone(SPEAKER, NOTE_D);
while(digitalRead(BUTTON_E))
tone(SPEAKER, NOTE_E);
while(digitalRead(BUTTON_G))
tone(SPEAKER, NOTE_G);
while(digitalRead(BUTTON_A))
tone(SPEAKER, NOTE_A);
// Прекращаем воспроизведение, если все кнопки были отпущены
noTone(SPEAKER);
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino