Вы здесь

Пьезоизлучатель в Ардуино (пьезодинамик, пьезозуммер и т.д.)

Пьезодинамик пьезозумер

При конструировании устройств различного назначения иногда требуется использовать звуковые сигналы, например, для оповещения какого-либо происшествия или события. Для этого очень удобно использовать пьезоизлучатели. Эти электронные устройства генерации звука достаточно компактны и при своих размерах воспроизводят сигналы достаточной громкости. Такие используют в электронных будильниках, детских игровых приставках и других устройств, где качество звучания не имеет большого значения, а компактность и простота управления играют наивысшую роль. Воспроизведение ведёться за счёт PWM, почитайте о PWM (ШИМ) в Ардуино подробнее.
Для управления пьезоизлучателем (пьезодинамиком) нам понадобится:
Само устройство вывода звука, Arduino Uno(или аналоги).
Подключаем по схеме (лучше не подключать напрямую, используйте модуль с пьезоизлучателем):
 Схема подключения пьезоизлучателя к Ардуино (пьезодинамик, пьезозумер и т.д.)
Для программирования используются функции:
tone(pin, frequency)
tone(pin, frequency, duration)

Воспроизведение заданной частоты на порту

Pin - Номер порта(PWM, в Arduino Uno 3,5,6,9,10,11)

Frequency - Частота

Duration - Время в миллисекундах

noTone(pin)

Остановка генерации заданной частоты на порту.
Для примера будем бесконечно играть определенные частоты, соответствующие (от c до C):

/*
 таблица различных частот:
  нота         частота
  c            261 Hz
  d            294 Hz
  e            329 Hz
  f            349 Hz
  g            392 Hz
  a            440 Hz
  b            493 Hz
  C            523 Hz
*/

#define speakPin 9 // 9 порт
#define tim 300    // задержка 300 миллисекунд

int tones[8] = { 261, 294, 329, 349, 392, 440, 493, 523 }; // частоты с; d; e; f; g; a; b; C;

void setup() {
  pinMode(speakPin, OUTPUT); // настраиваем вход на выход
}

void loop()
{

  for (int i = 0; i <= 7; i++) // создаём цикл для проигрывания нот от c до С
  {
    tone(speakPin, tones[i], tim);
  }

  for (int j = 7; j >= 0; j--) // создаём цикл для проигрывания нот от C до c
  {
    tone(speakPin, tones[j], tim);
  }

}