У випадку завдання формування звуку не становить великої праці. Достатньо взяти за основу схему з миготливим світлодіодом (див. розділ 4.5), підключити замість світлодіода звуковий випромінювач (наприклад, телефонний капсуль), а у відповідній програмі (лістінг4.7) поміняти константу затримки таким чином, щоб частота В«миготінняВ» підвищилася і досягла звукового діапазону.
Діапазон частот, які може почути людина, лежить у межах приблизно від 50 Гц до 15 кГц. Світлодіод у згаданій вище програмі мигає з частотою 4 Гц. Якщо зменшити час затримки в 1000 разів, то можна отримати частоту сигналу на виході, рівну 4 кГц. Ця частота якраз входить в звуковий діапазон. p align="justify"> Пропонований вище спосіб формування звукового сигналу реалізує це завдання програмним шляхом. Проте для формування звуку набагато зручніше використовувати таймери/лічильники мікроконтролера. Спробуємо створити найпростіше сигнальний пристрій, яке при натисканні різних клавіш буде видавати звуки різної частоти. p align="justify"> Припустимо, ми маємо сім кнопок (датчиків). Сформулюємо задачу таким чином:
Розробити електронний пристрій, що має сім входів і один звуковий вихід. До кожного з входів підключений датчик, що складається їх двох нормально розімкнутих контактів. При замиканні контактів будь-якого з датчиків пристрій повинен виробляти звуковий сигнал певної частоти. Кожному датчику повинна відповідати своя власна частота звукового сигналу. Якщо контакти всіх датчиків розімкнуті, звуковий сигнал на виході повинен бути відсутній. Назвемо наш пристрій Сигналізатор «ѳм нотВ». br/>
6.2 Схема
Поставлена ​​вище завдання прекрасно вирішується за допомогою вже відомого нам мікроконтролера ATtiny2313. Виберемо його і на цей раз. Мікроконтролер має два вбудованих таймера/лічильника. Який же з таймерів використовувати нам? Для формування звуку краще підходить шестнадцатіразрядний таймер. Чим більше розрядів, тим з більшою точністю можна вибирати його коефіцієнт ділення. p align="justify"> Це дуже важливо для створення нотного стану. Тому для формування звуку виберемо шестнадцатіразрядний таймер Т1. Тепер визначимося з режимом роботи нашого таймера. Як і у випадку з біжать вогнями, для генерації звуку найзручніше використовувати режим СТС (скидання за збігом). Нам просто потрібно вибрати такий коефіцієнт ділення, щоб на виході таймера отримати коливання в звуковому діапазоні частот. p align="justify"> Насамперед, нам потрібно відмовитися від попереднього поділу. Якщо частота кварцового генератора і код, що поміщається в регістр збіги, залишаться такими ж, як у попередньому прикладі (у програмі В«Ті, що біжать вогніВ»), то в новому варіанті частота підвищиться більш ніж в тисячу разів і якраз потрапить в потрібний нам діапазон.
Тепер визначимося з тим, як наш сигнал буде потрапляти на зовнішній висновок мікроконтролера. Звичайно, це можна зробити програмно, за допомогою процедури обробки відповідного переривання. Але мікроконтролер передбачає прямий висновок сигналу на один зі своїх виходів. Причому передбачені окремі виходи для кожного з каналів збіги. Для каналу А подібний вихід називається ОС1 А. Він поєднаний з третім розрядом порту РВ і є альтернативною функцією даного контакту. p align="justify"> Підключення та відключення сигналу збігу до зовнішнього висновку ОС1А виробляється програмним шляхом. Це дозволяє програмі в потрібний момент включати або вимикати звук. Так як для виведення звуку ми будемо використовувати один з розрядів порту РВ, то для підключення датчиків скористаємося іншим портом. А саме портом PD. Варіант принципової схеми описаного вище пристрої зображений на рис. br/>В
Як видно з малюнка, ми знову застосували зовнішній кварцовий резонатор (Q1), природно, не забувши при цьому ланцюзі узгодження (Cl, С2). При підключенні датчиків використовується та ж схема, що використовувалася досі для підключення контактів перемикача. Датчики підключаються до всіх розрядів порту PD. При цьому для правильної роботи датчиків для кожного розряду порту PD повинні бути активізовані вбудовані резистори навантаження. p align="justify"> Для підключення звуковипромінювача (динаміка) застосовується ключовою каскад на транзисторі VT1. Це найпростіший спосіб отримати звук достатньої гучності, враховуючи, що наш сигнал - це прямокутні імпульси з амплітудою, майже рівної напрузі харчування. Транзисторний каскад потрібен лише для підвищення здатності навантаження. p align="justify"> Однак подібна схема має і свій недолік. У відсутність звукового сигналу на виході 15 мікроконтролера обов'язково потрібно встановити низький логічний рівень. Високий логічний рівень призведе до того, що транзистор VTI буде постійно відкритий. Це викличе неприпустимо великий струм через головку VF1. Постійно протікає струм через обмотку динаміка викличе зайву втра...