Пассивный пьезоэлектрический модуль зуммера KY-006 может генерировать различные звуковые тона в зависимости от частоты входного прямоугольного сигнала. Для создания однотональных звуков используйте активный зуммер KY-012.
Технические данные модуля KY-006
На этой небольшой плате установлены зуммер и 3-контактный разъем, из которых задействованы только 2, поскольку необходимы только сигнальный контакт, обозначенный символом S, и общий контакт, обозначенный символом —.
Рабочее напряжение | 3.5V ~ 5V постоянного тока |
Диапазон генерации тона | 1.5кГц ~ 2.5кГц |
Размер платы | 18.5мм x 15мм |
Вес | 2.4г |
Зуммер — это звуковой сигнализатор, который может быть механическим, электромеханическим или пьезоэлектрическим.
У активного зуммера есть встроенный внутренний генератор, поэтому для его работы требуется только подача постоянного напряжения.
У пассивного зуммера нет внутреннего генератор. Чтобы он излучал звук, необходимо подать на него прямоугольные импульсы с частотой приблизительно от 500Гц до 5кГц.
Схема подключения к Ардуино
Модуль KY-006 | Плата Arduino |
---|---|
Левый контакт (S) | Контакт 2 |
Средний контакт | Не используется |
Правый контакт (–) | GND |
- Подключите сигнал модуля (S) к контакту 2 на Arduino.
- Подключите землю (-) к GND на плате Arduino.
- Средний контакт модуля не используется.
Код для подключения модуля к Ардуино
Следующий скетч будет генерировать два разных тона, быстро включая и выключая зуммер на разных частотах с задержкой. Управляющий сигнал подключается к контакту 2 платы Ардуино (как показано на рисунке 2).
Прямоугольные импульсы будут формироваться следующим образом:
- Установка высокого уровня на выходе digitalWrite (buzzer, HIGH).
- Задержка функцией delay().
- Установка низкого уровня на выходе digitalWrite (buzzer, LOW).
Для первого тона частота приблизительно будет равна 500Гц (задержка 1 мс), для второго — около 250Гц (задержка 2 мс).
int buzzer = 2 ; // Определение контакта ардуины, к которой подключен зуммер void setup () { pinMode (buzzer, OUTPUT) ;// Инициализация контакта на выход } void loop () { unsigned char i; /* Бесконечный цикл */ while (1) { // В этой программе зуммер будет управляться 2 различными частотами. // Сигнал представляет из себя сигнал прямоугольной формы. // Частота будет определяться задержкой между включением и выключением. // Первый тон. Задержка 1мс. Частота приблизительно =500Гц for (i = 0; i <80; i++) { digitalWrite (buzzer, HIGH) ; delay (1) ; digitalWrite (buzzer, LOW) ; } delay (1) ; // Первый тон. Задержка 1мс. Частота приблизительно =250Гц for (i = 0; i <100; i++) { digitalWrite (buzzer, HIGH) ; delay (2) ; digitalWrite (buzzer, LOW) ; }
Еще один способ заставить зуммер издавать звук — использовать команду tone(), которая генерирует прямоугольную ШИМ-волну заданной частоты (с коэффициентом заполнения 50%) на выходе.
Третьим параметрам можно указать продолжительность генерации, иначе волна будет продолжаться до вызова команды noTone().
Одновременно может быть сгенерирован сигнал только на одном контакте платы Ардуино. Если звук уже выводится на другой вывод, вызов tone()
не будет иметь никакого эффекта.
Чтобы остановить генерацию прямоугольной волны, вызванной tone(), вы должны использовать команду noTone().
#define buzzerPin 3 // Контакт для подключения зуммера void setup() { pinMode(buzzerPin, OUTPUT); } void loop() { tone(buzzerPin, 500); // Выдает сигнал частотой 500 Гц delay (1000); // Задержка 1 секунда tone(buzzerPin, 1000); // Выдает сигнал частотой 1000 Гц delay (1000); // Задержка 1 секунда noTone(buzzerPin); // Останавливает генерацию ШИМ-волны delay(3000); // Тишина 3 секунды }