Генерувати звуки з допомогою Ардуїнов можна різними способами. Найпростіший з них – підключити до плати пьезоизлучатель (або пьезопищалку). Але як завжди, є тут і свої нюанси. Загалом, давайте розбиратися.
Вам знадобиться
- – Комп’ютер;
- – Arduino;
- – пьезоизлучатель (пьезопищалка).
Інструкція
1. Пьезоизлучатель, або п’єзоелектричний випромінювач, або пьезопищалка – це электроакустическое пристрій відтворення звуку, що використовує зворотний п’єзоелектричний ефект. Якщо пояснювати по-простому – під дією електричного поля виникає механічний рух мембрани, яке і викликає чутні нами звукові хвилі. Зазвичай такі випромінювачі звуку встановлюють у побутову електронну апаратуру в якості звукових сигналізаторів, корпусу настільних персональних комп’ютерів, телефони, іграшки, гучномовці і багато де ще. Пьезоизлучатель має 2 виводу, причому полярність має значення. Тому чорний висновок підключаємо до землі (GND), а червоний – до будь-якого цифрового піну з функцією ШІМ (PWM). В даному прикладі позитивний висновок випромінювача підключений до висновку “D3”.
2. Пьезопищалку можна задіяти різними способами. Найпростіший з них – це використовувати функцію analogWrite. Приклад скетчу – на ілюстрації. Цей скетч поперемінно включає і вимикає звук з частотою 1 раз в секунду.Задаємо номер піна, визначаємо його як вихід. Функція analogWrite() приймає в якості аргументів номер висновку і рівень, який може бути від 0 до 255. Це значення буде змінювати гучність пьезопищалки в невеликих межах. Посилаючи в порт значення “0”, вимикаємо пьезопищалку.На жаль, змінювати тональність звуку, використовуючи функцію analogWrite(), не можна. Пьезоизлучатель завжди буде звучати на частоті приблизно 980 Гц, що відповідає частоті роботи висновків з широтно-імпульсною модуляцією сигналу (ШІМ) на платах Arduino UNO і подібних.
3. Тепер вивчимо звук з пьезоизлучателя допомогою вбудованої функції tone(). Приклад найпростішого скетчу наведено на ілюстрації. Функція tone приймає в якості аргументів номер піна і звукову частоту. Нижня межа частоти – 31 Гц, верхня межа обмежений параметрами пьезоизлучателя і людського слуху. Щоб вимкнути звук, посилаємо в порт команду noTone().Зверніть увагу, що якщо до Ардуїнов підключені декілька пьезоизлучателей, одноразово буде працювати тільки один. Щоб включити випромінювач на іншому висновку, потрібно перервати звук на поточному, викликавши функцію noTone().Важливий момент: функція tone() накладається на ШІМ сигнал на “3” і “11” висновках Arduino. Майте це на увазі, коли будете проектувати свої пристрої, т. к. функція tone(), викликана, наприклад, для піна “5”, що може заважати роботі висновків “3” і “11”.