Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Arduino UNO — Пьезоизлучатель. Урок 7

В данном уроке рассмотрим работу с пьезоизлучателем для генерирования звуков. Мы будем использовать пьезодатчик (Piezo Transducer), который позволяет генерировать звуковые волны в диапазоне частот 20 Гц — 20 000 Гц. Не путайте с пьезобиперами и т.п., которые генерируют звук только определенной частоты при подаче на них постоянного напряжения.

Мы будем использовать ШИМ-генератор Arduino для генерирования звука на пьезоизлучателе.

Для данного урока, мы не будем использовать стандартную функцию tone() по нескольким причинам:
— может использоваться только на одной ноге Arduino в одно время;
— использование tone() мешает использовать ШИМ на ногах 3 и 11

Используйте данную функцию, когда вам необходима какая-либо частота и не нужен ШИМ на 3 и 11 ножках Arduino.

ШИМ Arduino запускается на частоте 500 Гц, это вполне хороший звуковой тон для нашего примера.

arduino

Для работы схемы подсоедините пьезодатчик к ноге 9 и 0V Arduino.

В скетче, показанном ниже, мы сделали альтернативную функцию beep(), которая посылает ШИМ-сигнал на пьезо, затем идет небольшая задержка, затем сигнал с пьезо снимается и опять задержка. В результате чего издается непродолжительный звук. Переменная delayms используется в функции для задания времени звучания в миллисекундах. Продолжительность ШИМ (20 в нашем примере) не очень важна.

Скетч ниже, при запуске программы издает 3 непродолжительных, а затем один продолжительный звуковой сигнал.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 Пьезо
 
 Данный пример показывает управление Пьезо на 9 ножке Arduino,
 используя функцию analogWrite()
 
 При запуске издается 3 коротких звуковых сигнала, затем пауза в 1 сек,
 а затем продолжительный звуковой сигнал
 
 */
void setup()  {
  pinMode(9, OUTPUT);   // устанавливаем 9 ногу как выход
  beep(50);
  beep(50);
  beep(50);
  delay(1000);
}
void loop()  {
  beep(200);
}
void beep(unsigned char delayms){
  analogWrite(9, 20);      // значение должно находится между 0 и 255
                           // поэкспериментируйте для получения хорошего тона
  delay(delayms);          // пауза delayms мс
  analogWrite(9, 0);       // 0 - выключаем пьезо
  delay(delayms);          // пауза delayms мс  
}

Оригинал

cxem.net

admin

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

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