Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Многопрограммный таймер-часы-термометр. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Регуляторы мощности, термометры, термостабилизаторы

Комментарии к статье Комментарии к статье

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

Универсальное цифровое устройство, схема которого изображена на рис. 1, имеет следующие технические характеристики:

  • одновременный или раздельный запуск до девяти программных таймеров;
  • функция часов и будильника;
  • подача звуковых и световых сигналов при срабатывании любого из таймеров или будильника;
  • возможность выдачи до четырех сигналов, управляющих внешними устройствами;
  • функция термометра (измеряемая температура - от -43 до +470 °С, средняя погрешность - не более ±2 °С);
  • функция терморегулятора (поддерживаемая температура - от -43 до +470 °С) с возможностью выбора режима работы (нагрев или охлаждение).

Многопрограммный таймер-часы-термометр
(нажмите для увеличения)

Управляют прибором с помощью 16-кнопочной клавиатуры. Предусмотрено включение и выключение подзвучивания нажатия кнопок, настройка подачи звуковых, световых и управляющих сигналов, возможность индивидуальной настройки прибора под конкретное применение путем изменения управляющей программы МК. Имеется резервное питание от встроенной аккумуляторной батареи. Все установленные при работе с прибором параметры сохраняются даже при отключении резервного питания в течение более 40 лет.

Как видно из схемы, основа устройства - PIC-контроллер DD1. Регистр сдвига DD2 и дешифратор DD3 предназначены для организации динамической индикации, принцип которой заключается в следующем. Вначале на дешифратор DD3 подается код 1111, в результате чего на всех его выходах устанавливаются уровни лог. 1 и ни один из разрядов индикатора HG1 не светится. Далее в регистр DD2 заносится код необходимого символа, после чего на DD3 подается код, соответствующий нужному разряду индикатора.

Одновременно с обновлением данных для индикатора осуществляется сканирование клавиатуры, 16 кнопок которой разделены на две группы - по восемь в каждой. Общие выводы кнопок этих групп подключены к двум входам МК (RB0 и RB1). При нажатии какой-либо кнопки на один из этих входов подается сигнал лог. 0 с соответствующего выхода дешифратора DD3, тем самым определяя ее код.

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

Рассмотрим назначение кнопок клавиатуры более подробно.

"0", "Clock" - цифра 0 при вводе числовой информации или переключение в режим часов, в котором можно изменить текущее время, установить время включения будильника, включить режим сигнализации наступления нового часа, отредактировать коэффициент коррекции времени (см. далее).

"1" - "9" - цифры 1 - 9 при вводе числовой информации или выбор соответствующего программного таймера.

"Term" - переход в режим терморегулятора, где можно задать текущее значение температуры, отредактировать значение регулируемой температуры, тип регулирования (нагрев или охлаждение) и параметры терморезистора.

"Del" - знак "минус" при вводе значения регулируемой температуры, включение/выключение терморегулятора, термометра, будильника или часов (при выключении вместо соответствующих показаний отображаются знаки ---), обнуление при вводе числовых данных.

"Set" - переход/выход в режим изменения значения какого-либо параметра (программного таймера, текущего времени, будильника, термометра, терморегулятора, настроек).

"Options" - переход в режим изменения настроек. Здесь можно включить/выключить подзвучивание кнопок, режим приветствия, выбрать источники выдачи управляющих сигналов и т. п.

"Select" - запуск/остановка текущего программного таймера, если его значение выдержки времени отлично от 0.

"АН" - запуск/остановка всех программных таймеров, значение выдержки времени которых отлично от 0.

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

  • сигнал будет активным (иметь уровень лог. 1) при работе одного из таймеров, номер которого задается пользователем;
  • то же, при работе любого числа таймеров, а неактивным - после окончания выдержки всех таймеров;
  • сигнал будет активным при срабатывании терморегулятора.

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

По окончании выдержки времени любого из запущенных таймеров индикатор HG1 начинает мигать, а пьезоизлучатель НА1 со встроенным прерывателем подает звуковые сигналы. Это продолжается до тех пор, пока пользователь не нажмет любую кнопку на клавиатуре или не пройдет определенное время, значение которого хранится в памяти МК и может изменяться при его программировании. Звуковой сигнал, выдаваемый при срабатывании таймера, определяется двумя параметрами: продолжительностью звучания и числом звуковых пачек.

