MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов


При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном варианте можно использовать буззер со встроенным генератором. В таком варианте различные состояния звуковых сообщений можно формировать длительностью сигнала. Более продвинутый уровень, это одноголосный генератор, для формирования сигналов разных частот.

Такой способ позволят, не только формировать сигналы по длительности, но и разделять их по частоте. В этом варианте можно формировать даже простые мелодии. Для этого нам потребуется так называемые пассивные buzzer, динамик. Можно применять как механические (они более дешевые), так и пьезоэлектрические.

Внешний вид буззеров выпускаемых фирмой MURATA:

Piezoelectric Sounders / Buzzers  

Но чаще нам предстоит иметь дело с китайским производителем, так как цена и качество у них более приемлемы.

Механическими буззерами проще всего управлять, схема подключения, может иметь следующий вид:

Резистор R14 предназначен для удержания транзистора в закрытом состоянии при включении устройства. R13 вместе емкостью затвора, создают фильтр низких частот, что позволяет в некоторой степени избавиться от гармоник, которые формирует меандр и придать формируемому звуку сигналу, более приятное звучание. Резистор R10 и конденсатор C9 уменьшают влияние на шину питания, работу звукового преобразователя. Для своих устройств я предпочитаю использовать пассивные буззеры типа HYG8503A или HY09.


Теперь перейдет к программной реализации. В PIC24 для создания генератора удобно использовать модули OCx. Один из вариантов настройки рассмотрим в нашем варианте с использованием MCC.

В начале все просто добавляем в проект модуль (любой который свободен) например, в моем варианте это был OC4. Выполним конфигурацию:

Тут очень просто, не нужен нам какой то режим, оставим OFF. Выберем источник FOSC/2. Настройки режима синхронизации, выберем сам модуль, т.е. при запуске модуля он будет сам себя потом запускать и будет нам, генерировать заданную нами частоту.

Для формирования звука нам потребуется создать функцию и описать частоты нот для формирования звуков. Частоты нот, можно легко найти при поиске в инете. Для себя я составил следующие определения констант для нот:

Для “извлечения звуков” создадим простую функцию:

Функция beep_n формирует звуковой сигнал частотой nota, которая расположена в октаве  oktav и длительностью dlit.

Частота которая будут загружаться в регистры модуля OCx предварительно вычисляется при инициализации переменной

uint32_t frequency = (uint32_t)(nota*oktav*(FCY/2000000));

Принцип прост, в регистр который отвечает за период работы OCx, загружаем частоту

OCxRS = frequency/16; // задаем период

А в регистр длительности импульса значение равное половине, чтобы формировать меандр

OCxR = OCxRS/2; // половина периода

Значение регистров в функции описаны как:

Тут вы видите, что выполнено настройка под модуль OC4,  если вы будете использовать другой модуль, циферку “4” надо заменить на циферку используемого модуля ;)


Библиотека для XC16 v1.35

Значок

MCC PIC24 - модуль OUTPUT COMPARE - режиме генератора звуковых сигналов 1.93 KB 6 downloads

При проектировании простых устройств автоматики,...
Login Required Message:


Это может быть интересно


  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 AT+CWMODE_CUR Проверка, …
  • LED модуль P10C4V12LED модуль P10C4V12
    LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость панелей легко …
  • Модуль CAN в микроконтроллерах PIC18Модуль CAN в микроконтроллерах PIC18
    Введение   CAN последовательный интерфейс связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высокой помехозащищенностью. Протокол связи полностью определен Robert Bosch GmbH, в спецификации требований CAN 2.0B …
  • Интерактивные LedИнтерактивные Led
    Тема проекта   продолжение следует…. Это может быть интересно Метки:LED
  • ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302
    На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11  самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств он даже …
  • MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМMCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ
    Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые ЦАП. MCC …
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя датчиками. Теперь …
  • Датчик контроля протечки воды ch-c0020Датчик контроля протечки воды ch-c0020
    Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с потолка…  И …
  • VU Meter Tower ARTVU Meter Tower ART
    Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю все материалы …
  • Часы-кухонный таймерЧасы-кухонный таймер
    Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и через заданный …



 

Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.