Стерео измеритель уровня звука на Arduino и светодиодных кольцах от NeoPixel

В данной статье мы рассмотрим создание стерео измерителя уровня звука (stereo VU meter) на основе платы Arduino и светодиодных лентах (кольцах) от компании NeoPixel.

Внешний вид стерео измерителя уровня звука на Arduino и светодиодных кольцах от NeoPixel

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

  1. Плата Arduino Nano (купить на AliExpress).
  2. Adafruit NeoPixel Ring: WS2812 5050 RGB LED (кольцо из светодиодов) – 2 шт. (купить на AliExpress).
  3. Потенциометр – 2 шт. (купить на AliExpress).
  4. Кнопка.
  5. Резисторы 10 кОм и 470 Ом (купить на AliExpress).
  6. Конденсатор 1 мкФ 6,3 В (купить на AliExpress).
  7. Макетная плата.
  8. Соединительные провода.

Основная идея проекта

В интернете можно найти достаточно много различных проектов измерителей уровня звука (в том числе и на нашем сайте рассматривался подобный проект), но приведенный здесь проект измерителя уровня является одним из самых "красивых" и наглядных, в связи с чем он стал одним из самых популярных в этой тематике – в связи с этим я и решил перевести его на наш сайт. Статья является переводом проекта, размещенного в сборнике проектов официального сайта Arduino, ссылка на ее первоисточник приведена в самом конце данной статьи. Автор проекта данного измерителя звука сделал за прошедшие несколько лет несколько модификаций своего творения, в этой статье я приведу схемы и коды программ только для двух самых популярных модификаций данного проекта, с большим количеством модификаций (к каждой приведено видео) вы можете ознакомиться в первоисточнике статьи.

Схема проекта

Схема стерео измерителя уровня звука на Arduino и светодиодных лентах от 05.11.2017 представлена на следующем рисунке.

Схема стерео измерителя уровня звука на Arduino и светодиодных лентах от 05.11.2017Схема стерео измерителя уровня звука на Arduino и светодиодных лентах от 02.02.2018 представлена на следующем рисунке.

Схема стерео измерителя уровня звука на Arduino и светодиодных лентах от 02.02.2018Внешний вид собранной конструкции измерителя уровня звука (вид спереди и сзади) показан на следующих рисунках.

Внешний вид собранной конструкции измерителя уровня звука (вид спереди)

Внешний вид собранной конструкции измерителя уровня звука (вид сзади)

Объяснение работы стерео измерителя уровня звука

Принцип работы проекта наглядно показан на следующем видео.

Автор данного проекта сначала тестировал работу измерителя уровня звука с помощью ЖК дисплея, потом с помощью 2-х светодиодных матриц, затем с помощью светодиодной ленты и только после этого он пришел к идее использования двух светодиодных колец, которые сделали его проект максимально выделяющимся и наглядным на фоне других проектов измерителей уровня звука, которые можно найти в сети. Также автор тестировал свой проект как с микрофоном, так и и без него - все это вы можете подробно посмотреть на официальной странице данного проекта (ссылка на нее внизу статьи).

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

  • поддержку стерео;
  • переключаемая функция хранения максимумов с опцией "падения вниз" ('falling down');
  • настраиваемая чувствительность;
  • настраиваемая яркость свечения светодиодов;
  • можно использовать одну светодиодную ленту для отображения левого и правого каналов или два светодиодных кольца (по одному на каждый канал);
  • функция медленного "падения вниз" ('falling down') светодиодов;
  • переменные, которые можно использовать для поддержки любого числа светодиодов и другой возможной кастомизации измерителя уровня звука.

Для работы кода программы вам потребуется библиотека Adafruit_NeoPixel, которую можно скачать по следующей ссылке.

Добавление микрофона вместо линейного ввода

Автор проекта также тестировал свой измеритель уровня звука с модулем микрофона вместо линейного ввода. Схема соединений аналогична использованию линейного ввода: выход микрофона подключается к аналоговому контакту A0 платы Arduino (также необходимо подключить контакты VCC и ground микрофона).

В скетч при подключении модуля микрофона не нужно вносить никаких изменений, хотя могут потребоваться небольшие изменения в настройках чувствительности. Более подробно работа данного варианта проекта показана в следующем видео:

Исходный код программы (скетча)

Скетч для версии проекта 05.11.2017

Скетч для версии проекта 02.02.2018