Шумомер на ардуино нано

Nano Sensor Shield

Описание

Контроллеры Arduinо Nano и их аналоги имеют компактные размеры и нашли широкое применение в проектах, где важны размеры. Однако, подключение периферии к таким контроллерам всегда затруднительно. На помощь приходит Nano Sensor Shield.

Nano Sensor Shield имеет функционал, аналогичный классическим Sensor Shield для контроллеров Arduino Uno и Arduino Mega и позволяет подключать большое количество датчиков и модулей с помощью трехпроводных шлейфов (S, +, -). С помощью платы можно одновременно подключить до 8 аналоговых и до 12 цифровых устройств. Также дополнительные выводы на плате позволяют подключать устройства, работающие по интерфейсам I2C, UART и SPI.

Nano Sensor Shield полностью совместим с контроллерами Arduino Nano и Smart Nano. Также шилд можно ограниченно использовать с контроллерами Arduino Pro Mini (только 5 В, 16 мГц), при этом данной плате будут соответствовать только цифровые выводы D2-D9 включительно и вывод шины UART. Также Arduino Pro Mini использует выводы D10-D13 и A0-A3.

Для крепления Nano Sensor Shield по углам платы предусмотрены 4 отверстия под винт М3.

Технические характеристики

Физические размеры

Примеры подключения и использования

Шумомер

Шаг 0. Описание задачи

Сделаем шумомер на основе датчика звука и модуля адресных светодиодов. Чем громче звук, тем больше загорается светодиодов (от 1 до 4), причем цвета светодиодов будут меняться: первый — зелёный, второй — жёлто-зелёный, третий — жёлтый, четвертый — красный.

Для этого нам потребуется следующее:

Что нужно Кол-во, шт
Контроллер Smart Nano 1
Nano Sensor Shield 1
Модуль адресных светодиодов (х4) 1
Датчик звука 1
Шлейф x3 2

Шаг 1. Соберите комплектующие по схеме

Схема сборки:

Шаг 2. Загрузите на контроллер код

Не забывайте выбирать в Arduino IDE контроллер Nano.

Шаг 3. Результат

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

Подсчёт количества хлопков

Шаг 0. Описание задачи

Реализуем устройство, которое подсчитывает количество хлопков в ладоши. После подсчёта количество хлопков выводится на дисплей. Каждый последующий хлопок нужно сделать не позже чем через секунду от предыдущего (это время можно изменить если нужно).

Для этого нам потребуется следующее:

Что нужно Кол-во, шт
Контроллер Smart Nano 1
Nano Sensor Shield 1
Модуль 4-разрядного индикатора 1
Датчик звука 1
Шлейф x3 2
Провод мама-мама 1

Шаг 1. Соберите комплектующие по схеме

Схема сборки:

Шаг 2. Загрузите на контроллер код

Не забывайте выбирать в Arduino IDE контроллер Nano.

Шаг 3. Результат

Производите хлопки (хлопайте в ладоши) и наблюдайте как подсчитанное количество хлопков выводится на дисплей.

© 2014-2022 УмныеЭлементы — DIY-электроника Arduino, компоненты для робототехники и электронных устройств. «УмныеЭлементы» (SmartElements) является зарегистрированным товарным знаком. Любое воспроизведение товарного знака допускается только с согласия правообладателя.

Источник

Проект 6. Детектор шума

Устройство считывает уровень шума и показывает график изменения звука.

Описание работы:

Для начала работы подключите питание к Arduino. На дисплее будет показываться график уровня звука, который изменяется слева направо . Так же появляется риска, которая может двигаться сверху вниз. Изменение положения риски зависит от потенциометра. Изменение значение потенциометра регулирует предельное значение уровня звука. При увеличении значения потенциометра, риска будет двигать вверх, при уменьшении — вниз. Если уровень шума окружающей среды больше заданного предельного значения на потенциометре, то загорится светодиод.

Нам понадобится:

  • Arduino Uno х 1шт.
  • Trema Set Shield х 1шт.
  • Trema-модуль потенциометр х 1шт.
  • Trema-модуль светодиод х 1шт.
  • Trema OLED-дисплей 128×64 х 1шт.
  • Trema-модуль датчик звука х 1шт.

Для реализации проекта нам необходимо установить следующую библиотеку:

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE .

Схема сборки:

  • Устанавливаем Trema Set Shield в Arduino Uno.
  • Устанавливаем Trema-модуль потенциометр в 2 посадочную площадку.

  • Устанавливаем Trema OLED-дисплей 128×64 в 1 посадочную площадку, в верхнюю I2C колодку.

  • Устанавливаем в 6 посадочную площадку.

  • Полученные результат представлен ниже на рисунке.

Код программы:

Алгоритм работы:

В начале скетча (до кода setup) выполняются следующие действия:

  • Подключаем библиотеку iarduino_OLED для работы с Trema OLED-дисплей 128×64.
  • Объявляем объект myLED, с указанием адреса дисплея на шине I2C.
  • Объявляем пины для работы с Trema-модуль датчик звука, Trema-модуль светодиод, Trema-модуль потенциометр.
  • Объявляем массив и переменные задействованные в программе.

В коде setup выполняются следующие действия:

  • Инициируем работу с дисплеем. Запрещаем автоматический вывод данных.
  • Переводим вывод Arduino для светодиода в режим выхода.

В коде loop выполняются следующие действия:

  • Стираем график звука.
  • Считываем показания датчика и аппроксимируем полученные значения по формуле.
  • Сдвигаем массив данных.
  • Отрисовываем новый график.
  • Проверяем изменилось положение риски, если изменилось, то выводим риску на дисплей, стираем предыдущее положение риски.
  • Проверяем превышает уровень звука на датчики предельный уровень потенциометра . Если превышает, то горит светодиод.

