Оглавление:
- Шаг 1. Используемые компоненты
- Шаг 2: Последователь конверта
- Шаг 3: ШИМ для аналогового измерителя
- Шаг 4: Калибровка микрофона
- Шаг 5. Приложение для Android
- Шаг 6: Резюме
Видео: Аналоговый измеритель уровня громкости с поддержкой Bluetooth: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Это был мой проект для одного из моих университетских классов под названием SMP. Поскольку мы использовали отладочную плату STM32F103RB, я основал свой проект на этом, начав с простого измерителя уровня громкости. Затем я добавил некоторые дополнительные функции, такие как поддержка Bluetooth, для передачи значений из АЦП в приложение Android, чтобы создать простую диаграмму в дБ.
Шаг 1. Используемые компоненты
- Совет по развитию STM32F103RB
- Модуль bluetooth HC-05 zs040
- Панель аналогового измерителя VU (ссылка)
- Электретный микрофон
- Счетверенный операционный усилитель LM324N
- 2 транзистора TIP120
- 3 диода 1N4148
- Различные конденсаторы и резисторы
Хотя вы можете отключить эту схему от шины 5 В на плате, я также использовал внешний источник питания 5 В.
Шаг 2: Последователь конверта
Основным элементом этой конструкции является повторитель огибающей, который принимает сигнал от электретного микрофона и выдает напряжение, пропорциональное амплитуде сигнала микрофона.
Необработанный сигнал с микрофона сначала проходит через усилитель с коэффициентом усиления 150.
Затем сигнал проходит через фактический повторитель огибающей, который должен выводить только положительные части сигнала.
Последняя часть вычитает напряжение смещения 1,65 В из выхода повторителя огибающей, чтобы обеспечить сигнал 0 В для отсутствия звука, 1,65 В для среднего звука и 3,3 В для громкого звука, который должен быть совместим со встроенным АЦП платы.
Этот последователь конверта реализован из этого замечательного ответа StackExchange.
Шаг 3: ШИМ для аналогового измерителя
Чтобы стрелка датчика работала, я настроил таймер TIM4 на плате микроконтроллера с частотой около 500 Гц.
Последовательно пробуя разные рабочие циклы, я установил некоторые значения, которых было достаточно, чтобы стрелка сместилась от 0 до 100.
Я подробно расскажу о процессе отображения точного значения на следующем шаге, применив некоторые математические вычисления.
Шаг 4: Калибровка микрофона
Закончив работу с повторителем огибающей, я написал простой код для использования АЦП и убедился, что считываемое значение действительно изменяется в соответствии с громкостью внутри комнаты.
Чтобы «перевести» это значение в фактическое значение в дБ, я использовал онлайн-генератор тонального сигнала с частотой 550 Гц и мой Android-устройство для получения эталонного значения.
Я нанес эти значения на график и использовал инструмент MatLAB Curve Fit Tool, чтобы получить функцию, которая сопоставляет показания АЦП с фактическими приближениями уровней дБ (или, по крайней мере, достаточно близкими к показаниям моего телефона).
Мы видим, что это соответствует логарифмической шкале микрофона.
Я также сделал то же самое, чтобы сопоставить положение иглы со значениями ШИМ. Я собрал эти значения, последовательно увеличивая значение ШИМ на 10 до тех пор, пока на его шкале не появится необходимость.
Комбинируя эти две функции, я получил простой способ отображать показания АЦП на фактическое значение на индикаторе манометра.
Шаг 5. Приложение для Android
Приложение использует эту классную библиотеку для связи через последовательный порт Bluetooth для обмена байтовой информацией.
Основное предостережение этой системы заключается в том, что максимальная длина слова, отправляемого по Bluetooth, составляет 8 бит, а значение АЦП представлено как 12 бит. Чтобы решить эту проблему, я разделил одно значение АЦП на 2 отдельных 6-битных значения (MSB и LSB), а оставшиеся 2 бита использовались для идентификации типа сообщения (MSB, LSB, CHK).
Поэтому для одного значения АЦП, которое мы хотим транслировать, мы разделяем фактическое значение на 2 сообщения. Чтобы проверить целостность этих сообщений, я отправил третье сообщение с XOR первых двух сообщений.
После проверки целостности значения мы можем применить ту же функцию, чтобы получить уровень в дБ и нанести его на нашу живую диаграмму.
Шаг 6: Резюме
Хотя в этом проекте часть микроконтроллера работает довольно хорошо, отображая громкость внутри комнаты, я столкнулся с некоторыми проблемами при отправке данных по Bluetooth из-за потери пакетов.
Исходный код этого проекта можно найти здесь:
- Сопутствующее приложение для Android - репо
- Код микроконтроллера - репо
Не стесняйтесь вносить свой вклад, если вы сочтете это полезным.
Рекомендуемые:
Простой измеритель уровня громкости с 20 светодиодами с использованием LM3915: 6 шагов
Простой измеритель уровня громкости с 20 светодиодами с использованием LM3915: Идея создания измерителя уровня громкости была в моем списке проектов долгое время. И, наконец, я могу сделать это сейчас. VU-метр - это схема для индикатора силы аудиосигнала. Цепь измерителя уровня громкости обычно применяется к цепи усилителя, чтобы
Измеритель уровня громкости с использованием микросхемы 3915 IC: 14 шагов
VU Meter с использованием микросхемы 3915 IC: Привет друг, сегодня я собираюсь сделать схему VU Meter Meter, которая будет показывать уровень звука на светодиодах. В этом VU Meter я буду использовать 10 светодиодов
Как сделать измеритель уровня громкости на транзисторе: 10 шагов
Как сделать измеритель VU с использованием транзистора: Привет друг, сегодня я собираюсь сделать схему измерителя VU, используя только один транзистор. В этом измерителе VU я буду использовать транзистор 2N2222A. Этот измеритель VU не очень хорош по сравнению с измерителем VU IC 3915. Давайте заявим
Светодиодный измеритель уровня громкости с Arduino UNO: 7 шагов (с изображениями)
Светодиодный измеритель уровня громкости с Arduino UNO: измеритель единицы громкости (VU) или стандартный индикатор громкости (SVI) - это устройство, отображающее уровень сигнала в звуковом оборудовании. В этом проекте я использовал светодиоды, чтобы указать, насколько интенсивен звуковой сигнал. Когда интенсивность звука i
Портативный измеритель уровня громкости с питанием от аккумулятора: 9 шагов (с изображениями)
Портативный измеритель уровня громкости с питанием от батареи: Ниже приведены инструкции по созданию портативного измерителя уровня с питанием от батареи, а также подробные инструкции по созданию печатной платы, необходимой для завершения этого проекта. Он был разработан для освещения от 0 до 10 светодиодов в зависимости от окружающей среды