Проект с использованием MCC часть 07


Модуль PWM – широтно импульсная модуляция (ШИМ). ПИК контроллеры часто на борту имеют модули ШИМ. На их основе строятся многие узлы управления электро приводами. В нашем варианте мы будем его использовать для управления яркостью светодиодов.

Модуль ШИМ работает совместно с таймером TMP2, поэтому так же в этой главе будет изучена его работа. Для изучения так же воспользуемся МСС. В окне ресурсы устройства найдем модули PWM.

и двойным кликом добавим их в проект. Нам необходимо два модуля 1 и 2. После успешного добавления окно ресурсы проекта будет выглядеть так:

Приступим к настройкам модулей.

Что нам необходимо знать? Во первых управление яркостью светодиодов в простых режимах осуществляется импульсном режиме. Т.е. выбирается период, часть времени подается напряжение на светодиод, а часть нет, Для глаза это воспринимается как неполная яркость.

Какой должен быть период или частота мигания, что бы глаз перестал замечать световые импульсы. Как известно человеческий глаз перестает различать световые импульсы после 25 герц, частота в переменного тока в электросети 50-60 гц, при этом мы практически не видим мигание ламп освещения, но для комфортного восприятия определено, что частота не должна быть ниже 100 гц (или выше), тогда свечение воспринимается не утомляющим зрение.

Выполним настройки для обоих модулей

Включим выход PWM, активный уровень высокий.

Для работы ШИМ нам потребуется активация таймера 2, для это перейдем в окно ресурсы устройства и двойной счетчиком  активируем таймер 2, у нас должно произойти изменения в окне ресурсы проекта. Выберем таймер 2 и выполним настройки

Предделитель установим на 1:64, в окне период вычисления периода таймера зададим 4,096 мс – максимальное значение. Этот параметр влияет на значение записываемые в регистр PIR2 – определяющий период работы таймера. 4,096 мс – это частота ~ 224 Гц.

Запустим сгенерировать код и перейдем в наш проект.

У нас появились новые файлы:

Это файлы pwm1 и pwm2, а также tmp2. Это файлы настройки и управления нашими модулями. Обратите внимание на графическое представление, в нем изменились назначение выводов

В схем нашего устройства также предстоит внести изменения, дело в том, что согласно таблице 1,описания :

Выходы наших модулей ШИМ подключены к определенным выводам микроконтроллера и не совпадают с нашей схемой. PWM1 к RC5, а PWM2 к RC3. По большому счёту нам надо будет изменить подключение только одного светодиода.

При активации выходов модулей PWM к выводу ПИКа подключается модуль, а отключается выходной буфер.  Поэтому все наши функции управления светодиодами будут отключены, хотя программа будет корректно управлять выходными буферами.

Перепрошьем ПИК, мы увидим, что светодиоды оба загорелись. Для анализа используем Saleae Logic подключим его к выводам портов управляемых нашими светодиодами (небольшое обучающее видео по работе с анализатором:

Я считаю, что наличие анализатора, это необходимая вещь для начинающего разработчика встроенных систем.

Со сканируем сигнал на выходах ШИМов, и за одно проверим наши расчетные параметры, частота 243,8 Гц, что офигенно точно для микроконтроллера, который использует внутренний генератор (расчетная 244 Гц).

Теперь используя ММС изменим период на PWM1 на 10 %, с генерируем и перепрошьем ПИК

После прошивки уже визуально видно что LD1 один горит слабее чем LD2. Со сканируем выходы…

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


Проект использования ШИМ – [wpdm_package id=7157 template=”link-template-calltoaction3.php”]


Простое перепрограммирование не всегда интересно. У нас есть две кнопки управления, задействуем их для управления яркость светодиодов. Для начала простое управление яркость, одна кнопка увеличивает, другая уменьшает – все это в следующей теме


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


  • Регулятор влажности ch-3800Регулятор влажности ch-3800
      И еще один проект на плате ch-c3xxx –  универсальный регулятор влажности ch-3800. Регулятор позволяет работать как в режиме индикатора влажности, так и в режиме регулятора. Рабочий диапазон измеряемой относительной …
  • Просто о структурах и объединениях в СиПросто о структурах и объединениях в Си
    Какие задачи нам позволяют решать структуры и объединения? Для разработчика встроенных систем эффективность и компактность кода всегда на первом месте. Если программировании на Ассемблере ты сам определяешь как и где …
  • Простой цифровой регулятор мощностиПростой цифровой регулятор мощности
    Простой регулятор мощности с цифровой индикацией. Этот проект создан как обучающий, для ознакомления с основами построения сетевых регуляторов мощности. Устройства подобного типа можно использовать для управления освещением, скоростью работы вентиляторов …
  • PIC18 – System ArbitrationPIC18 – System Arbitration
    Системный арбитр. Разрешает доступ к памяти между выборами уровнями системы (т.е. Main, Interrupt Service Routine) и выбором периферийных устройств (т.е. DMA и Scanner) на основе назначенных пользователем приоритетов. Каждый из уровней …
  • MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМMCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ
    Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые ЦАП. MCC …
  • LATINO – открытый проект ch-светомузыкиLATINO – открытый проект ch-светомузыки
      Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была применена светодиодная …
  • Дифференциальный терморегуляторДифференциальный терморегулятор
    Дифференциальный терморегулятор ch-3020 Назначение. Ch-c3020 представляет собой дифференциальный терморегулятор. Основное назначение солнечные системы горячего водоснабжения, а также вентиляционные системы управление притоком свежего воздуха. Контроллер позволяет работать пяти режимах. 1 – …
  • PIC18F25K42 – v. A001 – выявленные баги.PIC18F25K42 – v. A001 – выявленные баги.
    Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На выводе RA0, …
  • MPLAB® Harmony – или как это просто! Часть 1.MPLAB® Harmony – или как это просто! Часть 1.
    Часть первая – Установка Гармонии. Музыкальная тема к статье, слушаем: В начале запуска нового проекта и выбора микроконтроллера стоит задача правильно его сконфигурировать, прежде чем перейти к реализации самой задачи. …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети “Киевстар”. Их …



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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.