Особенность:

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

Источник

Измерение уровня звука (шума) в децибелах с помощью Arduino и микрофона

Так называемое шумовое загрязнение становится все более актуальной проблемой в современном обществе в связи со все возрастающей плотностью населения. Обычное человеческое ухо способно воспринимать звуки с уровнем от 0 до 140 дБ. Громкость (уровень) звука обычно измеряют в децибелах (дБ). Современной промышленостью изготавливаются разнообразные измерители громкости звука, но они в большинстве случаев достаточно дороги. Поэтому в данной статье мы рассмотрим создание простого измерителя уровня звука (шума) на основе платы Arduino и обычного электретного конденсаторного микрофона. Измеряемый уровень звука мы будем показывать в децибелах (дБ).

В схеме нашего измерителя уровня звука мы также будем использовать усилитель, с выхода которого усиленный сигнал будет подаваться в плату Arduino, в которой мы будем использовать регрессионный метод для расчета уровня звука в децибелах. Чтобы проверить корректность работы нашего измерителя звука мы будем использовать android приложение, которое называется “Sound Meter”. Отметим, что целью нашего проекта не является абсолютно точное измерение громкости звука (мы ведь используем самые дешевые компоненты в нашем проекте), а получение значений, максимально близких к истинным.

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Конденсаторный микрофон (купить на AliExpress).
  3. Микросхема LM386 (купить на AliExpress).
  4. Резисторы (купить на AliExpress) и конденсаторы.

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

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

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

Коэффициент усиления используемого нами операционного усилителя LM386 может составлять от 20 до 200 в зависимости от номинала конденсатора или резистора, подключенного к его контактам 1 и 8. Если их не использовать совсем, то коэффициент усиления будет составлять минимальную величину – 20. Мы в нашем проекте использовали максимальный коэффициент усиления данного усилителя, поэтому мы включили конденсатор емкостью 10 мкФ между контактами 1 и 8 – учтите, что эти контакты чувствительны к полярности, поэтому отрицательный вывод конденсатора должен быть подключен к контакту 8 усилителя. Вся схема усилителя запитывается от контакта 5V платы Arduino.

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

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Использование регрессионного метода для расчета уровня звука в децибелах

Когда аппаратная часть нашего проекта будет готова, мы можем подключить плату Arduino к компьютеру и загрузить в нее код примера “Analog Read Serial” из Arduino IDE чтобы проверить действительно ли мы получаем корректные значения АЦП (аналого-цифрового преобразования) с нашего микрофона. Но нам эти значения необходимо преобразовать в децибелы (дБ).

В отличие, к примеру, от задач измерения температуры и влажности, измерение уровня звука в децибелах не является линейной задачей поскольку значения уровня звука в децибелах имеют нелинейную зависимость от имеющихся у нас значений АЦП с выхода аналогового контакта Arduino. Существует несколько способов решения данной задачи, но мы выбрали один из самых простых.

Поскольку мы не преследуем цели получения максимальной точности результатов мы решили использовать метод непосредственной калибровки значений АЦП с помощью значений децибелов. Для этого в идеале необходимо иметь профессиональный измеритель уровня шума (SPL meter), но вряд ли у кого из начинающих радиолюбителей он есть, поэтому мы будем использовать для этой цели обычное android приложение под названием “ Sound meter ”, которое можно бесплатно скачать из play store. Существует множество других аналогичных приложений – вы можете использовать любое из них. Все эти приложения имеют примерно одинаковый принцип действия – они используют встроенный в смартфон микрофон для измерения уровня шума, который они затем отображают на экране смартфона. Они не отличаются высоким уровнем точности, но для решения нашей задачи они вполне подойдут.

Скачайте приложение “Sound meter”, после его установки и запуска вы на экране смартфона увидите примерно следующую картину:

Как мы уже говорили, зависимость между имеющимися у нас значениями с выхода АЦП и требуемыми значениями уровня звука в децибелах нелинейная, поэтому нам необходимо сравнить эти значения на различных интервалах. Запишите несколько значений с выхода АЦП и соответствующие им значения в децибелах с вашего смартфона. Мы для примера взяли/сравнили 10 значений и у нас получились цифры, приведенные в следующей таблице (у вас могут получиться немного другие цифры).

Откроем страницу Excel и запишем туда эти значения. В Excel нам необходимо найти значения коэффициентов регрессии для записанных значений. Для облегчения этой задачи давайте сначала построим графики этих значений.

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

В Excel у нас есть плагин для анализа данных, который может автоматически рассчитать нам необходимое уравнение регрессии. Если вы не знаете как это делать, то вы легко можете найти эту информацию в сети интернет – это нецелесообразно включать в текст данной статьи поскольку этой информации в сети и так слишком много. Когда вы рассчитаете уравнение регрессии, Excel нам выдаст ряд данных, показанных на следующих рисунках. Нас будут интересовать данные, обведенные красной линией на представленных рисунках.

На основании этих чисел мы можем записать следующее уравнение:

ADC = (11.003* dB) – 83.2073

В этом уравнении ADC обозначает данные АЦП.

Из этого уравнения мы можем получить нужное нам выражение для расчета децибел на основании данных АЦП:

dB = (ADC+83.2073) / 11.003

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

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В программе мы будем считывать значения АЦП с контакта A0 и преобразовывать их в децибелы с помощью уравнения, которое мы получили в предыдущем пункте статьи. Это значение децибел, как мы уже говорили, не будет абсолютно точным, но оно будет достаточно близким к своему истинному значению.

Источник

Adblock
detector