Датчик температуры и относительной влажности с адаптивной регулировкой яркости индикатора » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

Сколько лет вы занимаетесь программированием PIC микроконтроллеров?


от 0-1 года
1-3 года
3-5 лет
5-10 лет
более 10


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Схемотехника » Устройства для дома » Датчик температуры и относительной влажности с адаптивной регулировкой яркости индикатора
    Датчик температуры и относительной влажности с адаптивной регулировкой яркости индикатора
    Автор публикации: alex Просмотров: 7253 Добавлен: 1-10-2012, 07:57 Комментарии: 0

         Целью данного проекта является демонстрация способа реализации адаптивного управления яркостью семи сегментных светодиодных индикаторов. Система постоянно оценивает уровень освещенности при помощи дешёвого фоторезистора(LDR) и использует полученную информацию для регулировки яркости дисплея. Для наглядности этот способ применяется в цифровом измерителе температуры и относительной влажности, в котором яркость семи сегментных индикаторов адаптируется под окружающую среду. В этом проекте используются восьми сегментные светодиодные индикаторы, которыми управляет микросхема MAX7219. Температура окружающего воздуха и относительная влажность измеряются датчиком DHT11. В этом проекте используется 8-битный микроконтроллер семейства PIC PIC12F683 в восьми выводном корпусе. Автоматическая настройка яркости семи сегментных индикаторов повышает удобность чтения в любых условиях.

    Теория и схема
         Сейчас многие смартфоны, телевизоры, КПК и планшеты имеют автоматическую регулировку яркости, которая помогает экономить заряд батареи и увеличивает удобность чтения в разных условиях освещенности.  Эта функция затемняет дисплей при высоком уровне освещенности и осветляет в темноте.  При увеличении яркости экрана уменьшаются блики, а также снижается чувствительность человеческого глаза на уровень освещенности при увеличении яркости.
         Автоматическая регулировка яркости это замкнутая система, которая оценивает уровень освещенности  и соответственно регулирует яркость дисплея. Фоторезистор (LDR) и постоянный резистор 10K соединены последовательно  + питания и GND, т.е. они образуют делитель напряжения, как показано на схеме. Обычно сопротивление фоторезистора (LDR) составляет менее 1 кОм на ярком свету и может возрасти до нескольких сотен кОм в темноте. Таким образом, напряжение на 10K резисторе возрастает пропорционально освещенности. В этом проекте напряжение на нем может изменяться от 0,1В в темноте до более чем 4В на свету.  Микроконтроллер PIC12F683 считывает этот аналоговый сигнал через AN3 (GP4) вывод АЦП, а затем посылает соответствующие сигналы драйверу семи сегментных индикаторов MAX7219 для регулировки яркости семи сегментных светодиодных индикаторов.

         Микросхема MAX7219 обеспечивает последовательный интерфейс для управления семи сегментными светодиодными индикаторами с общим катодом до 8 символов и требует всего 3 вывода микроконтроллера. Микросхема имеет BCD декодер, драйвер сегментов и цифр и статическое ОЗУ 8 × 8 для хранения значения цифр. Ток сегмента для всех индикаторов устанавливается одним внешним резистором между контактом ISET и питанием. Тем не менее, он также обеспечивает цифровой контроль яркости (16 шагов от минимального до максимального) через внутренний ШИМ. В этом проекте выводы GP0, GP1 и GP2 PIC12F683 используются для управления LOAD, DIN и CLK сигнальными линиями MAX7219.

         Для измерения температуры и относительной влажности используется датчик DHT11. Он может измерять температуру от 0 до 50°C с точностью ± 2°С и относительную влажности воздуха от 20 до 95% с точностью ± 5%. Датчик имеет полностью откалиброванные цифровые выходы для двух измерений. Он имеет свой собственные 1-Wire протокол, и следовательно, связь между датчиком и микроконтроллером не возможна через обычный периферийный интерфейс. Протокол должен быть заложен в прошивке микроконтроллера с точными расчетами таймингов требуемых датчиком.  PIC12F683 использует вывод GP5 для взаимодействия с DHT11.

         Для облегчения сборки макета проекта я использую свою отладочную плату PIC12F и мой последовательный 8-разрядный семи сегментный светодиодный индикатор.
    Программа
         Прошивка для этого проекта написана на C и скомпилирована в MikroC Pro 5.30 для PIC. Подпрограммы для инициализации MAX7219 и отправки цифр написаны просто и понятно для того, чтобы их легко можно было повторить на других языках программирования. MAX7219 управляет яркость дисплея с помощью своего ШИМ.  Выход ШИМ управляется нижними полубайтами (D3-D0) регистра яркости (адрес 0x0A) и имеет 16 уровней яркости. Нулевое значение полубайтов дает минимальную яркость,  а когда все полубайты имеют значение 1, яркость становится максимальной. Для автоматической регулировки яркости, выход с АЦП с фоторезистором (LDR) сокращен до 0-10 (11 уровней яркости) путем простого деления значения 10-разрядного АЦП на 100. Затем используется таблица соответствия значений полубайтов уровню яркости. Температура отображается в градусах Фаренгейта (F), относительная влажность в процентах (Р).
         Скачать исходный код и HEX файлы можно внизу статьи.
         Микроконтроллер PIC12F683 работает на частоте 4 МГц от внутреннего генератора. MCLR и Power-On Timer включены. Настройка конфигурации фьюзов показана на рисунке.

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

    В архиве Проект на MicroC и прошивка для микроконтроллера PIC12F683

    trhmeter.rar [28,55 Kb] (cкачиваний: 405)

    Комментарии