При срабатывании будильника также подаются звуковые сигналы, но мигать начинают только два крайних левых символа индикатора - А и L (от англ. ALARM - будильник). Звуковой сигнал будильника также описывается двумя параметрами, хранящимися в памяти МК.

В зависимости от примененного кварцевого резонатора точность хода часов получается различной, поэтому в данном устройстве реализована программная коррекция времени. Коэффициент коррекции задается пользователем с клавиатуры и также хранится в памяти МК. Фактически он представляет собой число микросекунд, которое добавляется к периодам колебаний, генерируемых внутренним таймером МК - в нашем случае 1,92 мс. С помощью коэффициента коррекции добиваются, чтобы это время стало равным 2 мс (период времени 1 с регистрируется после каждых 500 таких периодов).

Температура измеряется путем измерения падения напряжения на терморезисторе RK1. Его сопротивление в зависимости от температуры определяется следующей формулой:

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

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

где Rд - сопротивление дополнительного резистора; N - 10-разрядный двоичный код, полученный после аналого-цифрового преобразования; Un - напряжение питания.

В описываемом приборе это выражение вычисляется управляющей программой МК, и результат выводится на индикатор. Следует отметить, что указанный выше интервал измеряемых и регулируемых температур (-43... +470 °С) можно как угодно растянуть, сжать или сдвинуть. Указанный интервал был выбран потому, что в нем погрешность измерения температуры не превышает ±2 °С. При этом сопротивление добавочного резистора R17 равно 300 Ом. Для уменьшения погрешности его можно увеличить, однако в результате изменятся границы интервала температур. Для удобства расчетов можно использовать документ term (10 bit).mcd для системы MathCAD 2001, который по заданным параметрам терморезистора RK1, резистора R17 и требуемой погрешности вычисляет интервал измеряемых температур.

Для того чтобы при выключении основного питания ход часов реального времени не сбивался, в приборе предусмотрен узел резервного питания МК. Он состоит из аккумуляторной батареи GB1 напряжением 3,6 В, резистора R16 и диодов VD2, VD3. При включении основного питания диод VD3 закрывается, а аккумулятор GB1 заряжается через резистор R16. При отключении основного питания напряжение аккумулятора поступает через диод VD3 только на МК (подаче напряжения на остальные элементы устройства препятствует диод VD2). МК определяет факт отключения питания, так как он постоянно следит за уровнем напряжения на выводе RB2. И когда он становится равным лог. 0, МК перестает осуществлять регенерацию индикатора и опрос клавиатуры, останавливает все запущенные программные таймеры, прекращает измерять и регулировать температуру и переходит в режим часов. Кроме того, если во время работы с прибором были изменены настройки, то после отключения питания кратковременно мигнет красный светодиод, если же настройки не изменились - зеленый. Если устройством предполагается не пользоваться продолжительное время (неделя и больше), то для исключения полной разрядки аккумулятора можно отключить резервное питание с помощью перемычки S1.

МК постоянно следит за состоянием контактов кнопок на клавиатуре, и если в течение заданного времени не было ни одного нажатия, а также не был запущен ни один программный таймер, он автоматически переходит в режим часов.

Управляющая программа МК написана на языке Си, поэтому она с легкостью может использовать любые типы данных, в том числе и вещественные. Программа разрабатывалась в системе программирования HT-PIC С (ее можно "скачать" с сайта <htsoft.com>). Для отладки использовался простейший внутрисхемный эмулятор, который представляет собой набор контактов, соединяющих линии параллельного порта компьютера с розеткой под МК на основной плате. Соответствие выводов параллельного порта компьютера гнездам розетки МК на плате таймера приведено в табл. 1. Для управления эмулятором управляющая программа МК компилировалась с небольшими изменениями в среде программирования Borland С++ 3.1.

Многопрограммный таймер-часы-термометр

К сожалению, работа подобного эмулятора происходит в масштабе времени, отличном от реального, но тем не менее без подобного устройства было бы практически невозможно отладить такую сложную программу. Без применения эмулятора было реализовано только аналого-цифровое преобразование, описание которого применительно к данному МК можно найти на сайте <microchip.ru> (документ DS30292C - "Модуль 10-разрядного АЦП в микроконтроллерах PIC16F87x").

