Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы приведем несколько решений на PIC-микроконтроллеров. PIC10F320/322 это идеальное решения для создания всевозможных регуляторов освещения. При этом мы получаем довольно функционально навороченное устройство с минимальной стоимостью и минимальными затратами времени на изготовление.


Пример первый, самый простой регулятор с управлением яркостью от потенциометра, яркость задается вращением потенциометра от 0 до 100% (256 уровней яркости).

Схема регулятора.

ch_dimm_v1.0

Яркость задается напряжением сниманием с потенциометра R1. Это управляемое напряжение подается на вход RA0, настроенным как аналоговый вход и подключенным ко входу AN2 АЦП микроконтроллера. Процедура АЦП помещена в основный цикл работы программы, полученное значение напрямую грузиться в регистр ШИМ микроконтроллера. Выход ШИМ RA1 управляет силовым ключом на транзисторе V1. Как видно со схемы все элементарно просто. Стабилизатор предназначен для получения стабилизированного питания для микроконтроллера и само сбой разумеется можно такую схему использовать в цепях стандартного напряжения 12-24 вольта постоянного напряжения. Силовой транзистор можно брать любой с логическим уровнем управления, т.е. это те транзисторы, которые при подаче 1-2 вольта на затвор полностью открывают свой канал. Например на транзисторе IRF7805 можно коммутировать ток до 13 Ампер (естественно при определенных условиях), а для любых условий до 5 ампер легко. Соединитель CON1 предназначен, только для внутрисхемного программирования контроллера, для этой цели предназначены и резисторы R2 и R5, т.е. если микроконтроллер запрограммирован, то эти элементы можно не ставить, ну и R4 и BAV70 предназначены для защиты от перенапряжения и неправильного включения напряжения питания. Конденсаторы C1 и C2 керамические и предназначены для подавления импульсных помех, а также для надежности работы аналогового стабилизатора LM75L05.


Построения программы.

Построение начинается у указанием компилятору с чем он работает, а также конфигурирования микроконтроллера:

После того как контроллер сконфигурирован необходимо настроить порты ввода вывода, настроить ШИМ, настроит работу АЦП. Это все уже выполняется в программе:

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

  1. Запустить АЦП на измерение.
  2. Дождаться окончания измерения.
  3. Загрузить полученное значение в ШИМ.

Всё! Как вы убедились — микроконтроллеры это просто!!!


Фото проекта: ch_dimm_v1.0_01  


Видео работы диммера:

 


Пример второй. Так как мы работаем с микроконтроллером, добавим две кнопки, то выполним вариант задание яркости потенциометром, а управлением кнопками функции включено / выключено. Схема для примера. ch_dimm_v3.0 К свободным входам RA0 и RA3 добавим тактовые кнопки подключенные к земле. Изменение программы для возможности добавления двух кнопок для получения функций управления: Получение доступа к порту RA3:

Описание, для удобства названия кнопок и к какому порту они подключены:

Изменение настроек портов и включение подтягивающих резисторов (это для создание потенциала каким можно будет управлять кнопками):

И для тестового варианта, самая простая программа которая будут просто включать выключать освещения. Необходимо учитывать, что переделывается программа с примера 1 в котором яркость управляется при помощи ШИП, для включения необходимо в ШИМ записать значение 255, для отключения значение 0.

В этом фрагменте программы достигнут эффект управления кнопками простого включения/выключения освещения на 100%. В следующем примере совместим функции регулировки яркости и функции включения выключения освещения кнопками.

В этом примере потенциометром задается яркость, а кнопками реализована функциями ВКЛ/ВЫКЛ. Схема для варианта управления кнопками. ch_dimm_v4.0 Вариант программы позволяющей регулировать яркость двумя кнопками:

 В этом примере можно найти один из решений проблемы блокировки дребезг от механики кнопок и функции контроля одиночного нажатия кнопки. Каждое нажатие выполняет изменение яркости на SHAG если SHAG=5 единиц, в этом варианте мы будем иметь 51 ступень яркости. Для изменения ШАГА яркости (уменьшения ступеней яркости) необходимо константу SHAG. Увеличение значения уменьшает количество ступеней яркости. В текущем примере шаг это константа 5. Ниже приведем вариант когда шаг яркости может быть в довольна широких значениях, что даст возможность приспособить для любых проектов.

Для управления добавим пару параметров:

Сам главный цикл:

В этом примере константу можно менять от 1 до ~100 т.е. получить даже 2 ступени яркости. Видео демонстрации работы примера 2

  


Пример третий. Выполним вариант задание яркости с применением двух кнопок (режим автоповтора). В этом примере при нажатии на кнопку яркость изменяется на 10 единиц, при удержании кнопки реализовано плавное изменение яркости с шагом равной 1. Добавим несколько переменных:

Главный цикл:

Видео проекта (подготавливается)


Пример четвертый. Добавим третью кнопку с функцией ВКЛ/ВЫКЛ. Схема. ch_dimm_v5.0

продолжение следует….


 

Share →

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