Главная » Микроконтроллеры
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

Похожие статьи:


Регулятор яркости подсветки на датчике BH1750

И снова мы возьмем в руки датчик освещенности BH1750. На этот раз предлагаю не просто снимать данные об уровне освещенности, а еще и относительно этих данных регулировать яркость какого-либо осветительного прибора. Наподобие регулировки яркости дисплея планшета или смартфона – чем ярче окружающее освещение, тем меньше требуется яркость освещения и наоборот чем темнее, тем ярче будет гореть светодиод, лампочки или что-нибудь еще. Да, это все можно организовать на основе фотодиода, фоторезистора, но такие приборы необходимо настраивать, калибровать и так далее. В случае же с применением цифрового датчика освещенности BH1750 эти действия осуществлять нет необходимости, так как все уже откалибровано до нас, по шине I2C передаются готовые данные, которые необходимо лишь сопоставить с условием. Простыми словами – включил, и все сразу заработало без лишних телодвижений. Если вам идея интересна, то продолжаем дальше.

Устройство построим по следующей схеме:

Схема регулятора яркости подсветки на датчике BH1750

Схема получилась как бы зародышем идеи, так как ее можно и нужно модернизировать под различные случаи использования, но об этом чуть позже.

Здесь уже все привычно для нас. В качестве микроконтроллера используется Atmega8a как наиболее универсальный и популярный микроконтроллер. Использовать микроконтроллер можно в любом корпусе – разницы нет, кроме порядка расположения выводов на корпусах. Индикация осуществляется на ЖК экранчике на базе HD44780. В моем случае используется экран на 4 строки по 20 символов на каждую, однако можно использовать и размер 1602 – информации на экранчик выводится не много, поэтому все помещается. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод "А" и "К" на плате дисплея. Подсветка включается через резистор, ограничивающий ток - R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Сам дисплей подключается к микроконтроллеру по 4х битной схеме. Резистор R3 необходим для предотвращения самопроизвольного перезапускания микроконтроллера в случае появления случайных помех на выводе PC6. Резистор R3 подтягивает плюс питания к этому выводу, надежно создавая потенциал на нем. Резистор R4 подтягивает ножку датчика к земле, отвечающую за адрес микросхемы для I2C интерфейса, посмотреть все эти цифры можно в исходном коде, который расположен в конце статьи. Для правильной работы I2C интерфейса необходимы резисторы R7 и R8. С их помощью на линиях образуется логическая единица из-за того, что они подтянуты к плюсу питания. При формировании логического нуля линии прижимаются к земле посредством ведущего или ведомого (микроконтроллера или датчика).

Основное питание схемы составляет 3,3 вольта, что обусловлено электрическими параметрами датчика освещенности BH1750. 5 вольт необходимы лишь для питания дисплея, если применить, например экранчик от nokia 5110, для питания которого необходимо также 3,3 вольта, то можно опустить из схемы стабилизатор напряжения на 5 вольт. Стабилизаторы напряжения на 5 вольт и 3,3 вольта можно применить абсолютно любые на аналогичные напряжения, можно использовать как линейные стабилизаторы, так и импульсные.

Теперь по поводу модернизации схемы. Основой всегда будет сам датчик и микроконтроллер, а также схема питания. ЖК-дисплей, при данном функционале, лишь для отладки необходим по большому счету. Его можно исключить из схемы при автономном использовании. Это первое. Второе это выход схемы, то есть светодиод HL1 – одним светодиодом большое пространство не осветить и нужно использовать что-то более массивное – мощные светодиоды, лампы накаливания или еще что-нибудь. Так вот подобные осветительные приборы со сравнительно большим потреблением тока, напряжения просто к микроконтроллеру не подсоединить так просто, иначе мы просто сожжем микроконтроллер. Для этого необходимо использовать драйверы или другие схемы. Если лампочки накаливания используют переменное напряжение, нужно использовать оптосимисторную связку и мощный симистор для управления яркостью лампочки (нужно только подправить прошивку для управления оптосимистором). Для светодиодных ламп ШИМ можно подавать на затвор полевого транзистора и через него включать светодиоды (не забыв про ограничение или стабилизацию тока), либо использовать управляемые драйверы для них. В общем вариантов очень много – для каждого случая – свой. Представленная схема будет являться исходной с заложенным основным функционалам. Вот такая вот идея.

Собиралась и отлаживалась такая схема на отладочной плате в связке с модулем BH1750:

Логика работы не сложная – считываем значение освещенности из датчика и преобразуем это значение в ШИМ сигнал. Необходимо лишь подобрать соотношение ШИМ сигнала и уровня освещенности.

Для отладки работы использовался карманный фонарик для изменения освещенности.

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

Кроме того, для программирования микроконтроллера в данном варианте необходимо знать конфигурацию фьюз битов:

А к статье прилагается прошивка для микроконтроллера по представленной схеме, исходный код в программе AVR Studio и демонстративное видео (плавное изменение яркости светодиода в зависимости от уровня освещенности, который регулируется карманным фонариком).

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATmega8A
1 Поиск в LCSCВ блокнот
IC2 Датчик освещенностиBH1750FVI-E1 Поиск в LCSCВ блокнот
VR1 Линейный регулятор
L7805AB
1 Поиск в LCSCВ блокнот
VR2 Линейный регулятор
AMS1117-3.3
1 Поиск в LCSCВ блокнот
C1, C3, C5, C7 Конденсатор100 нФ4 Поиск в LCSCВ блокнот
C2 Электролитический конденсатор470 мкФ1 Поиск в LCSCВ блокнот
C4 Электролитический конденсатор220 мкФ1 Поиск в LCSCВ блокнот
C6 Электролитический конденсатор10 мкФ1 Поиск в LCSCВ блокнот
R1 Резистор
22 Ом
1 Поиск в LCSCВ блокнот
R2 Подстроечный резистор10 кОм1 Поиск в LCSCВ блокнот
R3 Резистор
10 кОм
1 Поиск в LCSCВ блокнот
R4, R7, R8 Резистор
4.7 кОм
3 Поиск в LCSCВ блокнот
R5 Резистор
390 Ом
1 Поиск в LCSCВ блокнот
R6 Резистор
1 кОм
1 Поиск в LCSCВ блокнот
HG1 LCD-дисплей2004a1 HD44780Поиск в LCSCВ блокнот
HL1 Светодиод1 Или другой осветительный элементПоиск в LCSCВ блокнот
S1 Тактовая кнопкаTC-A1091 Поиск в LCSCВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Максим #
Надо было управлять подсветкой дисплея, а не светодиодом. Было бы гораздо наглядней
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Ручной фен 450 Вт с регулировкой температуры Конструктор регулируемого преобразователя напряжения LM317
вверх