Кратко рассмотрим основные моменты работы управляющей программы МК. Она написана с использованием методологии структурного программирования, вследствие чего имеет большое число подпрограмм. После включения питания МК настраивает порты ввода/вывода, АЦП и внутренний таймер. Затем начинает выполняться основной цикл, который является бесконечным. В нем, как уже говорилось, постоянно проверяется наличие основного напряжения питания, и в случае его отключения МК перестает выполнять все функции, кроме отсчета времени. При включении основного питания он выводит заставку и снова переходит в рабочий режим.

Информация, которая должна отображаться на индикаторе в текущий момент, хранится в массиве d. В процессе регенерации индикатора МК переписывает его содержимое в промежуточный массив, а уже из него последовательно читает коды выводимых символов и отображает их на индикаторе. Дополнительный массив введен для того, чтобы исключить мерцание индикатора, возникающее в результате записи в массив d новой информации до того, как старая еще не полностью отображена. Для примера допустим, что вначале массив d содержал строку "ABCDEFHLP", а при отображении четвертого символа ("D") в массив занесена строка "FDA 2002". Тогда пользователь прибора из-за инерционности человеческого зрения в некоторый момент времени увидит строку "ABC 2002". Кроме того, если подобные процессы будут повторяться постоянно (а это так и будет при реальной работе), у человека сложится впечатление, что информация на индикаторе мерцает.

Как отмечалось, одновременно с обновлением индикатора производится сканирование клавиатуры. При нажатии любой кнопки вызывается подпрограмма подавления "дребезга" контактов, которая осуществляет задержку в несколько миллисекунд (значение этого времени хранится в памяти МК), в течение которой прибор на дальнейшие нажатия кнопок не реагирует.

Следует также отметить, что время выдержки программных таймеров, часов и будильника задается в секундах (счетчик часов обнуляется при достижении значения 24 х 60 х 60 = 86400), а перед выводом на индикатор преобразуется в формат Ч : ММ : СС для таймеров или в формат ЧЧ : ММ для часов и будильника. Выполняется это с помощью следующих формул:

С = время mod 60.

