Настенные часы-термометр с большими цифровыми индикаторами » Программирование устройств на PIC микроконтроллерах


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

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

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

На каком языке программирования вы пишите программы?


Ассемблер
Си
Бейсик
Паскаль
Другой


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Схемотехника » Часы-Таймеры » Настенные часы-термометр с большими цифровыми индикаторами
    Настенные часы-термометр с большими цифровыми индикаторами
    Автор публикации: alex Просмотров: 6382 Добавлен: 14-03-2016, 10:20 Комментарии: 1

         По сравнению с описанными в статье [1] того же автора предлагаемые настенные часы-термометр оснащены яркими светодиодными индикаторами белого свечения с более чем в два раза большей высотой цифр. Предусмотрены возможность гашения незначащего нуля и автоматическое изменение яркости индикаторов в зависимости от внешней освещённости. К часам можно подключить датчик температуры, наличие и тип которого определяются автоматически. Благодаря помехозащищённому алгоритму считывания показаний этот датчик можно вынести на значительное расстояние от часов.
         Схема часов изображена на рис. 1 Для повышения точности их хода микроконтроллер DD2 (PIC16F873AI/Р) тактируется от внешнего интегрального кварцевого генератора DD1 частотой 8 МГц Часы выполняют следующие функции:
    — отображают текущее время в 24-часовом формате с погрешностью не более 1 с за сутки;
    — отображают с дискретностью 1 С измеренную выносным датчиком температуру от -55 до +125 °С;
    — каждые 3 с автоматически заменяют значение времени на индикаторах значением температуры или обратно но возможно и постоянное отображение величины, выбранной пользователем;
    — автоматически изменяют яркость свечения индикаторов в зависимости от внешней освещенности, пороговое значение которой устанавливает пользователь.


         Предусмотрены ручная установка часов, минут и коррекция показаний по сигналам точного времени. При снятой перемычке S1 действует автоматическое гашение незначащего нуля Если есть необходимость отображать незначащий ноль, достаточно установить эту перемычку обратно.
         Часы можно питать от любого источника постоянного напряжения 28...30 В. Они потребляют ток не более 60 мА. Автор использовал импульсный источник питания от струйного принтера "Lexmark". В случае отключения этого источника светодиодные индикаторы гаснут, но счёт времени не прекращается, так как питание кварцевого генератора и микроконтроллера продолжается от резервного источника — литиевого элемента G1 напряжением 3 В.


         Особенность применённых в часах индикаторов A-501W с высотой знака 126 мм (5 дюймов) — в их элементах установлены по семь пар включённых последовательно светодиодов суммарное падение напряжения на которых превышает 20 В. Это не позволяет соединять индикаторы непосредственно с микроконтроллером, питаемым напряжением 5 В.
         Сигналы с выходов RC0—RC7 микроконтроллера поступают на катоды элементов светодиодных индикаторов HG1—HG4 через электронные ключи микросхемы DD3 (ULN2803A). Сигналы с выходов RA0—RA3 микроконтроллера управляют электронными ключами на транзисторах VT1—VT8, поочерёдно подключающими аноды индикаторов HG1—HG4 к цепи питания.
         Сразу после включения питания на индикаторы выводятся нули, начинается счет времени, мигают десятичные точки (элементы DP) индикаторов HG2 и HG3, разделяющие разряды часов и минут Обратите внимание, что индикаторы HG3 и HG4 должны быть установлены в часы повернутыми на 180°. Это связано с тем, что элемент DP индикатора HG3 используется как верхняя точка двоеточия, разделяющего часы и минуты, а такой же элемент индикатора HG4 служит символом градуса при отображении температуры.


         Если контакты кнопочного выключателя SA1 разомкнуты, то каждые 3 с на индикаторах значения времени заменяются значениями температуры, измеренной подключённым к разъёму ХР1 выносным датчиком, и обратно Фиксация кнопочного выключателя SA1 в замкнутом состоянии переводит часы в режим постоянного отображения текущего значения выведенной на индикатор в момент замыкания контактов величины — времени (рис. 2) или температуры (рис. 3). С размыканием контактов выключателя периодическая смена времени и температуры на индикаторе возобновляется.
         Датчик температуры может быть любым из DS18B20, DS1822, DS18S20, DS1820, причём программа определяет его тип автоматически. Номера контактов разъёма ХР1 совладают с номерами подключаемых к ним выводов перечисленных датчиков. Его можно установить не только в комнате, но и за окном или на балконе. При установке датчика на улице советую воспользоваться рекомендациями, приведенными в моей статье [2] Если он не подключён (или оборван соединительный провод), на индикаторы выводится только текущее время.
         Кнопкой SB1 при необходимости устанавливают соответствующее точному времени число часов, а кнопкой SB2 — минут. Нажатие на кнопку SB3 приостанавливает счёт времени и выводит на индикатор ноль минут Если перед этим нажатием число минут на индикаторе было больше 30, то число часов увеличится на единицу. В противном случае оно останется неизменным С момента отпускания кнопки счет времени возобновляется. Когда освещённость в помещении соответствует, по мнению пользователя, пороговой, достаточно нажать на кнопку SB4 и удерживать её до появления на индикаторах прочерков В EEPROM микроконтроллера будет записано значение, пропорциональное текущей освещённости работающего в фотовольтаическом режиме фотодиода VD1 (ФД-256), которое в дальнейшем используется как пороговое Когда освещённость ниже пороговой, яркость свечения индикатора автоматически уменьшится, а когда выше — увеличится. Кнопку SB4 следует разместить в таком месте, чтобы не затенять фотодиод в процессе установки порога. В авторском варианте она вынесена на плату индикаторов, где закреплена термоклеем.
    Измеренная температура, °С Поправка, °С
    Ниже -25 -3
    -25...-21 -1
    -20...+20 0
    +21...+25 -1
    +26...+30 -3
    Выше +30 -4

         Конструктивно часы состоят из модуля индикаторов размерами 420x140 мм и модуля контроллера, смонтированного на печатной плате размерами 130x100 мм. Чертеж двух печатных плат (по два индикатора на каждой), из которых состоит модуль индикаторов, не приводится ввиду их простоты и больших размеров. Для жёсткости между индикаторами и платами, на которых они установлены, проложена толстая пластина из изоляционного материала. Чтобы увеличить контрастность изображения, надо индикаторы закрыть автомобильной тонировочной плёнкой
         Лучшим решением (если найдётся ванна для травления нужных размеров) может быть изготовление единой платы индикаторов из стеклотекстолита толщиной не менее 2 мм. Не исключён и вариант проводного монтажа индикаторов на фанерном или пластмассовом листе соответствующих размеров и толщины.
         Плата контроллера, чертёж которой изображён на рис. 4, рассчитана на установку кнопочного выключателя В4003 и кнопок с угловыми выводами TS-A6PV-130. Под кнопки другого типа плату, возможно, придётся доработать. Для литиевого элемента CR2032 (G1) на плате установлен держатель ВН-642. Интегральный кварцевый генератор КХО-200 на 8 МГц можно заменить (с небольшим ухудшением точности хода часов) генератором на элементах ТТЛ с отдельным кварцевым резонатором [3].
         Правильно собранное устройство налаживания не требует. Необходимо лишь до монтажа микроконтроллера на плату записать в его память выбранную программу. Предлагаются два варианта программы: стандартный (файл c_t_873 hex) и с "солнечной" коррекцией температуры (файл c_t_873_sol.hex). Вариант с коррекцией автор разработал и использует в связи с тем, что у него датчик температуры расположен на солнечной стороне дома. Несмотря на меры, принятые для защиты датчика от прямых солнечных лучей при ясной солнечной погоде погрешность показаний датчика значительно возрастает. Она была определена экспериментально и скомпенсирована в программе автоматическим вводом в показания датчика поправки в соответствии с таблицей перед их отображением на индикаторе.

    Литература
    1. Суров В. Настенные часы-термометр — Радио, 2008. № 12, с.39—41.
    2. Суров В. Часы-термометр — Радио 2003, № 10, с. 39-41
    3. Нечаев И. Конструкции на логических элементах цифровых микросхем, МРБ, вып. 1172. — М. Радио и связь, 1992
    Автор: В. Суров, г. Горно-Алтайск
    Материал взят из: Журнала Радио 2016 №2

    В архиве: Разводка печатной платы в формате Sprint Layout 6.0, исходный текст программы на ассемблере и прошивка микроконтроллера PIC16F873A.

    nastentimerscifrind873.rar [28,76 Kb] (cкачиваний: 341)

    Комментарии
    Buster333 3 августа 2016 07:28 Группа: Посетители
    Повторил схему только на индикаторах SA23-11SRWA. Заработала без вопросов сразу. Редко когда подобное случается.
    Убрал также фотодиод и кнопки гашения нуля и установки порога освещенности. Мне они без надобности.
    Резисторы R7 - R14 пересчитал под свои индикаторы и их питание напряжением 12 в. Их номиналы по сегментам 150 ом, точка - 390 ом ( в сегментах по 4 последовательных светодиода, в точке - 2). Токи при этом по сегментам и точке получились примерно по 16 мА при номинальных 30 мА. Яркость свечения для моих целей меня устраивала без корректировки с помощью фотодиода.
    В целом конструкция мне понравилась. Спасибо автору. Буду делать еще по этой же схеме, но уже с индикаторами 5 дюймов.
    Хотелось бы спросить. Можно ли в данную схему включить еще один датчик температуры, чтобы мерить воздух и воду в бассейне летом?