Очень полезно иметь в конструкции какой-нибудь источник звука. Сам столкнулся с ситуацией, когда невозможно контролировать состояние оборудования по световой индикации — при запуске ракеты, находясь на некотором от нее расстоянии. А вот «пищалку» было хорошо слышно…
В качестве источника звука может выступать все что угодно, даже мотор… Но по своим габаритным и электрическим параметрам хорошо подходят пьезоизлучатели.
Пьезоизлучатель звука (англ. buzzer) переводит переменное напряжение в колебание мембраны, которая в свою очередь создаёт звуковую волну.
Иначе говоря, пьезодинамик — это конденсатор, который звучит при зарядке и разрядке.
Поведение
Если подаваемое напряжение больше внутреннего накопленного, конденсатор будет заряжаться.
Если внешнее напряжение меньше внутреннего, конденсатор будет отдавать заряд.
Время заряда и разряда
Для связывания уровня заряда конденсатора с временем используют понятие «постоянной времени» T = RC,
За T секунд конденсатор заряжается или разряжается на 63%
За 5×T секунд конденсатор заряжается или разряжается на 99%
Если резистора в схеме нет, его роль исполняет паразитное сопротивление проводов, разъёмов, дорожек, составляющее доли Ома
Пьезодинамик можно подключать прямо к микроконтроллеру.
Основные характеристики
| Рекомендуемое (номинальное) напряжение | V | Вольт |
| Громкость (на заданном расстоянии) | P | Децибелл |
| Пиковая частота | fP | Герц |
| Ёмкость | C | Фарад |
Амплитудно-частотная характеристика
Амплитудно-частотная характеристика (АЧХ) определяет громкость звука в зависимости от частоты управляющего сигнала, который и определяет высоту звучащей ноты
Идеальная АЧХ — это прямая, т.е. одинаковая громкость вне зависимости от частоты. Но мир не идеален и разные виды излучателей имеют разные отклонения от идеала.
int speakerPin = 12; void setup() { pinMode(speakerPin, OUTPUT); } void loop() { tone(speakerPin, 440); delay(500); noTone(speakerPin); delay(500); }
В скетче примера пьезоизлучатель подключен к пину 12 непосредственно. Функция tone включает сигнал указанной частоты на выбранном пине; noTone() — его выключает.
Про упомянутые функции подробно рассказано тут.
По материалам курса робототехники.
PS Как правило пьезоизлучатели имеют максимум излучения в очень небольшом диапазоне в районе 4-5 КГц, поэтому нота «ля» будет в приводимом скетче звучать не очень громко 🙂