Регулятор громкости с помощью Arduino

В этом уроке вы узнаете, как настроить Arduino UNO для создания тональных сигналов через стандартные наушники, с регулятором громкости через потенциометр, с визуальным отображением громкости через ЖК-дисплей с кнопкой пауза/воспроизведение.

Шаг 1: Части, детали

На изображении показаны компоненты, используемые в этом уроке.

Итак, в уроке понадобятся:

  • макетная плата (прикреплена к акриловой базе на фотографии)
  • стандартные наушники
  • аналоговый потенциометр
  • 3,5 мм разъем
  • 16x2 ЖК дисплей с чипом I2c
  • кнопка
  • 10 Ом резистор (на фото над кнопкой)
  • Aruino UNO с разъемом USB
  • провода

Шаг 2: Примечание о пайке

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

  • потенциометр
  • 3,5 мм разъем
  • ЖК

Также на изображении выше можно заметить чип I2c на задней панели ЖК-дисплея. Обычно ЖК-интерфейс имеет 16 соединений. Одна из функций I2c состоит в том, чтобы уменьшить это число до 4. Там где сделаны паяные соединения.

Шаг 3: Питание и заземление

Начните с подсоединения питания и заземления к макетной плате с помощью проводов без пайки.

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

Шаг 4: Кнопка пауза/воспроизведение

На изображении кнопка располагается на двух половинах макета для того, чтобы оставить больше места. Резистор на 10 Ом подключается к заземляющей шине и другой стороной к кнопке.

Другой соединительный провод без пайки соединяет другую сторону кнопки с шиной питания.

Шаг 5: Подключение ЖК-дисплея

Чип Ic2 и Arduino оба помечены, чтобы помочь определить, где находятся соединения. SDA и SCL (синий и желтый) подключаются к ardunio в контактах, обозначенных одинаково.

GND и VCC заземлены и соответственно 5 В. Подключите их к земле и шине питания на макете.

Шаг 6: Подключение разъема 3,5 мм

Компонент на изображении имеет 3 вывода: два канала (справа и слева) и землю. В этом уроке создается только один канал аудио. Во время подготовки к уроку было непонятно способен ли ардуино контролировать два канала. В любом случае на изображении видно, что один вывод с разъема 3,5 мм остается несвязанным (в данном случае красный).

Одна из особенностей библиотеки управления звуком, используемой в этом примере, а также аппаратное обеспечение arduino, заключается в том, что pin 5 должен использоваться для вывода звука.

На изображении показан черный провод заземления с разъема 3,5 мм, подключенного к шине заземления макетной платы, и белый провод, подключенный к контакту 5.

Шаг 7: Подключение потенциометра

Потенциометр также имеет три провода. Единственное различие между внешними выводами - это высоко или низко. Если у вас были две идентичные настройки и были изменены внешние подключения потенциометра, единственное различие заключалось бы в том, что вам приходилось бы поворачивать ручку в противоположном направлении для увеличения или уменьшения громкости.

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

Средний контакт (белый провод на изображении) подключается к выходу ANALOG на Arduino Uno (A0 на изображении). Эти контакты интерпретируют аналоговый вход, а не цифровые сигналы, как и остальные ардуины.

Шаг 8: Код

К сожалению, нет возможности много комментировать код. Итоговый вариант получился после изучения большого количества рекомендаций.

Этот код использует определенные библиотеки. В уроке мы не касаемся установки библиотек (что довольно просто). Сами ссылки на библиотеки ниже:

github.com/connornishijima/arduino-volume1 // библиотека громкости

playground.arduino.cc/Main/I2cScanner // i2c

github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library // ЖК + i2c

Сам код:

I2c ЖК-дисплея имеет адрес, который является частью кода. Вышеуказанная ссылка «i2c address finder» - это программа arduino, которая, хотя и не используется в коде, как и другие библиотеки, возвращает адрес I2c в SERIAL MONITOR (серийный монитор).

Ниже на изображении показан раздел кода в который должен быть введен ЖК-адрес. В этом случае адрес равен 0x3F.

Шаг 9: Итог

Прикрепите наушники к разъему 3,5 мм обычным способом. Подключите arduino к компьютеру через USB-порт. Используя программное обеспечение arduino, установите библиотеки и загрузите код.

В этом уроке сохраняется элемент из кода примера arduino, который включает и выключает встроенный светодиод. Это было полезно в процессе проектирования, чтобы обеспечить обратную связь с функциями программы, в то время как компоненты этого не сделали.