KY-006 модуль с пассивным звуковым излучателем. Подключение к Arduino.

Сегодня в уроке рассмотрим очередной модуль из набора «37 in 1 Sensors Kit for Arduino». Модуль KY-006 с пассивным звуковым излучателем, широко применяется в Arduino проектах для подачи звуковых сигналов. Это связано с небольшим размером излучателя и простотой подключения. Код для подачи звукового сигнала также достаточно простой и не требует установки дополнительных библиотек.

Технические характеристики модуля KY-006.

Технические характеристики модуля KY-006.

Модуль зуммера KY-006 состоит из пассивного пьезоэлектрического зуммера, он может генерировать тональные сигналы от 1,5 до 2,5 кГц, включая и выключая его на разных частотах с использованием задержек или ШИМ.

Модуль расположен на плате с тремя выводами. Обозначение выводов:

  • Крайний вывод с меткой «-» –> GNG
  • Средний вывод без метки –> не используется
  • Крайний вывод с меткой «S» –> Данные

Будьте внимательны, у меня маркировка отличается, вместо обозначения «S» написано «+». Но подключение не отличается. Видать на производстве перепутали и поставили не тот символ.

Схема модуля KY-006.

Схема модуля KY-006.

Характеристики:

  • Ток: 10мА
  • Рабочее напряжение: 1,5 ~ 15 В постоянного тока
  • Диапазон генерации тона: 1,5 ~ 2,5 кГц
  • Размеры 18,5 x 15 мм

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

Подключите сигнал (S) к контакту 8 на Arduino, а землю (-) к GND. Средний контакт на модуле не используется.

Схема подключения к Arduino UNO KY-006.

Схема подключения к Arduino UNO KY-006.

Схема подключения к Arduino NANO KY-006.

Схема подключения к Arduino NANO KY-006.

Пример кода (скетч) для «KY-006» и Arduino.

Следующий скетч Arduino будет генерировать два разных тона, путем включения и выключения зуммера KY-006 на разных частотах, с использованием задержки.

// Демонстрация роботы модуля KY-006 
// https://arduino-tex.ru/ 
// Номер пина на плате к которому  
// будет подключен пассивного пьезоизлучателя  
int PinBuzzer = 8;

void setup ()
  {
    //Настройка вывода платы в режим "Выход"
    pinMode (PinBuzzer, OUTPUT);
  }
void loop ()
  {
    // Выдаем звук: Тембр 1
 for(int i = 0; i <100; i++)
      {
        // Выдать звук 
        digitalWrite(PinBuzzer, HIGH);
        delay(1);
        
        // Пауза
        digitalWrite(PinBuzzer, LOW);
        delay(1);
      }
    
    // Выдаем звук: Тембр 2
    for(int i = 0; i <100; i++)
      {
        // Выдать звук
        digitalWrite(PinBuzzer, HIGH);
        delay(2);
        
        // Пауза
        digitalWrite(PinBuzzer, LOW);
        delay(2);
      }
  }

Данный пример наглядно показывает, как генерируется звуковой сигнал, но на практике не применим, так как можно использовать функцию Arduino tone(), которая позволяет генерировать звуковой сигнал, определенной частоты.

Описание функции tone().

Функция генерирует, на выводе, прямоугольный сигнал заданной частоты (с коэффициентом заполнения 50%). Функция также позволяет задавать длительность сигнала. Однако, если длительность сигнала не указана, то он будет генерироваться до тех пор, пока не будет вызвана функция noTone(). Для воспроизведения звука вывод можно подключить к зуммеру или динамику.

В каждый момент времени может генерироваться только один сигнал заданной частоты. Если сигнал уже генерируется на каком-либо выводе, то использование функции tone() для этого вывода просто приведет к изменению частоты этого сигнала. В то же время, вызов функции tone() для другого вывода не будет иметь никакого эффекта.

Использование функции tone() может влиять на ШИМ-сигнал на выводах 3 и 11 (на всех платах, кроме Mega).

ПРИМЕЧАНИЕ: для воспроизведения разных звуков на нескольких выводах, необходимо сперва вызвать noTone() на одном выводе, и только после этого использовать функцию tone() на следующем.

Плюсы и минусы функции tone() рассмотрели, пришло время написать код генерирования сигнала.

// Демонстрация роботы модуля KY-006 
// https://arduino-tex.ru/ 
// Номер пина на плате к которому  
// будет подключен пассивного пьезоизлучателя  
int PinBuzzer = 8;

void setup ()
  {
    //Настройка вывода платы в режим "Выход"
    pinMode (PinBuzzer, OUTPUT);
    tone(PinBuzzer, 1500); // включаем звук частотой 1500 Гц
      delay(200);
      tone(PinBuzzer, 1000); // включаем звук частотой 1000 Гц
      delay(200);
      tone(PinBuzzer, 500); // включаем звук частотой 500 Гц
      delay(200);

    noTone(PinBuzzer); // выключаем звук
    delay(2000);
  }
void loop ()
  { 
      tone(PinBuzzer, 1500); // включаем звук частотой 100 Гц
      delay(200);
      tone(PinBuzzer, 1000); // включаем звук частотой 100 Гц
      delay(200);
      tone(PinBuzzer, 500); // включаем звук частотой 100 Гц
      delay(200);
      noTone(PinBuzzer); // выключаем звук
      delay(2000);
  }

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

    tone(PinBuzzer, 1500); // включаем звук частотой 1500 Гц
      delay(200);
      tone(PinBuzzer, 1000); // включаем звук частотой 1000 Гц
      delay(200);
      tone(PinBuzzer, 500); // включаем звук частотой 500 Гц
      delay(200);

    noTone(PinBuzzer); // выключаем звук

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

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

В своих проектах пассивный звуковой излучатель использовал в проекте, который собирал вместе с сыном: «Часы-будильник на Arduino». Корпус сделан из конструктора LEGO.

Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.

Понравился Урок KY-006 модуль с пассивным звуковым излучателем? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Пример кода (скетч) для KY-006 и Arduino. Пример кода (скетч) для KY-006 и Arduino..ino2 Kb 574 Скачать

Комментарии

Ваше Имя*



Cлучайные товары

Цифровой акселерометр ADXL345Цифровой акселерометр ADXL345


AliExpress
AliExpress

Модуль освещенностиМодуль освещенности


AliExpress
AliExpress

Читайте также

Мы в соц сетях

Подпишись на канал Telegram
Разработка проектов