Здесь операция ][ означает отбрасывание дробной части, т. е. деление является целочисленным.

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

младший разряд = значение mod 10.

Рассмотрим пример. Пусть необходимо вывести на индикатор значение 8673 с в формате Ч : ММ : СС. Получаем

С = 8673 mod 60 = 33.

Таким образом, на индикатор будет выведено 2 : 24 : 33

Из приведенных примеров видно, как много операций нужно выполнить только для организации вывода на индикатор. Реализовать подобную математику на языке ассемблера было бы практически невозможно. На языке же Си это реализуется всего несколькими строчками, при этом, благодаря высокому уровню оптимизации, программный код получается довольно компактным и быстрым. Но самое главное - программист при этом может сосредоточить основное свое внимание на алгоритме программы, абстрагируясь от специфических особенностей архитектуры применяемого МК. Все это способствует легкому переносу программы с одного МК на другой.

Исходный текст программы МК и коды "прошивки" в формате Intel HEX находятся по указанному выше адресу в Интернете.

Для программирования МК автор использовал программатор, собранный по схеме, изображенной на рис. 2, и программное обеспечение PonyProg2000, последнюю версию которого можно "скачать" с сайта <lancos.com>. Основное отличие программатора от описанного в [1] заключается в добавлении еще одного транзистора (VT3) в цепь формирования сигнала синхронизации, что повышает надежность программирования за счет полного устранения отрицательного напряжения на выводах МК.

Многопрограммный таймер-часы-термометр

Описываемое устройство допускает программирование МК на плате, т. е. поддерживает технологию ICSP (In-Circuit Serial Programming - внутрисхемное последовательное программирование). Для этого его соединяют пятью проводами с программатором через разъем Х1 следующим образом: 7 - общий; 5,6 - 5 В; 2 - SDA; 3 - SCL; 1 - Uprog.

Возможно использование и других программаторов, в том числе поддерживающих низковольтное программирование. В последнем случае нужно дополнительно соединить соответствующий контакт программатора с контактом 4 разъема Х1.

Чертеж печатной платы прибора изображен на рис. 3, клавиатуры - на рис. 4.

Многопрограммный таймер-часы-термометр
(нажмите для увеличения)

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

Многопрограммный таймер-часы-термометр

Исходные файлы проекта и библиотека используемых компонентов для САПР Accel EDA 15.0 находятся на указанном выше сайте.

В устройстве применены постоянные резисторы и конденсаторы для поверхностного монтажа. Исключение - оксидные конденсаторы С6, С7 (К50-35). МК PIC16F876 может иметь любые максимальную рабочую частоту и температурный диапазон, главное, чтобы он был в корпусе DIP (имел суффикс SP). Пьезоизлучатель НРМ14АХ можно заменить узлом, выполненным на трех элементах микросхемы КР1533ЛАЗ и пьезоизлучателе ЗП-18 [2]. Терморезистор RK1 - ММТ- 4 с номинальным сопротивлением 15 кОм (R0 = 0,294 Ом, В = 3176 К).

В качестве разъемов Х1 - ХЗ применены разрезные колодки с прямыми штырями, которые применяются в компьютерной технике: для Х1 используется колодка с двухрядным расположением штырей, а для Х2 и ХЗ - с однорядным. Восьмой контакт вилки ХР1 и третий вилки ХР2 удалены, а в соответствующие гнезда ответных частей разъемов вставлены заглушки - отрезки толстой рыболовной лески. Эта мера не позволит неправильно состыковать разъемы. Розетка разъема Х2 изготовлена из 20-гнездной панели под микросхему в корпусе DIP (используется одна ее часть, имеющая 10 контактов). Кнопки SB1-SB16 - TS-A3PS-130.

Содержимое ЭСППЗУ МК, которое можно изменять с целью задания других параметров работы, представлено в табл. 2.

Многопрограммный таймер-часы-термометр
(нажмите для увеличения)

В столбце "Параметр" указано название параметра, которое высвечивается на индикаторе. Если в этом столбце стоит прочерк, то данный параметр можно изменить только при программировании МК.

Литература

  1. Долгий А. Разработка и отладка устройств на МК. - Радио, 2001. № 6, с 24-26; № 7, с. 19-21
  2. Зелепукин С. Микроконтроллерный регулятор температуры MPT-1. - Радио, 2001, № 9, с 21, 22.

Автор: Д.Фролов, г.Рязань

Смотрите другие статьи раздела Регуляторы мощности, термометры, термостабилизаторы.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Чувства кота, ожидаюшего возвращения хозяина 16.07.2026

Многие владельцы кошек уверены, что их питомцы совершенно равнодушны к уходу человека из дома. Считается, что кошки - независимые существа, которые спокойно переносят одиночество и даже радуются, оставаясь одни. Однако испанские специалисты по поведению животных считают, что реальность гораздо сложнее. Реакция кошки на отсутствие хозяина зависит от ее индивидуального характера, степени привязанности к человеку и привычного распорядка дня. Кошки хорошо запоминают ежедневные ритуалы своих владельцев. Они способны связывать определенные звуки - звон ключей, шаги у двери или звук закрывающегося замка - с предстоящим уходом человека. Для одних животных эти сигналы означают возможность спокойно лечь спать, а для других становятся причиной беспокойства и длительного ожидания возвращения хозяина. Таким образом, кошка не просто "не замечает" уход, а активно реагирует на связанные с ним изменения в окружающей обстановке. Исследования поведения кошек показывают, что некоторые из них действи ...>>

Целесообразность приема пробиотиков после курса антибиотиков 16.07.2026

Антибиотики остаются одним из самых мощных инструментов современной медицины в борьбе с бактериальными инфекциями. Однако их действие не ограничивается уничтожением только вредных микроорганизмов. Эти препараты способны существенно влиять на состав кишечной микрофлоры, что часто вызывает вопросы у пациентов: насколько серьезны эти изменения, как долго они сохраняются и нужно ли после курса антибиотиков принимать пробиотики для восстановления. На эти вопросы попытались ответить исследователи, проанализировав имеющиеся научные данные. Во время приема антибиотиков многие люди сталкиваются с неприятными симптомами со стороны пищеварительной системы: тошнотой, болями или спазмами в животе, а также диареей. Такие реакции возникают потому, что препараты воздействуют не только на возбудителей инфекции, но и на полезные бактерии, которые населяют кишечник и участвуют в пищеварении, синтезе витаминов и поддержании иммунитета. Некоторые антибиотики, например азитромицин, могут напрямую влия ...>>

Резкое похудение и возврат веса могут навредить сердцу 15.07.2026

Многие люди, желая быстро избавиться от лишних килограммов, прибегают к строгим диетам с резким ограничением калорий. Достигнув желаемого результата, они часто постепенно или быстро возвращаются к прежнему рациону и прежнему весу. На первый взгляд это кажется лишь вопросом внешнего вида, однако ученые предупреждают: постоянные колебания массы тела могут оказывать негативное влияние на сердечно-сосудистую систему и обмен веществ. Так называемый эффект йо-йо, когда периоды активного похудения сменяются повторным набором веса, становится все более распространенным явлением. Новые исследования указывают на возможную связь между такими циклами и ухудшением работы сердца. Организм способен адаптироваться к изменениям питания, но постоянное повторение резких переходов между ограничением калорий и перееданием создает дополнительную нагрузку на различные системы. В одном из экспериментов на лабораторных животных исследователи моделировали эффект йо-йо, периодически снижая калорийность рац ...>>

Случайная новость из Архива

Высоковольтные МОП-транзисторы для быстродействующих коммутационных устройств 12.04.2016

Компания Toshiba Electronics Europe (TEE), европейское подразделение по производству электронных компонентов корпорации Toshiba Corporation, представила новую серию быстродействующих высоковольтных МОП-транзисторов для создания импульсных регуляторов напряжения.

Четыре устройства с номинальным напряжением 800 и 900 В с каналом n-типа обладают низким типовым сопротивлением в открытом состоянии (RDS(ON)) вплоть до 1,9 Ом. Целевые области применения новых устройств - обратноходовые преобразователи для светодиодных осветительных приборов, дополнительные источники питания и другие схемы, в которых требуется коммутация токов ниже 5 А.

Новые МОП-транзисторы, работающие в режиме обогащения, выпускаются с применением планарного технологического процесса производства полупроводников компании Toshiba восьмого поколения Pi-MOS-8, который сочетает высокий уровень интеграции и оптимизированную структуру ячеек. Эта технология обеспечивает снижение заряда и емкости затвора без потери преимуществ низкого значения RDS(ON), указали в компании.

По задумке Toshiba, эти МОП-транзисторы дополнят слаботочными устройствами существующую серию приборов DTMOS IV с номинальным напряжением 800 В и технологией DTMOS4 Super Junction. Транзисторы TK3A90E на 2,5 А и TK5A90E на 4,5 А имеют номинальное значение VDSS 900 В и типовые номинальные значения RDS(ON) 3,7 и 2,5 Ом соответственно. Транзисторы TK4A80E на 4,0 А и TK5A80E на 5,0 А имеют номинальное значение VDSS 800 В и типовые номинальные значения RDS(ON) 2,8 и 1,9 Ом соответственно.

Новые МОП-транзисторы Toshiba обладают сверхнизким максимальным током утечки, составляющим всего 10 мкА (VDS = 60 В), и диапазоном порогового напряжения затвора от 2,5 до 4,0 В (при VDS = 10 В и токе стока 0,4 мА). Все устройства поставляются в корпусах TO-220SIS стандартного форм-фактора.

Другие интересные новости:

▪ Новая серия ультраярких светодиодов белого свечения HLMP

▪ Вибромотор смартфона для прослушки

▪ Сплетни полезны для коллектива

▪ От эмульгаторов можно отказаться

▪ GPS-маячки для бутылок из-под наркотиков

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Сборка кубика Рубика. Подборка статей

▪ статья Электромагнитные поля и их воздействие на человека. Основы безопасной жизнедеятельности

▪ Как выглядела политическая карта Европы в раннее Средневековье (конец V-середина ХI в.)? Подробный ответ

▪ статья Берула прямая. Легенды, выращивание, способы применения

▪ статья Осветление льняного масла. Простые рецепты и советы

▪ статья День недели. Секрет фокуса

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026