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


И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, которыи позволяет изменять значения ШИМ, это PWM1_LoadDutyValue и PWM2_LoadDutyValue.

Надо только понимать, что их параметр это не процент, а число, в нашем случае число 10 битное, т.е. от 0 до 1023. Выполним некоторый предварительный эксперимент, добавим основной в текст нашей программы (наконец то, че нибудь своими руками напишим) две эти функции и обновим прошивку контроллера.

Перед основным циклом, закомментируем начальные настройки светиков и установим яркость LD1 100% = 1023, а яркость LD2 – 0,19% – этот значение 2. Перепрошьем микроконтроллер. И сразу заметим, что у нас изменились яркости горения светиков.

На фото видно, что первый светик горит на сто 100%, а второй еле “тлеет” ;). Нам теперь остается мелочь придумать корректное управление яркостью.

Сделаем так, при нажатии на кнопку будет изменяться переменная яркости которая будет вызывать функцию PWMх_LoadDutyValue для изменения яркости.

Конечно тыкать 1023 раза будет не интересно, можно сделать, чтобы яркость изменялась значению равном 1%, но сто раз это тоже многовато, сделаем например 10%, это 100/10= 10 шагов. Каждый шаг 1023/10 = 102. Значит так нажимаем на кнопку к значению текущей яркости прибавляется значение 51, нажимает вторую кнопку и от текущего значения вычитается 102.

Какие могут быть подводные камни, нам надо обеспечить, чтобы значение яркости не было больше 1023 и не было меньше 0.


Немного об особенностях настройки ШИМ ПИК-контроллеров

Период или частота задаются таймером Т2. Ширина импульса задается В регистрах PWMхDCL и PWMхDCH, величина ШИМ может быть меньше 10 бит и это будет зависеть от периода ШИМ, более подробно можно прочесть в описании на микроконтроллер. Для нас главное надо понять как формируется длительность.

Для того, чтобы получить сигнал при максимальном значении без импульсов, надо выбирать значение регистра PR2 < 255, если установить значение 255, то при 100% яркости мы получим наличие отрицательных импульсов ШИМ, что иногда совсем не приемлемо.

Для устранения этого нежелательного эффекта измените значение записываемое в регистр PR2, например, на 254.

Теперь при 100% яркости у нас отсутствую нежелательные импульсы. Что необходимо понять, если формируемая длительность (значение) больше значения записанного в регистр периода PR2, то на выходе ШИМ, будет логическая единица (или ноль – это зависит от выбранной полярности на выходе), Если равно или меньше, будет формироваться ШИМю При нуле, будет постоянно низкий уровень.


Для переменной яркости нам надо выбрать типа int со знаком, или в нашем проекте конкретно будет использовать такое описание int_least16_t, это число может принимать значение в диапазоне -32768 до + 32767 (описание можно посмотреть в файле stdint.h).

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

Добавим в файл pin_manager.c описание переменных

Изменим функцию обработки нажатия кнопок.

Скомпилируем проект.

Теперь при помощи кнопок можно управлять яркостью светодиода 1. Для того, чтобы при подаче питания светодиоды не светились изменим начальное значение в MCC для PWM = 0%.


Проект для изучения 

Значок

Проект с использованием MCC часть 08 739.74 KB 75 downloads

И так создадим проект в котором при помощи двух...


Но тыкать пальцем в кнопочки меняя яркость одного светодиода как то не серьезно на современном этапе, стоит сделать управление яркостью одной кнопкой, а также чтобы работали два светика, что и как в следующей статье …


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


  • Мультизоновый индикатор-терморегулятор ch-c3010Мультизоновый индикатор-терморегулятор ch-c3010
    Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре,  температуру на улице, а в погребе (или на балконе) не только …
  • Acquaintance with audio-bluetooth modules F-6888 (BK3254).Acquaintance with audio-bluetooth modules F-6888 (BK3254).
    Для проектов появилось необходимость познакомиться с недорогими модулями китайского производства, которые можно приобрести у нас в Украине и у китацев, на алиэкспрессе. Так как меня интересует не просто, как в …
  • Проблемы классической светомузыкиПроблемы классической светомузыки
    Светомузыка – что это такое? Определение: Светомузыка  (жаргонное: цветомузыка)  — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название – синестезии. …
  • Мультимедийная сеть – AVC-LAN TOYOTAМультимедийная сеть – AVC-LAN TOYOTA
    AVC LAN – протокол обмена данными мультимедийных систем автомобиля. Кодирование данных. При кодировании различаться три типа данных : преамбула – её назначение, это сообщение устройствам на шине, что начинается передача данных. бит 0 …
  • Сумеречное релеСумеречное реле
    Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока 220 вольт. …
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя датчиками. Теперь …
  • Сенсорный выключатель светаСенсорный выключатель света
    Хотя в настоящий момент актуальны системы управления освещением с передачей данных по электросети, но я думаю, что проекты такого рода тоже имеют право на жизнь. Анонс Три вида сенсора – …
  • Счетчики посетителейСчетчики посетителей
    Вас сосчитали!? или счетчики посетителей.   Для чего нужны счетчики посетителей? Какие они бывают? ТОРГОВЛЯ. Подсчитайте, сколько ваш магазин посещает человек за день. Кок много человек приходит утром, какое количество вечером. …
  • Датчик контроля протечки воды ch-c0020Датчик контроля протечки воды ch-c0020
    Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с потолка…  И …
  • MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC)
    Введение MTouch ® Модуль Емкостной Библиотеки для MPLAB ® X Code Configurator (MCC) позволяет быстро и легко генерировать решение кода на  Cи для емкостной сенсорной кнопки, датчика приближения и слайдера. В записи нет …



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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Комментарии

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.