6 Эксперимент с Бузером

«Бузер» (от английского слова «buzzer») обычно обозначает устройство, которое издает звуковой сигнал или предупреждение. Вот несколько основных контекстов, в которых может использоваться «buzzer»:

  • Игровые и спортивные устройства: Бузер часто используется в играх, таких как викторины или спортивные соревнования, чтобы показать, когда кто-то дал ответ или когда время вышло. Например, в баскетболе бузер может прозвенеть по завершении игры.
  • Школа и образование: В школьной или учебной среде бузер может использоваться для ответов или викторин, где учащиеся нажимают кнопку, чтобы дать свой ответ.
  • Кулинария: Бузер может быть устройством, которое издает звуковой сигнал, чтобы предупредить людей о завершении готовки или выпекания, например, в духовке или микроволновой печи.
  • Сигнализация или тревога: Бузер используется также в сигнализациях для предупреждения людей об опасности, например, в системах пожарной безопасности или охранных системах.

Примеры использования бузеров:

  • Игровой Бузер: «Вопрос, на который кто-то должен ответить, издается через бузер».
  • Кулинарный Бузер: «Когда торт готов, духовка издает сигнал через бузер, чтобы предупредить, что время пришло».
  • Охранная система: «Тревога издает сигнал, если обнаружено вторжение».

Резюме:

Бузер — это полезное и универсальное устройство, которое помогает уведомлять людей о различных событиях. Если у вас есть более специфический контекст, в котором используется бузер, сообщите, и я дам дополнительную информацию!

Пассивный пьезоэлектрический звуковой излучатель (бузер) на 5 В.

Компоненты:

Схема:


// Воспроизведение мелодий.

// Команда Arduino tone() — частота нот.

// Ноты:

// частота ноты

// c 262 Гц

// d 294 Гц

// e 330 Гц

// f 349 Гц

// g 392 Гц

// a 440 Гц

// b 494 Гц

// C 523 Гц

const int buzzerPin = 9; // Пин для подключения бузера

// длина мелодии — сумма всех нот и пауз

const int songLength = 18;

char notes[] = «cdfda ag cdfdg gf «; // символы — это ноты, пробел — пауза

// Настройка ритма

int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};

// «темп» скорость мелодии. Чем меньше tempo, тем быстрее скорость.

int tempo = 150;

Код:

void setup() 

{

  pinMode(buzzerPin, OUTPUT);

}

void loop() 

{

  int i, duration;

  for (i = 0; i < songLength; i++)

  {

    duration = beats[i] * tempo; 

    if (notes[i] == ' ')          // kui noot puudub

    {

      delay(duration);          

    }

    else                         

    {

      tone(buzzerPin, frequency(notes[i]), duration);

      delay(duration);          

    }

    delay(tempo/10);              // väike paus nootide vahel

  }

  while(true){}

}

int frequency(char note) 

{

  int i;

  const int numNotes = 8;  // nootide kogus

  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };

  int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523};

  // kui noot on olemas, siis tagastame selle tiheduse 

  for (i = 0; i < numNotes; i++)  

  {

    if (names[i] == note)       

    {

      return(frequencies[i]);    

    }

  }

  return(0); 

}

Мелодийный проигрыватель

Компоненты:

1 Arduino Uno
1 Буззер
7 Проводов
1 Макетная плата
1 Потенциометр

Схема:

Код:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

char* myStrings[]={"melody 1", "melody 2", "melody 3"};

int sensorValue;
const int buzzerPin = 9;

// Длина мелодии (количество нот и пауз)
const int songLength = 18;
const int songLength2 = 10;

// Ноты мелодии и паузы (символ ' ' обозначает паузу)
char notes[] = "cdfda ag cdfdg gf "; // Таблица нот и пауз

char notes2[] = "ccCccaccfcc2eccef ";

char notes3[] = "aeaeagg aeaeagg ";

// Длительность каждой ноты и паузы (в ударах)
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};

int beats2[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

int beats3[] = {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};

// "tempo" мелодии (скорость). Чем меньше значение, тем выше скорость.
int tempo = 150;

void setup() {
  pinMode(buzzerPin, OUTPUT);
  lcd.begin(16, 2);
}

void loop() {
  sensorValue = analogRead(A5); // Считываем значение с аналогового пина A5
  sensorValue = map(sensorValue, 0, 1023, 1, 7); // Преобразуем диапазон значений аналогового сигнала

  // Если значение потенциометра равно 1, то запускаем мелодию 1
  if (sensorValue == 1) {
    lcd.clear();
    lcd.println(myStrings[0]);
    playMelody(notes, beats, songLength);
  }

  // Если значение потенциометра равно 2, то запускаем мелодию 2
  else if (sensorValue == 2) {
    lcd.clear();
    lcd.println(myStrings[1]);
    playMelody(notes2, beats2, songLength2);

  }
   // Если значение потенциометра равно 3, то запускаем мелодию 3
  else if (sensorValue == 3) {
    lcd.clear();
    lcd.println(myStrings[2]);
    playMelody(notes3, beats3, songLength2);

  }


}

// Функция для воспроизведения мелодии
void playMelody(char melody, intbeats, int songLength) {
  int i, duration;

  for (i = 0; i < songLength; i++) {
    duration = beats[i] * tempo; 

    if (melody[i] == ' ') { // Если ноты нет (пауза)
      delay(duration);
    } else {
      tone(buzzerPin, frequency(melody[i]), duration);
      delay(duration);
    }
// Функция для определения частоты ноты
int frequency(char note) {
  const int numNotes = 8; // Количество нот
  char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; // Ноты
  int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523}; // Соответствующие частоты

  // Если нота существует, возвращаем её частоту
  for (int i = 0; i < numNotes; i++) {
    if (names[i] == note) {
      return frequencies[i];
    }
  }

  return 0; // Если нота не найдена
}

Новые функции:

Tone(buzzerPin, частота): Эта функция воспроизводит звук с помощью пьезоэмиттера, подключенного к пину buzzerPin, с заданной частотой в герцах.

NoTone(buzzerPin): Эта функция прекращает воспроизведение звука на пьезоэмиттере, подключенном к пину buzzerPin.

Видео: