Перейти к содержимому

Как сделать пищалку из спикера

  • автор:

Пьезоизлучатель

Пьезоизлучатель может называться по разному — пищалка, зумер, piezo buzzer или speaker. Суть одна — издать звук.

Обычно в наборах идут два вида пищалок — активный и пассивный. Они похожи и новичка ставят в тупик. Давайте разбираться.

Активный зуммер имеет сверху наклейку с таинственной надписью «Remove seal after washing», которую Гугл-переводчик переводит весьма странно — «снять пломбу после мытья», ещё больше запутывая пользователя. Не обращайте внимания на надпись, это просто технический момент. Во время изготовления детали требуется промывка от флюса, но чтобы не повредить вещь, заклеивают отверстие сверху. Но не торопитесь отклеивать и выбрасывать наклейку, она вам пригодится.

Active buzzer

Активный зумер может работать самостоятельно, достаточно просто подать питание. При подключении следут следить за полярностью. На наклейке есть значок плюса (+), но доверять наклейке не стоит, может кто-то не очень аккуратно её наклеил. Лучше посмотрите на ножки. Как правило, одна ножка длиннее другой. Длинная ножка — плюс, короткая — минус. Соедините длинную ножку к питанию 5В, а короткую к земле. Вы сразу услышите противный звук. Именно по этой причине я советовал вам не отклеивать наклейку. Если вы теперь удалите наклейку, то громкость звука станет намного выше. Заклейте немедленно обратно!

Пассивный зумер внешне похож, но всё-таки отличается немного. Сравните их по размерам, а также посмотрите на их снизу. Разница видна. При подключении как из прошлого примера с активным динамиком, вы ничего не услышите. Просто подать питание не достаточно, нужно использовать программные методы, которые есть в составе В Arduino.

Passive buzzer

Также встречаются в модульном исполнении, например, KY-006 (пассивный) или KY-012 (активный). У модуля три вывода, средний не используется, вывод S соединяется с цифровым выводом платы, а вывод с GND.

Passive buzzer KY-006 Active buzzer KY-012

Переходим к программной части. Активный зумер пищит громче и отчётливее, пассивный немного грубовато.

Самый простой способ — подать напряжение на нужный вывод.

 int buzzPin = 2; void setup() < pinMode(buzzPin, OUTPUT); // установка вывода 2 в режим вывода >void loop() < digitalWrite(buzzPin, HIGH); // перевод вывода 2 в активное состояние delay(500); // пауза полсекунды digitalWrite(buzzPin, LOW); // перевод вывода 2 в неактивное состояние delay(500); // пауза полсекунды >

При запуске услышим щелчки.

Для более интересных звуков используется функция tone().

 const byte piezoPin = 2; void setup() < pinMode(piezoPin, OUTPUT); // настраиваем вывод 2 на выход >void loop() < tone(piezoPin, 100); // генерируем звук с частотой 100 Гц delay(100); // пауза 100 миллисекунд noTone(piezoPin); // выключаем звук delay(900); // снова пауза 900 мс >

Одну ноту играть не интересно. Пусть будет массив из десяти нот.

 const byte piezoPin = 2; int numTones = 10; // Ноты C, C#, D, D#, E, F, F#, G, G#, A int tones[10] = ; void setup() < pinMode(piezoPin, OUTPUT); // настраиваем вывод 2 на выход >void loop() < for (int i = 0; i < numTones; i++) < tone(piezoPin, tones[i]); delay(500); >noTone(piezoPin); > 

Если управлять не только нотами, но и их продолжительностью, то можно писать мелодии. Говорят, следующая мелодия воспроизводит «Имперский марш» из «Звёздных войн».

 const byte piezoPin = 2; const byte COUNT_NOTES = 39; // частоты нот int tones[COUNT_NOTES] = < 392, 392, 392, 311, 466, 392, 311, 466, 392, 587, 587, 587, 622, 466, 369, 311, 466, 392, 784, 392, 392, 784, 739, 698, 659, 622, 659, 415, 554, 523, 493, 466, 440, 466, 311, 369, 311, 466, 392 >; // длительности нот int durations[COUNT_NOTES] = < 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 250, 100, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 750 >; void setup() < pinMode(piezoPin, OUTPUT); // настраиваем вывод 2 на выход >void loop() < for (int i = 0; i > 

02.Digital: toneMelody (Играем мелодию)

Рассмотрим пример из меню File | Examples | 2.Digital | toneMelody. Обратите внимание, что программа состоит из двух вкладок toneMelody и pitches.h. Файл pitches.h содержит константы для проигрывания звуков различной тональности. Сам файл находится в одной папке с скетчем.

После того, как мы наигрались со светом при помощи светодиодов, пора поиграть со звуком. Для примера нам понадобится пьезоизлучатель, макетная плата и три провода.

Собирается конструкция очень просто — от вывода 8 ведём провод к одному контакту пищалки, а второй контакт присоединяем к GND.

Запустите скетч. Вы услышите мелодию, которая прозвучит один раз. Если вы хотите послушать её ещё раз, то нажмите на кнопку Reset на вашей плате.

 #include "pitches.h" // ноты для мелодии int melody[] = < NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4>; // продолжительность ноты: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = < 4, 8, 8, 4,4,4,4,4 >; void setup() < // проходим через все ноты мелодии: for (int thisNote = 0; thisNote < 8; thisNote++) < // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(8, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); >> void loop() < // нет необходимости повторять мелодию >

В первой строчке мы подключаем заголовочный файл pitches.h при помощи оператора #include. Далее создаётся массив из нот, а также массив из продолжительности проигрывания ноты. Потом идёт цикл, где для каждой ноты вычисляется его продолжительность и вызывается функция tone(), которая и воспроизводит нужный звук. Обратите внимание, что весь код находится в методе setup(), поэтому программа выполняется один раз.

Вот так мы быстро познакомились с новым устройством — пьезоизлучателем, а также научились извлекать мелодию.

Melody

Нашёл ещё один пример с пищалкой.

Пример использует вывод 8.

 int speakerPin = 8; int length = 15; // число нот char notes[] = "ccggaagffeeddc "; // сохраняем ноты как массив символов int beats[] = < 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 >; // массив временных промежутков int tempo = 300; void playTone(int tone, int duration) < for (long i = 0; i < duration * 1000L; i += tone * 2) < digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); >> void playNote(char note, int duration) < char names[] = < 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' >; int tones[] = < 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 >; // play the tone corresponding to the note name for (int i = 0; i < 8; i++) < if (names[i] == note) < playTone(tones[i], duration); >> > void setup() < pinMode(speakerPin, OUTPUT); >void loop() < for (int i = 0; i < length; i++) < if (notes[i] == ' ') < delay(beats[i] * tempo); // rest >else < playNote(notes[i], beats[i] * tempo); >// pause between notes delay(tempo / 2); > > 

02.Digital: tonePitchFollower

Ещё один простой пример File | Examples | 02.Digital | tonePitchFollower для извлечения звуков, который зависит от освещённости — вы можете проводить рукой над датчиком освещённости, создавая тем самым разные значения, которые передаются на динамик. В примере упоминается 9-омный динамик, но мы можем использовать и свой пьезоизлучатель.

Piezo

 void setup() < Serial.begin(9600); >void loop() < // read the sensor: int sensorReading = analogRead(A0); // print the sensor reading so you know its range Serial.println(sensorReading); // map the analog input range (in this case, 400 - 1000 from the photoresistor) // to the output pitch range (120 - 1500Hz) // change the minimum and maximum input numbers below depending on the range // your sensor's giving: int thisPitch = map(sensorReading, 400, 1000, 120, 1500); // play the pitch: tone(9, thisPitch, 10); delay(1); // delay in between reads for stability >

Как сделать пищалку из спикера

Текущее время: Пн янв 08, 2024 22:18:14

Часовой пояс: UTC + 3 часа

Запрошенной темы не существует.

Часовой пояс: UTC + 3 часа

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y

Работоспособность сайта проверена в браузерах:
IE8.0, Opera 9.0, Netscape Navigator 7.0, Mozilla Firefox 5.0
Адаптирован для работы при разрешениях экрана от 1280х1024 и выше.
При меньших разрешениях возможно появление горизонтальной прокрутки.
По всем вопросам обращайтесь к Коту: kot@radiokot.ru
©2005-2024

Как сделать пищалку из спикера

Текущее время: Пн янв 08, 2024 22:18:14

Часовой пояс: UTC + 3 часа

Запрошенной темы не существует.

Часовой пояс: UTC + 3 часа

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y

Работоспособность сайта проверена в браузерах:
IE8.0, Opera 9.0, Netscape Navigator 7.0, Mozilla Firefox 5.0
Адаптирован для работы при разрешениях экрана от 1280х1024 и выше.
При меньших разрешениях возможно появление горизонтальной прокрутки.
По всем вопросам обращайтесь к Коту: kot@radiokot.ru
©2005-2024

Как сделать пищалку из спикера

speaker-carte-mere-q-z-162971-3.jpg

05.02.2011, 21:27
Helpmaster

Регистрация: 08.03.2016
Сообщений: 0
Регистрация: 08.10.2010
Сообщений: 563
Записей в дневнике: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1337
Кроме каких нибудь пиликалок, пищалок(нервомоталок) наверно ничего
George Smith
Регистрация: 27.11.2010
Адрес: Большеземельская тундра, Чукча я однако . 🙂
Сообщений: 28,167
Записей в дневнике: 5
Сказал(а) спасибо: 400
Поблагодарили 273 раз(а) в 85 сообщениях
Репутация: 81007
Писчалку к будильнику .
__________________
Пещерный человек
Регистрация: 15.10.2010
Сообщений: 2,304
Записей в дневнике: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 5362

а как мне сделать пищалку? Подскажите схему, пожалуйста! В инете только программное управление есть.

Нее будильник не пойдет. Я хочу противную пищалку!

подскажите пожалуйста схему!! Только мне б попроще, а то я в радиомеханике не очень!

Пещерный человек
Регистрация: 15.10.2010
Сообщений: 2,304
Записей в дневнике: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 5362
можете подать схему для звонка будильника? Ну как в обычных часиках такое «пиииииии»
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Регистрация: 05.02.2009
Сообщений: 2,602
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1165
Сделай сигнал заднего хода к авто
George Smith
Регистрация: 27.11.2010
Адрес: Большеземельская тундра, Чукча я однако . 🙂
Сообщений: 28,167
Записей в дневнике: 5
Сказал(а) спасибо: 400
Поблагодарили 273 раз(а) в 85 сообщениях
Репутация: 81007
Надо подавать уже конкретную частоту .
__________________
Регистрация: 08.10.2010
Сообщений: 563
Записей в дневнике: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1337
Сообщение от ШуриK
Сделай сигнал заднего хода к авто
Этот капсюль никто не услышит из-за шума мотора, надо погромче чё нить
Пещерный человек
Регистрация: 15.10.2010
Сообщений: 2,304
Записей в дневнике: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 5362

да я уже определился, но не знаю что делать — пробовал мультивибратор, нифига.
Из динамика идет шелест, хоть в мультивибраторе, хоть просто от батарейки, причем чем больше вольт, тем громче шелест.

Как мне подать частоту? Что вообще нужно для этого?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *