Пианино на Arduino

1. Введение

В этом проекте мы создадим музыкальные кнопки с использованием Arduino. Каждая кнопка будет воспроизводить определенную ноту через зуммер при нажатии.

2. Необходимые компоненты

  • Arduino Uno или Nano

  • 8 кнопок

  • Зуммер

  • Соединительные провода

  • Макетная плата (breadboard)

  • Резисторы (10 кОм для подтягивающих резисторов)

3. Подключение компонентов

Схема подключения:

  • Подключите один конец каждой кнопки к соответствующему цифровому пину на Arduino (от 2 до 9).

  • Подключите другой конец каждой кнопки к земле (GND) через резистор 10 кОм (подтягивающий резистор).

  • Подключите один из выводов зуммера к цифровому пину 13 на Arduino, другой вывод — к земле (GND).

Схема подключения пианино на Arduino

4. Cкетч проекта

int but1 = 2; // Пин для первой кнопки
int but2 = 3; // Пин для второй кнопки
int but3 = 4; // Пин для третьей кнопки
int but4 = 5; // Пин для четвертой кнопки
int but5 = 6; // Пин для пятой кнопки
int but6 = 7; // Пин для шестой кнопки
int but7 = 8; // Пин для седьмой кнопки
int but8 = 9; // Пин для восьмой кнопки
int buzzer = 13; // Пин для зуммера
void setup() {
  // Объявляем пины кнопок как входы
  pinMode(but1, INPUT);
  pinMode(but2, INPUT);
  pinMode(but3, INPUT);
  pinMode(but4, INPUT);
  pinMode(but5, INPUT);
  pinMode(but6, INPUT);
  pinMode(but7, INPUT);
  pinMode(but8, INPUT);
  // Объявляем пин зуммера как выход
  pinMode(buzzer, OUTPUT);
}
void loop() {
  // Читаем значения с кнопок
  int b1 = digitalRead(but1);
  int b2 = digitalRead(but2);
  int b3 = digitalRead(but3);
  int b4 = digitalRead(but4);
  int b5 = digitalRead(but5);
  int b6 = digitalRead(but6);
  int b7 = digitalRead(but7);
  int b8 = digitalRead(but8);
  // Если кнопка 1 нажата, воспроизводим ноту 300 Гц
  if (b1 == 1) {
    tone(buzzer, 300, 100);
  }
  // Если кнопка 2 нажата, воспроизводим ноту 400 Гц
  if (b2 == 1) {
    tone(buzzer, 400, 100);
  }
  // Если кнопка 3 нажата, воспроизводим ноту 500 Гц
  if (b3 == 1) {
    tone(buzzer, 500, 100);
  }
  // Если кнопка 4 нажата, воспроизводим ноту 600 Гц
  if (b4 == 1) {
    tone(buzzer, 600, 100);
  }
  // Если кнопка 5 нажата, воспроизводим ноту 700 Гц
  if (b5 == 1) {
    tone(buzzer, 700, 100);
  }
  // Если кнопка 6 нажата, воспроизводим ноту 800 Гц
  if (b6 == 1) {
    tone(buzzer, 800, 100);
  }
  // Если кнопка 7 нажата, воспроизводим ноту 900 Гц
  if (b7 == 1) {
    tone(buzzer, 900, 100);
  }
  // Если кнопка 8 нажата, воспроизводим ноту 1000 Гц
  if (b8 == 1) {
    tone(buzzer, 1000, 100);
  }
  // Небольшая задержка для плавного воспроизведения звуков
  delay(10);
}

5. Заключение

Этот проект демонстрирует основы работы с кнопками и зуммером на платформе Arduino. Вы научитесь подключать кнопки и зуммер, считывать состояния кнопок и воспроизводить звуки с использованием функции tone(). Проект можно расширить, добавив новые кнопки и ноты, или использовать его как основу для создания более сложных музыкальных инструментов на Arduino.