Skip to content
Home » buzzer

buzzer

katse 6

A buzzer is an audio device that can convert audio signals into audio signals. It usually runs on DC voltage. It is widely used as audio devices in alarms, computers, printers and other electronic products.

used:

  1. buzzer
  2. arduino plaat
  3. juhtmed
  4. arduino uno

kood:

const int buzzerPin = 9;
// Мы создали массив с нотами, которые хотим воспроизвести, измените эти значения, чтобы создать свои мелодии!
// Длина должна равняться общему количеству нот и пауз
const int songLength = 18;
// Обозначение нот представляет собой массив из текстовых символов,
// соответствующим нотам в песне. Пробел означает паузу (пустую ноту)
char notes[] = "cdfda ag cdfdg gf "; // пробелы означают паузы
// Ритм задается массивом из длительности нот и пауз между ними.
// "1" - четвертная нота, "2" - половинная, и т.д.
// Не забывайте, что пробелы должны быть тоже определенной длинны.
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;  // длительность нот/пауз в ms    
    if (notes[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency(notes[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(true){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency(char note) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);  // Поиск символа не дал результата? Но, необходимо  вернуть какое-то значение, так вернем 0.
}

skeem:

Excercise:

Code:

const int buzzerPin = 9;
int Sensorpin = A0;
int sensorValue = 0;
int Value_new;
// Мы создали массив с нотами, которые хотим воспроизвести, измените эти значения, чтобы создать свои мелодии!
// Длина должна равняться общему количеству нот и пауз
const int songLength = 18;
// Обозначение нот представляет собой массив из текстовых символов,
// соответствующим нотам в песне. Пробел означает паузу (пустую ноту)
char notes[] = "cdfda ag cdfdg gf "; // пробелы означают паузы
char notes1[] = "ccc dfg ccc dfg cc";
char notes2[] = "gg a gg a gg ccc dfg";
char notes3[] = "dc dcgd fcd fg cdcdcg";
char notes4[] = "fgdcdg dgd cdgff gdc";
// Ритм задается массивом из длительности нот и пауз между ними.
// "1" - четвертная нота, "2" - половинная, и т.д.
// Не забывайте, что пробелы должны быть тоже определенной длинны.
int beats[] = {1,1,1,1,1,1,4,4,2,1,1,1,1,1,1,4,4,2};
int beats1[] = {1,1,1,2,3,1,1,1,2,3,1,1,1,2,3,2,3};
int beats2[] = {4,4,3,4,4,3,4,4,1,1,1,2,3,4,4,1,2};
int beats3[] = {2,1,2,1,4,3,5,1,2,3,5,1,2,1,2,1,4};
int beats4[] = {3,5,6,1,2,4,2,5,6,1,2,4,5,2,4,2,1};
// "tempo" это скорость проигрывания мелодии.
// Для того, чтобы мелодия проигрывалась быстрее, вы
// должны уменьшить следующее значение.
int tempo = 150;
bool stop0 = true;
bool stop1 = true;
bool stop2 = true;
bool stop3 = true;
bool stop4 = true;
void setup() 
{
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600);
}
void loop() 
{ 
//      music();
  
  Value_new = analogRead(Sensorpin);
  Value_new=map(Value_new,0,1023,1,6);
  if (Value_new==1)
  {
    stop0 = false;
    stop1 = true;   
    stop2 = true;
    stop3 = true;
    stop4 = true;
    music();
    
  }
  else if (Value_new ==2)
  {
    stop0 = true;
    stop1 = false;   
    stop2 = true;
    stop3 = true;
    stop4 = true;
    music1();
  }
  else if (Value_new ==3)
  {
    stop0 = true;
    stop1 = true;   
    stop2 = false;
    stop3 = true;
    stop4 = true;
    music2();
  }
  else if (Value_new ==4)
  {
    stop0 = true;
    stop1 = true;   
    stop2 = true;
    stop3 = false;
    stop4 = true;
    music3();
  }
  else if (Value_new ==5)
  {
    stop0 = true;
    stop1 = true;   
    stop2 = true;
    stop3 = true;
    stop4 = false;
    music4();
  }
}
void music()
{
  int i, duration;
  for (i = 0; i < songLength; i++) // пошаговое воспроизведение из массива
  {
    if (stop0)
      break;
    duration = beats[i] * tempo;  // длительность нот/пауз в ms    
    if (notes[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency(notes[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(stop0){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency(char note) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);  // Поиск символа не дал результата? Но, необходимо  вернуть какое-то значение, так вернем 0.
}
void music1()
{
  int i, duration;
  for (i = 0; i < songLength; i++) // пошаговое воспроизведение из массива
  {
    if (stop1)
      break;
    duration = beats1[i] * tempo;  // длительность нот/пауз в ms    
    if (notes1[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency(notes1[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(stop1){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency1(char note1) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note1)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);
}
void music2()
{
  int i, duration;
  for (i = 0; i < songLength; i++) // пошаговое воспроизведение из массива
  {
    if (stop2)
      break;
    
    duration = beats2[i] * tempo;  // длительность нот/пауз в ms    
    if (notes2[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency2(notes2[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(stop2){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency2(char note2) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note2)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);
}
void music3()
{
  int i, duration;
  for (i = 0; i < songLength; i++) // пошаговое воспроизведение из массива
  {
    if (stop3)
      break;
    duration = beats3[i] * tempo;  // длительность нот/пауз в ms    
    if (notes3[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency3(notes3[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(stop3){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency3(char note3) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note3)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);
}
void music4()
{
  int i, duration;
  for (i = 0; i < songLength; i++) // пошаговое воспроизведение из массива
  {
    if (stop4)
      break;
    duration = beats4[i] * tempo;  // длительность нот/пауз в ms    
    if (notes4[i] == ' ')          // если нота отсутствует? 
    {
      delay(duration);            // тогда не большая пауза
    }
    else                          // в противном случае играть
    {
      tone(buzzerPin, frequency4(notes4[i]), duration);
      delay(duration);            // ждать пока проигрывается
    }
    delay(tempo/10);              // маленькая пауза между нотами
  }
  // Мы хотим, чтобы мелодия проиграла всего один раз, так что здесь остановимся окончательно:
  while(stop4){}
  // Если же вы хотите, чтобы мелодия играть снова и снова, Удалить вышеуказанное заявление
}
int frequency4(char note4) 
{
  // Эта функция принимает символ ноты (a-g), и возвращает
  // частоту в Гц для функции tone().
  int i;
  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 (i = 0; i < numNotes; i++)  // пошаговый перебор нот
  {
    if (names[i] == note4)         // если находим
    {
      return(frequencies[i]);     // возвращаем частоту
    }
  }
  return(0);
}
  

video: