Управления пьезоизлучателям: изменения тона, изменения продолжительности.
Цель лабораторной работой: научится управления пьезоизлучателям, изменения тона, изменения продолжительности и использовать его в проектах.
Теоретическая часть лаборатории.
Пьезоэлемент — электромеханический преобразователь, одним из разновидностей которого является пьезоизлучатель звука, который также называют пьезодинамиком, просто звонком или английским buzzer. Пьезодинамик переводит электрическое напряжение в колебание мембраны. Эти колебания и создают звук (звуковую волну).
Одним из простейших способов заставить заговорить пищалку является использование функции «analogwrite». Но лучше воспользоваться встроенными функциями. За запуск звукового оповещения отвечает функция «tone()», в скобках пользователю следует указывать параметры частоты звука и номера входа, а также времени. Для отключения звука используется функция «noTone()».
Практическая часть лаборатории.
Для сборки модели нам потребуется:
плата Arduino
провода “папа-папа”
пьезоэлемент
программа Arduino IDE, которую можно скачать с сайта Arduino.
Схема подключения модели к Arduino:
Для работы этой модели подойдет следующая программа:
int p = 3; //объявляем переменную с номером пина, на который мы
//подключили пьезоэлемент
void setup() //процедура setup
{
pinMode(p, OUTPUT); //объявляем пин как выход
}
void loop() //процедура loop
{
tone (p, 500); //включаем на 500 Гц
delay(100); //ждем 100 Мс
tone(p, 1000); //включаем на 1000 Гц
delay(100); //ждем 100 Мс
}
Так выглядит собранная модель Arduino кнопки со светодиодом:
Для корректной работы устройства необходимо задать номер PIN, определить его как «выход». Функция analogWrite использует в качестве аргументов номер вывода и уровень, который изменяет свое значение от 0 до 255. Это все по причине того, что шим-выводы Arduino имеют ЦАП (цифроаналоговый преобразователь) 8-бит. Изменяя этот параметр, пользователь меняет громкость зуммера на небольшую величину. Для полного выключения следует пропитать в порте значение «0». Следует сказать, что используя функцию «analogwrite», пользователь не сможет изменять тональность звука. Для пьезоизлучателя будет определена частота 980 Гц. Это значение совпадает с частотой работы выводов с шим на платах Ардуино и аналогов.
Отчёт:
Код:
// C++ code
// Подключение пьезоэлемента (зуммера)
const int piezoPin = 5;
// Подключение потенциометра
const int potentiometerPin = A1;
void setup() {
// Настройка серийного порта
Serial.begin(9600);
}
void loop() {
// Чтение значения с потенциометра
int sensorValue = analogRead(potentiometerPin);
// Преобразование значения потенциометра в частоту звукового сигнала
int frequency = map(sensorValue, 0, 1023, 20, 2000);
// Генерация звукового сигнала
tone(piezoPin, frequency);
// Вывод значения потенциометра и частоты в монитор последовательного порта
Serial.print("Potentiometer Value: ");
Serial.print(sensorValue);
Serial.print(", Frequency: ");
Serial.println(frequency);
// Задержка для стабилизации звукового сигнала
delay(10);
}
Do'stlaringiz bilan baham: |