Site Loader

Содержание

Часы-термометр на микроконтроллере ATmega8 — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • 8 будильников на отдельную ножку мк, вкл\откл нагрузки.
  • Два датчика температуры DS18B20 (дома и на улице).
  • Таймер 99 часов.
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость, как в АОН.
  • При пропадании 220 вольт потребление от батарей 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут последовательно показывать до 4 режимов.

В часах есть возможность последовательно показывать 4 режима, для которых выбирается один из десяти форматов отображения и время его показа.

Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Температура 1 датчик, Температура 2 датчик.

6

Температура 1 датчик (датчик дома).

7

Температура 2 датчик (датчик на улице).

8

Температура 1 датчик, Часы-минуты.

9

Температура 2 датчик, Часы-минуты.

A

Температура 1 датчик, Температура 2 датчик.

b

Температура 1 датчик, Температура 2 датчик.

В режимах где не указываются десятые градуса, точка определяет больше 0,5 гр..


Кнопка F — выход из режима. Выбор 3 основных режимов. 
Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю). 
Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню. 
Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню. 

Все режимы, кроме нулевого и режима таймера, имеют завершение по времени. Если не было нажатий более 30 секунд, устанавливается режим ноль.

Режим 0
нажать F
SET — вход в режим будильников.
F
SET — вход в режим таймера.
F
SET — вход в режим настроек.
F
Режим 0

Режим CALLS

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники A B C D E F G H вкл/откл. вывод call a_hмк. Будильник пригодится для управления нагрузкой. С его помощью вывод call a_h можно устанавливать на любое количество минут.
___-выключен, SET-ножка буд. A-H уст в 1, CLS уст в 0. 
n-сработает один раз, o-вкл. всегда.

Режим SETUP. 
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT ->SET-> L.ooooo   ->SET-> НО4Ь L.2   ->SET->   LIGHT .

Главные меню режима SETUP.
PORTPLUS MINUS листать основные режимы меню SETUP. 
SET — вход в выбранный режим, далее переход к следующему параметру.
Что бы выйти из выбранного режима нажать F.
ЧАСЫ
УSt SEE
SIGNAL
LIGHT
DS18B20
DEFAULT

Режим PORT.

PortУстановить/сбросить ножку будильника A..H. call a_h.

Режим часы.

Устанавливаются: минуты, часы, день недели, число.
Месяц.
Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты прибавляются на один.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0,03 секунды. Max=0.87.

Режим Уст SEE.

В нулевом режиме часы показывают попеременно до 4 режимов, для которых выбирается один из десяти форматов отображения и время его показа.
P1 выбор режима. 
r0 выбор одного из десяти форматов отображения. 
r0-003 время, которое будет виден выбранный режим. 
При времени равном 000 режим не отображается(выключен).
Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Температура 1 датчик, Температура 2 датчик.

6

Температура 1 датчик (датчик дома).

7

Температура 2 датчик (датчик на улице).

8

Температура 1 датчик, Часы-минуты.

9

Температура 2 датчик, Часы-минуты.

A

Температура 1 датчик, Температура 2 датчик.

b

Температура 1 датчик, Температура 2 датчик.

В режимах где не указываются десятые градуса, точка определяет больше 0,5 гр..

Режим УSt Буd. Установки будильника.

Bip сигнал будильника — ШИМ. 
Pin сигнал будильника — уст в 1 вывод буд. 
Oba Шим и вывод. 
Отсрочка сигнала. 
При откл. отсрочке будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут, если будильник не выключать, то после 8 раз срабатывания он откл. автоматически.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Датчики температуры DS18B20.
Режим показывает, как определилось подключение датчиков, и настраивает датчики на разрешение 12 бит.
on — датчик подключен 3 проводами;
PA.- паразитное питание, датчик подключен 2 проводами;
— — датчик отсутствует. 
При выходе из этого режима датчики настраиваются на разрешение 12 бит.

Режим DEFAULT.

По нажатию SET: Установка по умолчанию основных переменных в программе, обнуление всех будильников. Запись этих значений в EEPROM.
Прочие режимы (SETUP).
LIGHTL ooooo — дневная яркость индикатора.
НОЧЬ L2 — яркость с 23-00 до 6-00.
SIGNALпосле входа в режим кнопками плюс/минус выбирается:
budil. S или button. S 
соответственно частота ШИМ для будильника и кнопок.
При входе в эти подрежимы на индикаторе:
H004.L000.
Частота генерируется в режиме быстрой шим(CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт.
Что бы отключить сигнал от нажатия кнопок — установить H000 L000. 
Если в режиме УSt Буd.выбрана опция PIN, для будильника шим сигнал выводится не будет.

Действия в нулевом режиме. 

F — выбор режима. 
SET — режим отмены отсрочки сигнала 
PLUS — режим Уст SEE. 
MINUS — установка будильников.


Схема clock.spl (7 Kb)

Датчик температуры можно подключить двумя проводами, для этого нужно замкнуть GND c VDD, при этом датчик переключится в режим паразитного питания. Такой способ удобно применять для датчика, который расположен на улице. При таком подключении нужен резистор 100 ом для защиты порта, на схеме указан. По программе перед каждым циклом чтения температуры выполняется проверка на замыкание и на присутствие датчика. При любом криминале вывод мк. переводится в Z состояние, на индикаторе: —.

Если будильник настроить на включение вывода, то можно использовать чип от музыкальной открытки.


В этой монтажке не установлены транзисторы на вывод таймера и будильника A..H.

lay.rar (12 Kb)


Программа написана на си в WinAvr. 
Скачать исходник, HEX и EEP файлы. clock_t.rar (18 Kb) 

При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg ). Запрограммировать бит CKOPT (подключение внутренних конденсаторов). посмотреть для PonyProg. Затем прошить EEPROM, или сбросить основные переменные в программе таким образом — SETUP -> DEFAULT -> SET.

Часы на микроконтроллере своими руками. Часы на контроллере

Схема принципиальная электрическая

В одном устройстве объединено две функции: собственно измерение температуры и времени (часы). Индикация производится попеременно, сменяясь через десять секунд. Для настройки часов используется две кнопки, аналогично простым китайским электронным часам: одна отвечает за выбор параметра, вторая за его изменение. Питается устройство от сети с помощью постоянного стабилизированного источника тока напряжением пять вольт (плата от зарядного устройства телефона).

Датчиком температуры является микросхема DS18B20. Так как в устройстве «Часы-термометр» нет своей батареи, при пропадании питания естественно показания будут сбиваться. И что бы это не явилось причиной какого-нибудь опоздания человека на жизненно важные дела, имеется интересная «фишка» — при подаче питания вместо времени на дисплее будут отображаться прочерки, пока не нажмёшь одну из двух кнопок настройки.

Корпусом самодельного измерителя температуры послужила подходящая коробочка от запонок. В неё была помещена сама плата часов-термометра и плата вытащенная из телефонного зарядника. Датчик DS18B20 сделан выносным и подсоединяется через разъём.

Список необходимых деталей

  • Микроконтроллер Atmega8 — 1шт.
  • Кварц 32768 Гц — 1 шт.
  • Датчик температуры DS18B20 — 1шт.
  • Семи сегментный индикатор(4 — разряда) — 1 шт.
  • Резисторы SMD типоразмера 0805:
  • 620 Ом — 8шт.
  • 0 Ом (перемычка) — 1шт.
  • 4,7 кОм — 1шт.
  • Тактовые кнопки — 2 шт.

Видео работы устройства на Ютуб-канале

Этот вариант часов сделан таким образом, чтобы максимально упростить схему, снизить энергопотребление, и в итоге получить прибор, который легко помещается в кармане. Выбрав миниатюрные аккумуляторы для питания схемы, SMD — монтаж и миниатюрный динамик (например от нерабочего мобильного телефона), Вы можете получить конструкцию, размером чуть больше спичечного коробка.
Применение сверхъяркого индикатора позволяет снизить ток, потребляемый схемой. Снижение тока потребления также достигается в режиме «LoFF» — индикатор погашен, при этом включена только мигающая точка младшего разряда часов.

Индикация
Регулируемая яркость индикаторов позволяет выбрать наиболее комфортное отображение показаний (и опять же снизить энергопотребление).
В часах реализовано 9 режимов индикации. Переход по режимам осуществляется с помощью кнопок «плюс» и «минус». Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки — одна секунда. Применение кратковременных подсказок позволило достичь хорошей эргономичности часов. При переходах по режимам отображения (которых получилось достаточно много, для такого простого прибора, как обычные часы) не возникает путаницы, и всегда понятно, какие именно показания выведены на индикатор.

Коррекция показаний, выведенных на индикатор включается при нажатии на кнопку «Коррекция». При этом кратковременная подсказка выводится на 1/4 секунды, после чего корректируемое значение начинает мигать с частотой 2 Гц. Корректируются показания кнопками «плюс» и «минус». При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Частоты автоповтора нажатия кнопки составляют: для часов, месяцев и дня недели — 4 Гц; для минут, года и яркости индикатора — 10 Гц; для корректирующего значения — 100 Гц.

Все откорректированные значения, кроме часов, минут и секунд, записываются в EEPROM и восстанавливаются после выключения — включении питания. Секунды при коррекции обнуляются. Из всех режимов, кроме часы-минуты, минуты-секунды и LoFF организован автоматический возврат. Если в течение 10 секунд ни одна из кнопок не нажата, то часы переходят в режим отображения часов — минут.
Нажатием на кнопку «Вкл/Выкл буд.» включается/выключается будильник. Включение будильника подтверждается коротким двухтональным звуком. При включенном будильнике светится точка в младшем разряде индикатора.
В режиме «Corr» на индикатор выведена корректирующая константа, начальное значение которой 5000 микросекунд в секунду. При отставании часов константу увеличиваем на величину отставания, вычисленное в микросекундах за одну секунду. Если часы спешат, то константу уменьшаем по тому же принципу.

Схема

Данные часы с будильником основаны на микросхеме часов реального времени, что позволяет им работать от резервного источника питания при отсутствии основного. Заданное время будильника и режим работы хранится в энергонезависимой памяти микроконтроллера. Режим отображения — 24 часовой. Содержат имитацию «тикания» Индикация времени и режимов работы осуществляется посредством светодиодных индикаторов.
Принцип работы
Основой данных часов является микросхема DS1307 — часы реального времени, обменивающаяся информацией с управляющим контроллером посредством I2C интерфейса. Индикация времени осуществляется через 4 7-и сегментных индикатора, работающих в динамическом режиме. Ввод и корректировка времени осуществляется 5-ю кнопками: «+ минуты», «+ часы», «установка», «будильник» и «сброс». Звуковой сигнал будильника выводится через стандартный пьезоизлучатель и представляет из себя сигнал частотой 1кгц с секундными паузами.

В качестве управляющего микроконтроллера был выбран Atmega48 по причине его доступности и наличии необходимой периферии на борту(даже с избытком). Часы реального времени DS1307 подключены к аппаратным выходам I2C управляющего микроконтроллера. Для работы DS1307 в автономном режиме(в случае отключения питания главного контроллера) используется литиевая батарейка резервного питания на 3V, ресурса которой хватит на несколько лет из-за низкого энергопотребления микросхемы.

Рассмотрим подробнее управляющую программу:

Программа работает по принципу флагово-таймерного автомата: все состояния и события представлены в виде соответствующих флагов, выполняющихся в прерываниях соответствующего таймера 1с, 1мс и 263.17мс. Программа использует 2 аппаратных таймера.

Опрос часовой микросхемы и нажатие кнопок осуществляется с интервалом 263.17мс. Интервал 1мс служит для формирования звукового сигнала звонка, а 1с — для его модуляции. Секундный интервал также управляет миганием точки во 2-ом разряде индикатора, разделяющий часы и минуты и также служащим формированием «тиканья».
Рассмотрим принципиальную схему часов.

Обозначения и номиналы:
S4 — Увеличение часов
S3 — Увеличение минут
S2 — Установка
S1 — Включение будильника
S5 — Сброс

R6-R10 — 10k
R1-R5 — 510ом

Напряжение питания — 5 вольт.

Настройка и использование
Правильно собранные часы в дополнительной настройке не нуждаются. Необходимо лишь установить текущее время и будильник.
Установка текущего времени осуществляется следующим образом:
1) Кнопками S1 и S2 установить текущее время (точка между разрядами при этом не мигает)
2) Запустить часы кнопкой S3
Установка будильника:
1) Нажать S3 и убедиться в том, что загорелась точка в 1-ом разряде
2) Установить время звонка кнопками S1 и S2
3) Включить звонок кнопкой S4
Дополнительные возможности:
Включить тиканье — удерживая S4 нажать S2 до появления характерных звуков. Отключается так-же.
Отображение минут и секунд — удерживая S4 нажать S1. Если после этого нажать S3 произойдёт сброс секунд в 00. Возврат — та-же комбинация.
Фото и видео часов
Часы собраны в корпусе из под нерабочей «электроники».


И надо представить какой-либо готовый проект. По законам жанра это должен быть термометр , или часы . Поскольку у себя у закромах не нашлось датчика температуры — было решено написать код часов. Хочу сразу предупредить – это не атомные часы. Их точность зависит от стабильности тактового генератора на кварце. Можно конечно ввести коррекцию хода. Но думаю не надо. Для дома вполне хватит. Плату не разводил. Задача была написать прошивку, а не изготовить устройство. На написание кода ушло три вечера. Устройство пока сыровато. Можно его еще доработать. Если кого заинтересует, то пишите на форум. Будем доделывать. А кто хочет тот может и сам. Исходники выкладываю тут. Только не надо говорить, что говнокод. Хотел бы я посмотреть, что у вас получалось, когда только учились:)

Схема электрическая часов на МК и LCD

Часы отображают время, секунды, и дни недели. Есть также один будильник. Его можно и отключить. Кнопками можно установить все величины, кроме секунд.

Сам программатор

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


Настройку произведем только раз, и больше трогать кнопки не будем. Будильник будет работать ровно одну минуту с прерыванием писка в одну секунду каждый день.


Корпус кварцевого резонатора лучше припаять к минусу. В этом случае увеличится его стабильность. Бузер желательно подключить через транзистор для уменьшения нагрузки на контроллер. Если питать контроллер от 3,3V, то резисторные делители возле дисплея можно убрать — схема станет намного проще.


Для тех, кто хоть немного разбирается в микроконтроллерах, а также хочет создать несложное и полезное устройство для дома, нет ничего лучше сборки с LED индикаторами. Такая вещь может украсить вашу комнату, а может пойти на уникальный подарок, сделанный своими руками, от чего приобретёт дополнительную ценность. Схема работает как часы и как термометр — режимы переключаются кнопкой или автоматически.

Схема электрическая самодельных часов с термометром

Микроконтроллер PIC18F25K22 берёт на себя всю обработку данных и отсчёт времени, а на долю ULN2803A остаётся согласование его выходов со светодиодным индикатором. Небольшая микросхема DS1302 работает как таймер точных секундных сигналов, частота её стабилизирована стандартным кварцевым резонатором 32768 Гц. Это несколько усложняет конструкцию, зато вам не придётся постоянно подстраивать и корректировать время, которое будет неизбежно запаздывать или спешить, если обойтись случайным ненастроенным кварцевым резонатором на несколько МГц. Подобные часы скорее простая игрушка, чем качественный точный хронометр.

При необходимости, датчики температуры могут быть расположены далеко от основного блока — они соединяются с ним трёхпроводным кабелем. В нашем случае один температурный датчик установлен в блок, а другой расположен снаружи, на кабеле длинной около 50 см. Когда пробовали кабель 5 м, то тоже прекрасно функционировало.

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

Сама электроника запускается от 5 В, но для яркого свечения светодиодов необходимо использовать 12 В. Из сети, питание поступает через понижающий трансформатор адаптер на стабилизатор 7805 , который образует напряжение строго 5 В. Обратите внимание на небольшую зелёную цилиндрическую батарейку — она служит источником резервного питания, на случай пропадания сети 220 В. Её не обязательно брать на 5 В — достаточно литий-ионного или Ni-MH аккумулятора на 3,6 вольта.

Для корпуса можно задействовать различные материалы — дерево, пластик, металл, либо встроить всю конструкция самодельных часов в готовый промышленный, например от мультиметра, тюнера, радиоприёмника и так далее. Мы сделали из оргстекла, потому что оно легко обрабатывается, позволяет увидеть внутренности, чтоб все видели — эти часы собраны своими руками. И, главное, оно было в наличии:)

Здесь вы сможете найти все необходимые детали предлагаемой конструкции самодельных цифровых часов, в том числе схему, топологию печатной платы, прошивки PIC и

Часы на микроконтроллере своими руками. Электронные часы своими руками

Как видно из названия, главное предназначение данного устройства — узнавать текущее время и дату. Но оно имеет ещё множество других полезных функций. Идея его создания появилась после того, как мне на глаза попались полусломанные часы с относительно большим (для наручных) металлическим корпусом. Я подумал, что туда можно вставить самодельные часы, возможности которых ограничиваются только собственной фантазией и умением. В результате появилось устройство со следующими функциями:

1. Часы — календарь:

    Отсчёт и вывод на индикатор часов, минут, секунд, дня недели, числа, месяца, года.

    Наличие автоматической корректировки текущего времени, которая производится каждый час (максимальные значения +/-9999 ед., 1 ед. = 3,90625 мс.)

    Вычисление дня недели по дате (для текущего столетия)

    Автоматический переход на летнее и зимнее время (отключаемый)

  • Учитываются високосные годы

2. Два независимых будильника (при срабатывании звучит мелодия)
3. Таймер с дискретностью 1 сек. (Максимальное время отсчета 99ч 59м 59с)
4. Двухканальный секундомер с дискретностью счета 0,01 сек. (максимальное время счета 99ч 59м 59с)
5. Секундомер с дискретностью счета 1 сек. (максимальное время счета 99 суток)
6. Термометр в диапазоне от -5°С. до 55°С (ограничен температурным диапазоном нормальной работы устройства) с шагом 0,1°С.
7. Считыватель и эмулятор электронных ключей — таблеток типа DS1990 по протоколу Dallas 1-Wire (память на 50 штук, в которой уже имеется несколько универсальных ”ключей-вездеходов”) с возможностью побайтного просмотра кода ключа.
8. Дистанционный пульт управления на ИК лучах (реализована только команда «Сделать снимок») для цифровых фотокамер «Pentax», «Nikon», «Canon»
9. Светодиодный фонарик
10. 7 мелодий
11. Звуковой сигнал в начале каждого часа (отключаемый)
12. Звуковое подтверждение нажатия кнопок (отключаемое)
13. Контроль напряжения батареи питания с функцией калибровки
14. Цифровая регулировка яркости индикатора

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

Принципиальная схема часов

Устройство построено на микроконтроллере АТmega168PA-AU. Часы тикают по таймеру Т2, работающему в асинхронном режиме от часового кварца на 32768 Гц. Микроконтроллер почти всё время находится в спящем режиме (индикатор при этом выключен), просыпаясь раз в секунду, чтобы добавить эту самую секунду к текущему времени и снова засыпает. В активном режиме МК тактируется от внутреннего RC осциллятора на 8 МГц, но внутренний прескалер делит её на 2, в итоге ядро тактируется от 4 МГц. Для индикации используется четыре одноразрядных светодиодных цифровых семисегментных индикатора c общим анодом и децимальной точкой. Так же имеется 7 статусных светодиодов, назначение которых следующее:
D1- Признак отрицательного значения (минус)
D2- Признак работающего секундомера (мигает)
D3- Признак включенного первого будильника
D4- Признак включенного второго будильника
D5- Признак подачи звукового сигнала в начале каждого часа
D6- Признак работающего таймера (мигает)
D7- Признак низкого напряжения батареи питания

R1-R8 — токоограничительные резисторы сегментов цифровых индикаторов HG1-HG4 и светодиодов D1-D7. R12,R13 – делитель для контроля напряжения батареи. Поскольку напряжение питания часов 3V, а белому светодиоду D9 требуется около 3,4-3,8V при номинальном токе потребления, то он светится не в полную силу (но её хватает, чтобы не споткнуться в темноте) и поэтому подключен без токоограничительного резистора. Элементы R14, Q1, R10 предназначены для управления инфракрасным светодиодом D8 (реализация дистанционного управления для цифровых фотокамер). R19, R20, R21 служат для сопряжения при общении с устройствами, имеющими интерфейс 1-Wire. Управление осуществляется тремя кнопками, которые я условно назвал: MODE (режим), UP (вверх), DOWN (вниз). Первая из них также предназначена для пробуждения МК по внешнему прерыванию (при этом индикация включается), поэтому она подключена отдельно на вход PD3. Нажатия остальных кнопок определяется при помощи АЦП и резисторов R16,R18. Если кнопки не нажимаются в течении 16 сек, то МК засыпает и индикатор гаснет. При нахождении в режиме “Пульт ДУ для фотокамер” этот интервал составляет 32 сек., а при включенном фонарике — 1 минуту. Также МК можно усыпить вручную, используя кнопки управления. При запущенном секундомере с дискретностью счета 0,01 сек. устройство не переходит в спящий режим.

Печатная плата

Устройство собрано на двухсторонней печатной плате круглой формы по размеру внутреннего диаметра корпуса наручных часов. Но при изготовлении я использовал две односторонние платы толщиной 0,35 мм. Такую толщину опять же получил отслоив её от двухстороннего стеклотекстолита толщиной 1,5 мм. Платы затем склеил. Все это делалось потому что, у меня не было тонкого двухстороннего стеклотекстолита, а каждый сэкономленный миллиметр толщины в ограниченном внутреннем пространстве корпуса часов очень ценен, да и отпала надобность совмещения при изготовлении печатных проводников методом ЛУТ. Рисунок печатной платы и расположение деталей находятся в прилагаемых файлах. На одной стороне размещены индикаторы и токоограничительные резисторы R1-R8. На обратной — все остальные детали. Имеются два сквозных отверстия для белого и инфракрасного светодиодов.

Контакты кнопок и держатель батареи выполнены из гибкой пружинящей листовой стали толщиной 0,2…0,3мм. и залужены. Ниже приведены фото платы с двух сторон:

Конструкция, детали и их возможная замена

Микроконтроллер ATmega168PA-AU можно заменить на ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Цифровые индикаторы — 4 штуки KPSA02-105 суперяркие красного цвета свечения с высотой цифры 5,08мм. Mожно поставить из этой же серии KPSA02-xxx или KCSA02-xxx. (только не зеленые – они будут слабо светиться) Другие аналоги подобных размеров с достойной яркостью мне неизвестны. У HG1, HG3 соединение катодов сегментов отличается от HG2, HG4, потому что мне так было удобнее для разводки печатной платы. В связи с этим для них в программе применена различная таблица знакогенератора. Используемые резисторы и конденсаторы SMD для поверхностного монтажа типоразмеров 0805 и 1206, светодиоды D1-D7 типоразмера 0805. Белый и инфракрасный светодиоды диаметром 3мм. На плате имеется 13 сквозных отверстий, в которые необходимо установить перемычки. В качестве температурного датчика применён DS18B20 c интерфейсом 1-Wire. LS1 – обычная пьезоэлектрическая пищалка, вставляется в крышку. Одним контактом она соединяется с платой при помощи пружинки, установленной на ней, другим соединяется с корпусом часов самой крышкой. Кварцевый резонатор от наручных часов.

Программирование, прошивка, фьюзы

Для внутрисхемного программирования на плате имеются только 6 круглых контактных пятачка (J1), так как полноценный разъем не уместился по высоте. К программатору их подключал, используя контактное устройство, сделанное из штыревой вилки PLD2x3 и напаянных на них пружинками, прижимая их одной рукой к пятачкам. Ниже прилагается фото приспособления.

Я использовал его, так как в процессе отладки приходилось много раз перепрошивать МК. При разовой прошивке проще подпаять к пятачкам тонкие провода, подключенные к программатору, а после снова отпаять. МК удобнее прошивать без батареи, но чтобы питание поступало либо от внешнего источника +3V, либо от программатора c таким же напряжением питания. Программа написана на ассемблере в среде VMLAB 3.15. Исходные коды, прошивки для FLASH и EEPROM в приложении.

FUSE-биты микроконтроллера DD1 должны быть запрограммированы следующим образом:
CKSEL3…0 = 0010 — тактирование от внутреннего RC осциллятора 8 МГц;
SUT1…0 =10 — Start-up time: 6 CK + 64 ms;
CKDIV8 = 1 — делитель частоты на 8 отключён;
CKOUT = 1 — Output Clock on CKOUT запрещен;
BODLEVEL2…0 = 111 — контроль напряжения питания отключён;
EESAVE = 0 — стирание EEPROM при программировании кристалла запрещено;
WDTON = 1 — Нет постоянного включения Watchdog Timer;
Остальные FUSE – биты лучше не трогать. FUSE–бит запрограммирован, если установлен в “0”.

Прошивка EEPROM прилагаемым в архиве дампом обязательна.

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

Адрес ячейки

Назначение

Параметр

Примечание

Величина напряжения батареи, при которой происходит сигнал о её низком уровне

260($104) (2,6V)

коэффициент для коррекции значения измеренного напряжения батареи

интервал времени на переход в режим сна

1 ед. = 1 сек

интервал времени на переход в режим сна при включенном фонарике

1 ед. = 1 сек

интервал времени на переход в режим сна при нахождении в режиме ДУ для фотокамер

1 ед. = 1 сек

Здесь хранятся номера IButton ключей

Небольшие пояснения по пунктам:

1 пункт. Здесь указывается величина напряжения на батарее, при которой загорится светодиод, сигнализирующий о её низком значении. Я поставил 2,6V (параметр — 260). Если нужно другое, например 2,4V, то надо записать 240($00F0). В ячейку по адресу $0000 заносится младший байт, соответственно в $0001 – старший.

2 пункт. Поскольку я не установил на плату переменный резистор для подстройки точности измерения напряжения батареи питания ввиду отсутствия места, то я ввел программную калибровку. Порядок калибровки для точного измерения следующий: изначально в данной ячейке EEPROM записан коэффициент 1024($400), необходимо перевести устройство в активный режим и посмотреть на индикаторе напряжение, и тут же замерить вольтметром реальное напряжение на батарее. Коэффициент коррекции (К), который необходимо выставить, вычисляется по формуле: K=Uр/Uи*1024 где Uр – реальное напряжение, измеренное вольтметром, Uи – напряжение которое, измерило само устройство. После подсчёта коэффициента ”K” его заносят в устройство (как это делается сказано в инструкции по эксплуатации). После калибровки у меня погрешность не превысила 3%.

3 пункт. Здесь задается параметр времени, через которое устройство перейдет в спящий режим, если кнопки не нажимаются. У меня стоит 16 сек. Если допустим надо, чтобы засыпало через 30 сек, то надо записать 30($26).

В 4 и 5 пунктах аналогично.

6 пункт. По адресу $0030 хранится код семейства нулевого ключа (dallas 1-Wire), затем его 48 битный номер и CRC. И так 50 ключей последовательно.

Настройка, особенности работы

Настройка устройства сводится к калибровке измерения напряжения батареи, как описано выше. Также необходимо засечь отклонение хода часов за 1 час, посчитать и внести соответствующее значение коррекции (процедура описана в инструкции по эксплуатации).

Устройство питается от литиевой батареи CR2032 (3V) и потребляет в режиме сна примерно 4 мкА, а в активном режиме 5…20 мА в зависимости от яркости индикатора. При ежедневном пятиминутном использовании активного режима батареи должно хватить примерно на 2….8 месяцев в зависимости от яркости. Корпус часов соединен с минусом батареи.

Считывание ключей проверялось на DS1990. Эмуляция проверена на домофонах ”МЕТАКОМ”. Под порядковыми номерами от 46 до 49(последние 4) прошиты (все ключи хранятся в EEPROM, их можно изменять перед прошивкой) универсальные ключи для домофонов. Ключ, прописанный под номером 49 открывал все домофоны ”МЕТАКОМ”, которые мне попадались, остальные универсальные ключи тестировать не довелось, их коды я взял из сети.

Дистанционное управление для фотокамер проверялось на моделях Pentax optio L20, Nikon D3000. Canon не удалось заполучить для проверки.

Инструкция пользователя занимает 13 страниц, поэтому я не стал её включать в статью, а вынес в приложение в формате PDF.

Архив содержит:
Схема в и GIF;
Рисунок печатной платы и расположение элементов в формате ;
Прошивка и исходники на ассемблере;

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
DD1МК AVR 8-бит

ATmega168PA

1PA-AUВ блокнот
U2Датчик температуры

DS18B20

1В блокнот
Q1MOSFET-транзистор

2N7002

1В блокнот
С1, С2Конденсатор30 пФ2В блокнот
С3, С4Конденсатор0.1 мкФ2В блокнот
С5Электролитический конденсатор47 мкФ1В блокнот
R1-R8, R17Резистор

100 Ом

9В блокнот
R9Резистор

10 кОм

1В блокнот
R10Резистор

8.2 Ом

1В блокнот
R11Резистор

300 Ом

1В блокнот
R12Резистор

2 МОм

1В блокнот
R13Резистор

220 кОм

1В блокнот
R14Резистор

30 кОм

1В блокнот
R15, R19Резистор

4.7 кОм

2В блокнот
R16Резистор

20 кОм

1

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

Дисплей построен на шести 7-сегментных светодиодных индикаторов с регулировкой яркости. Часы также оснащены резервным питанием от батарей.

Описание конструкции микроконтроллерных часов

Как уже было сказано выше, часы имеют шестизначный дисплей, состоящий из двух трехзначных дисплеев T-5631BUY-11, работающий в мультиплексном режиме. Аноды индикаторов сгруппированы по разрядам и переключаются с помощью транзисторов Т1…Т6.

Катоды сгруппированы в сегменты и питаются непосредственно от микроконтроллера IO1 Attmega8. Частота мультиплексирования составляет 100Гц.

Часы контролируется низкочастотным кварцевым резонатором X1 с частотой 32768 Гц. В результате активации бита CKOPT, разрешающего использование внутренних конденсаторов 36пф для кварца, отпадает необходимость в использовании внешних конденсаторов.

В случае возникновении проблем с запуском генератора, можно попробовать подключить 2 конденсатора по 22пф. Для еще большей точности часов можно вообще отключить внутренние конденсаторы (сбросить бит СKOPT) и оставить только внешние.

Пъезоизлучатель REP1 издает звуковой сигнал будильника и сигнализирует о завершении работы таймера. Во время звукового сигнала на выводе 16 (порт PB2) появляется лог.1. Этот сигнал можно использовать для управления какой-либо нагрузкой.

Управление часами производится тремя кнопками — минуты, часы и режим. Кнопки подключены через резисторы, которые защищают порты микроконтроллер Attmega8. Схема питается от источника 5 вольт (7805). Потребление тока в основном зависит от числа активных индикаторов, а так же от степени настройки яркости.

При максимальной яркости ток потребления доходит до 60 мА. Часы снабжены резервной батареей питания. Во время работы от батареи, часы переходят в экономичный режим, при котором дисплей выключен. Так же в этом режиме не активны и кнопки за исключением случая, когда необходимо отключить звуковой сигнал.

Напряжение резервного питания от 3 до 4,5 В. Это может быть одна батарея на 3В, три NiMH или NiCd по 1,2 В или один аккумулятор Li-Pol или Li-Ion (от 3,6 до 3,7 В). Ток потребления от 3В батареи составляет всего лишь 5…12мA. Время автономной работы часов в экономичном режиме от батареи 3В типа CR2032 со стандартной емкостью 200mAh теоретически должно хватить примерно на 2,5 — 3 лет.

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

Управление часами

Часы управляются с помощью TL1-минута, час-TL2 и TL3-режим. Кнопки часы и минуты используются в режиме часов для назначения часов и минут. В других режимах они имеют различные функции. Кнопка режима переключает между различными режимами, которых в общей сложности 8:

Режим 1-й — Часы

В этом режиме на дисплее отображается текущее время в формате «ЧЧ.ММ.СС». Кнопка часов используется для установки часов. Кнопка минут для установки минут. При ее нажатии происходит сброс секунд.

Режим 2-й — Включение перехода на летнее время и установки года

Здесь Вы можете включать и выключать автоматический переход между летним и зимним временем и установить год. Данные следующего формата «AC ‘RR» (АС – автоматическое время, пробел, последние две цифры года).

Режим 3-й — Таймер обратного отсчета

Это режим позволяет организовать обратный отсчет от заданного значения до нуля. По истечении этого времени раздастся звуковой сигнал и светится светодиод LED1. Звуковой сигнал может быть остановлен нажатием кнопки Режим. Данные следующего формата «ЧЧ.ММ.СС». Максимально возможное значение составляет 99.59.59 (почти 100 часов).

Режим 4-й – Комбинированный вывод информации

В этом режиме, попеременно показывается:

  1. текущее время в формате «ЧЧ.ММ.СС»
  2. дата в формате «AA.DD.MM.»

Каждый формат отображается в течение 1 секунды. В этом режиме используются кнопки Часов и Минут, для регулировки яркости дисплея (Часы-, Минуты+). Яркость изменяется логарифмически в 6 этапов: 1/1, 1/2, 1/4, 1/8, 1/16 и 1/32-й. По умолчанию установлено 1/2

Режим 5-й — Установка дня недели и режим работы будильника

В этом режиме можно установить день недели — с понедельника по воскресенье (отображается как пн, вт, ср, чт, пт, сб, вс), включать будильник и выбирать его режим работы. Данные следующего формата «AA AL._» (день недели, пробел, AL., Настройка будильника).

Кнопка часов устанавливает день недели. Кнопка минут используется для включения/выключения звукового сигнала будильника и выбора режима его работы: «AL._» = будильник не активный, «AL.1″ = будильник сигналит 1 раз (затем автоматически переходит в положение»AL._»), «AL.5» = сигнал будильника только в будние дни (пн-пт, кроме сб-вс), «AL.7» = будильник звонит каждый день

Режим 6-й – Установка дня недели и даты

Кнопка часов позволяет установить день месяца. Кнопка минут позволяет установить месяц.

Режим 7-й — Секундомер

Секундомер позволяет измерять время с точностью 0,1 сек. Максимальное время измерения составляет 9.59.59.9 (почти 10 часов). Данные следующего формата «H.MM.SS.X». Кнопка минут используется для запуска и остановки секундомера. Кнопка часов используется для сброса.

Режим 8-й — Будильник

Этот режим используется для отображения и установить время будильника (ALARM). Данные следующего формата «HH.MM.AL». Кнопка Минуты устанавливает минуту будильника, кнопку Часы устанавливает час будильника.

Ниже приведена схема аналогичных часов, имеющие индикатор с общим катодом

(скачено: 765)

Предлагаю для повторения схемы электронных часов на микроконтроллере ATmega 8, с отображением информации большими светодиодами. Часы рабочие, проверенные. Прошивки на данный момент дорабатываются. Делается больше табло, которое будет на удалении от основного блока, метров 5. На основном блоке тоже будет индикация — дублировать большое табло. Принципиальная схема светодиодных часов показана на рисунке — клик для увеличения.

Описание прибора

1. Функции.
1.1 Часы. Формат отображения времени 24-х часовый. Цифровая коррекция точности хода.


1.2 Термометр. Измерение температуры с двух датчиков в диапазоне -55,0 оС — 125,0 оС.


1.3 Поочередный вывод информации на индикатор.
1.4 Контроль основного источника питания.
1.5 Использование энергонезависимой памяти микроконтроллера для сохранения настроек и установок при отключении питания.
1.6 Три кнопки для установки и настройки: PLUS , MINUS , SET .

Работа устройства

При первом включении на дисплее рекламная заставка в течении 1 сек. Потом отображение времени.
Нажатие на SET_TIME переводит индикатор по кругу из основного режима часов (отображение текущего времени):
– режим отображения минут и секунд. Если в этом режиме одновременно нажать на кнопку PLUS и MINUS , то произойдет обнуление секунд.
– установка минут текущего времени.
– установка часов текущего времени.
– величина ежесуточной коррекции точности хода часов. Символ c и значение коррекции. Пределы установки -25?25 сек. Выбранная величина будет ежесуточно в 0 часов 0 минут и 30 секунд прибавлена/вычтена из текущего времени.
– символ t . Настройка продолжительности отображения часов.
– символ i . Время отображения символов индикации внутренней температуры (int ).
– символ d . установка времени индикации температуры с внутреннего датчика.
– символ o . Время отображения символов индикации внешней температуры (out ).
– символ u . установка времени индикации температуры с внешнего датчика.
– символ P . установка времени индикации рекламной заставки.
Пределы установки для времени отображения 0-60 сек. Если установлен 0, данный параметр на индикатор не выводится. Если все параметры установить в 0 – на индикаторе будут часы.

Настройка часов

3.1 Во всех режимах удержанием кнопок PLUS /MINUS производится ускоренная установка.
3.2 Если производились изменения настроек, через 10 секунд от последнего изменения новые значения запишутся в энергонезависимую память (EEPROM) и будут считаны оттуда при повторном включении питания. Индикатор перейдет в основной режим времени.
3.3 Новые настройки вступают в силу по ходу установки.

Контроль питания

Микроконтроллер отслеживает наличие основного питания. При его отключении питание прибора осуществляется от внутреннего источника. Для уменьшения тока потребления отключаются индикатор, датчики и кнопки. Часы продолжают отсчитывать время. При появлении питания от основного источника все функции восстанавливаются.


На данный момент разрабатываются печатные платы, проводится корекция схемы, можно и коллективно. Если будут идеи и пожелания по усовершенствованию часов — пишите на форуме. Авторы конструкции: Александрович & SOIR (Soir&C.E.A)

Привет всем! Хочу предложить Вашему вниманию простые часы-пропеллер, которые я собрал на контроллере Atmega8. Они изготовлены из доступных деталей и их легко повторить и изготовить. Единственное что — необходим программатор для прошивки контроллера часов и пульта управления.

Для основания часов был использован обычный вентилятор 120 мм (кулер). Вентиляторы для этих часов можно использовать любые, как с вращением по часовой стрелке, так и против, потому что пока собирал эти часы, программу немного переделал и сделал переключение отображения символов с пульта программно.
Схема самих часов довольно простая и собрана на микроконтроллере Atmega8, для синхронизации работы которого использован часовой кварц с частотой 32768 Гц.
Часы питаются от приёмной катушки, энергия на которую передаётся с генератора с передающей катушкой. Обе эти катушки составляют воздушный трансформатор.

Со схемой и конструкцией генератора, особых проблем не возникло, так как был использован генератор от плазменного шара.

Генератор собран на распространённой микросхеме TL494 и позволяет менять ширину и частоту выходных импульсов в широких пределах.
Даже с зазором в сантиметр между катушками — напряжения вполне хватает для пуска часов. Только следует учесть, что чем больше зазор между катушками, тем больше нужно делать ширину импульса и соответственно от этого растёт и потребление тока от источника.

При включении генератора в первый раз, ширину импульсов (скважность) ставим на минимум (ручка регулятора в верхнем по схеме положении, то есть 4 нога через резистор R7 притянута к 14, 15, 2 ноге TL-494). Частоту генератора крутим, пока не исчезнет писк, это примерно 18-20 Кгц (настройка на слух), а если есть чем измерить частоту, то настраиваем её соответственно в этих пределах.
На плате генератора ещё дополнительно собран регулятор напряжения на LM317, предназначенный для регулировки скорости вращения вентилятора.
На схеме его нет, не дорисовал
. Посмотрите демонстрационное видео работы часов.

Видео.

Плата самих часов крепится к основанию вентилятора. Я закрепил её двухсторонним скотчем.

Потом переделал немного схему часов с фоторезистора на инфракрасный фотодиод (рисунок ниже).
В передатчике вместо простого светодиода, у меня теперь стоит инфракрасный.
Резистор вместо 2к поставил 100к.


Ответственными моментами при изготовлении часов являются — изготовление воздушного трансформатора и центровка (вернее балансировка) платы часов на основании вентилятора.

К этим моментам отнеситесь серьёзнее.

Воздушный трансформатор.

В основу взял кулер 120 мм обычный с бронзовыми втулками. Плата часов к основанию приклеена на двусторонний скотч.
С кулера откусываем лопасти и обтачиваем и выравниваем напильником, наждачкой. Катушки сделаны на каркасе из кабельного канала. Придумал такую конструкцию не я, просто взял эту идею из инета. Для намотки трансформатора делается основа из кабельного канала. Через каждые 5 мм на бортиках канала делаем надрез и аккуратно сворачиваем его в круг, диаметр подберите так, чтоб он плотно сел на пластмассовое основание вентилятора.

Далее на оправку из кабельного канала, наматываем 100 витков эмалированного провода, диаметром 0.25.
Ток потребления собранного трансформатора, у меня получился 200 мА (это с довольно заметным зазором между катушками).
В целом вместе с двигателем вентилятора, ток потребления получается в районе 0.4-0.5А.
Первичную (передающую) катушку делаем также, но стараемся сделать минимальный зазор между катушками. Передающая катушка тоже содержит 100 витков провода 0.3 (можно тем-же 0.25).
На схеме у меня немного другие моточные данные этих катушек.

Плата часов.

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

Для балансировки всей платы, с другой её стороны приклеиваем термоклеем винт, диаметром 3-4 мм, накручивая с другой стороны на винт различные гайки — добиваемся минимальной вибрации.
Для проверки работоспособности платы часов — коротим фоторезистор отверткой, пинцетом, светодиоды при этом должны моргнуть.
Часы начинают работать при появлении 5В (логическая единица) на 5 ноге атмеги. То есть при освещении фоторезистора — на 5 ноге должно быть 5В,
Когда фоторезистор не освещён, на 5-й ноге атмеги должен быть логический 0 (около 0В), для этого подбираем резистор на землю с 5 ноги. На схеме стоит 2 кОм, у меня получилось 2.5 Ком.
Внизу на основании вентилятора приклеиваем светодиод так, чтобы при каждом обороте двигателя вентилятора — фоторезистор проходил как можно ближе к источнику света (светодиоду).

Пульт управления.

Пульт управления предназначен для управления работой часов, переключения режимов отображения индикацией (смена направления вращения вентилятора), установки времени часов.

Схема пульта собрана на микроконтроллере ATTINY2313. На плате установлен сам МК с обвязкой и шесть кнопок, предназначенных для управления часами.

Корпус для пульта собирать не стал, поэтому только фото самой платы.

Информация по назначению кнопок пульта;
H+ и Н- настройка часов
М+ и М- настройка минут
R/L смена направления (для винтов крутящихся по часовой и против часовой)
font смена шрифта (тонкий, жирный и надпись сайт)
при надписи сайт кнопками H+ и H — регулируется ширина надписи.

В прикреплённом архиве содержатся все необходимые файлы для сборки часов;

Архив для статьи

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

Схема принципиальная электрическая

В одном устройстве объединено две функции: собственно измерение температуры и времени (часы). Индикация производится попеременно, сменяясь через десять секунд. Для настройки часов используется две кнопки, аналогично простым китайским электронным часам: одна отвечает за выбор параметра, вторая за его изменение. Питается устройство от сети с помощью постоянного стабилизированного источника тока напряжением пять вольт (плата от зарядного устройства телефона).

Датчиком температуры является микросхема DS18B20. Так как в устройстве «Часы-термометр» нет своей батареи, при пропадании питания естественно показания будут сбиваться. И что бы это не явилось причиной какого-нибудь опоздания человека на жизненно важные дела, имеется интересная «фишка» — при подаче питания вместо времени на дисплее будут отображаться прочерки, пока не нажмёшь одну из двух кнопок настройки.

Корпусом самодельного измерителя температуры послужила подходящая коробочка от запонок. В неё была помещена сама плата часов-термометра и плата вытащенная из телефонного зарядника. Датчик DS18B20 сделан выносным и подсоединяется через разъём.

Список необходимых деталей

  • Микроконтроллер Atmega8 — 1шт.
  • Кварц 32768 Гц — 1 шт.
  • Датчик температуры DS18B20 — 1шт.
  • Семи сегментный индикатор(4 — разряда) — 1 шт.
  • Резисторы SMD типоразмера 0805:
  • 620 Ом — 8шт.
  • 0 Ом (перемычка) — 1шт.
  • 4,7 кОм — 1шт.
  • Тактовые кнопки — 2 шт.

Видео работы устройства на Ютуб-канале

Читайте также…

Часы с термометром и таймером на PIC-микроконтроллере PIC16F873A

Предлагаемое устройство отсчитывает время, измеряет температуру в доме и на улице, выключает по истечении заданного времени сетевую нагрузку. Оно просто в изготовлении. Вся информация выводится на светодиодный индикатор, который видно как днем, так и ночью, как вблизи, так и издалека.

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

А встроенную подсветку, если она есть, в приборах с автономным (батарейным) питанием не рекомендуется использовать длительное время. Небольшие размеры цифр не позволяют разглядеть показания с расстояния более одного метра Кроме того в таких приборах применяются в основном многовыводные БИС для поверхностного монтажа, которые очень трудно заменить в случае неисправности.

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

Описания подобных конструкций можно найти, например. в [1.2]. Но они либо содержат слишком много деталей, либо выполнены на микроконтроллерах фирмы Atmel, а я предпочитаю работать с микроконтроллерами фирмы Microchip.

Принципиальная схема

Схема разработанного устройства на микроконтроллере PIC16F873A-I SP изображена на рис. 1. Тактовую частоту задает кварцевый резонатор ZQ1 с частотой 8.192 МГц Отсчет базовых интервалов времени ведет встроенный в микроконтроллер восьмиразрядный таймер-счетчик TMR0.

Рис. 1. Принципиальная схема часов с таймером и термометром на микроконтроллере PIC16F873A.

Резисторы R1-R4 поддерживают высокий логический уровень ча входах RA1. RA3. RC1.

RC3 микроконтроллера, когда кнопки SB1-SB4 не нажаты Пятиразрядный семиэлементный светодиодный индикатор зеленого цвета свечения собран из двух: четырехразрядного HG1 и одноразрядного HG2.

Рис. 2. Вывод значений температуры на индикатор.

Рис. 3. Варианты вывода значений на цифровой индикатор.

Температуру измеряют широко известные датчики DS18B20, не требующие калибровки и с погрешностью измерения не более ±0,5 С в интервале температуры от -10 С до +85 С. Каждый из этих приборов имеет индивидуальным 64-разрядный двоичный код. Перед считыванием измеренных значений температуры микроконтроллер считывает коды датчиков и тем самым проверяет их наличие.

Если датчик отсутствует, неправильно подключен или неисправен, то вместо числового значения температуры на индикатор будут выведены два «минуса» (рис. 2). Таким же останется изображение на индикаторе некоторое время после включения устройства до получения первых отсчетов температуры Это не является признаком неисправности.

Детали и печатная плата

Датчик ВК1 располагается внутри устройства и измеряет температуру от + 10 С до +40 °С. Датчик ВК2 вынесен на улицу, он измеряет температуру от -40 °С до +40 °С. Длина проводов, соединяющих его с микроконтроллером, — до 12 м. Если в корпусе устройства нет достаточного числа вентиляционных отверстий. то датчик ВК1 рекомендуется также вынести за его пределы.

Информация отображается на индикаторе циклически: 10с — время (рис. З. а), 5 с — температура, измеренная в помещении датчиком ВК1 (рис. 3,6), 5 с — температура, измеренная на улице датчиком ВК2 (рис. З.в).

Каждую секунду микроконтроллер проверяет состояние входов RA1, RA3, RC1, RC3. Когда какая-либо из кнопок SB1-SB4 нажата, уровень на соответствующем входе становится низким.

Рис. 4. Печатная плата для схемы часов на микроконтроллере.

На рис. 4 показана печатная плата устройства. Все установленные на ней конденсаторы керамические: С1, С2 — с диэлектриком NP0, а C3 и С4 — с диэлектриком Y5V. Резисторы — МЯТ, С1-4 и их аналоги.

Транзистор КТ503А можно заменить другим кремниевым структуры n-p-n с максимальным постоянным током коллектора не менее 100 мА. Вместо светодиодов L-53SGD и L-53SRD/D подойдут и другие соответственно зеленого и красного цветов свечения. Реле К1 — WJ105-1А 5V 5А, его контакты рассчитаны на ток до 5 А, а обмотка при напряжении 5 В потребляет ток 90 мА.

Плата помещена в корпус G413 фирмы GAINTA С его лицевой стороны сделано окно для индикатора. В верхней панели просверлены отверстия для толкателей кнопок SB1-SB4 и для светодиодов. С тыльной стороны корпуса установлены гнезда, соединенные с контактами реле К1, а также предназначенные для подключения источника питания и датчика температуры ВК1.

Для установки точного времени нажимают на кнопку SB1. На индикатор выводятся цифры, соответствующие числу часов. Удерживая нажатой кнопку SB4. устанавливают нужное значение. Второй раз нажимают на кнопку SB1 На индикатор выводятся цифры, соответствующие числу минут Удерживая нажатой кнопку SB4, устанавливают нужное значение.

Третий раз нажимают на кнопку SB1. На индикатор выводятся цифры, соответствующие текущему числу секунд. Нажатием на кнопку SB4 это значение обнуляют. Четвертое нажатие на кнопку SB1 возвращает устройство в рабочий режим.

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

После этого нажимают на кнопку SB2 На индикаторе появляется надпись. показанная на рис. 5,а. Если часы отставали, то, нажав и удерживая кнопку SB4, вводят число секунд отставания. В противном случае (часы спешили) еще раз нажимают на кнопку SB2 Когда на индикаторе появится надпись, показанная на рис. 5,6 с помощью кнопки SB4 вводят число секунд, на которое часы ушли вперед Нажатием на кнопку SB2 возвращают устройство в рабочий режим. Введенное для корректировки число секунд сохраняется в EEPROM микроконтроллера.

Рис. 5. Надписи на индикаторе.

Рис. 6. Программирование таймера.

Таймер можно запрограммировать на выдержку максимум 900 мин. Чтобы задать ее продолжительность, нажимают на кнопку SB3. На индикаторе появляется надпись, показанная на рис.

6. После этого, нажав и удерживая кнопку SB1, вводят число сотен минут Затем кнопкой SB2 вводят число десятков, а кнопкой SB4 — число единиц минут выдержки. Еще одним нажатием на кнопку SB3 возвращают устройство в рабочий режим. Заданная продолжительность выдержки сохраняется в EEPROM микроконтроллера.

Запускают таймер в любой момент нажатием на кнопку SB4. При этом уровень на выходе RA5 микроконтроллера становится высоким, реле К1 срабатывает По истечении выдержки уровень вновь станет низким, а контакты реле К1 разомкнутся. Если необходимо разомкнуть их ранее запланированного времени, следует еще раз нажать на кнопку SB4.

Прошивка для микроконтроллера PIC16F873A — Скачать (14кБ).

П. Кожухин, г. Курган. Р-2010-05.

Литература:

  1. Ревич Ю. Часы с термометром и барометром. Р-2003-04, 05, 07.
  2. Суворов В. Часы-термометр. Р-2003-10.

Настенные часы-термометр — RadioRadar

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

Рис. 1

 

Схема часов-термометра изображена на рис. 1. Их основой служит микроконтроллер AT89C2051-12PU (DD1). Тактовая частота микроконтроллера задана кварцевым резонатором ZQ1 на 3,6864 МГц. Она выбрана из условия деления её значения в герцах на 12 без остатка. Это необходимо для точного хода часов — в используемом микроконтроллере длительность машинного цикла равна двенадцати периодам тактовой частоты. Точная регулировка хода производится под

строечным конденсатором C4. Её можно выполнять по частотомеру, подключённому к одному из выводов кварцевого резонатора ZQ 1 через конденсатор ёмкостью 1 пФ.

 

Рис. 2

 

Индикатор часов-термометра состоит из четырёх семиэлементных знакомест (разрядов). Каждый элемент содержит по три соединённых параллельно светодиода. В качестве примера на рис. 2 показаны расположение и соединение светодиодов разряда десятков часов (крайнего левого). Напряже

нием, подаваемым через резисторы R8-R14 на катоды светодиодов одноимённых элементов каждого разряда, микроконтроллер управляет напрямую. Динамическая индикация организована с помощью ключей на транзисторах VT1 -VT4, коммутирующих по сигналам микроконтроллера общие аноды светодиодов разрядов индикатора. Два светодиода (HL43 и HL44), разделяющие на индикаторе разряды часов и минут, мигают с периодом 1 с, обозначая ход часов.

При включении часов выключателем SA2 на индикатор выводится время 00:00. Его точное значение устанавливают кнопками SB1 и SB2. После первого нажатия на SB2 начинает мигать разряд десятков часов. Выведенную в нём цифру изменяют, нажимая на SB1. Следующими нажатиями на кнопку SB2 поочерёдно переходят к установке единиц часов, десятков и единиц минут. При удержании SB1 нажатой изменяемое значение увеличивается со скоростью примерно две единицы в секунду, а достигнув максимального для данного разряда числа, возвращается к нулю. После установки единиц минут при нажатии на кнопку SB2 происходит запуск часов.

Микроконтроллер обменивается информацией по организованному программно интерфейсу 1-Wire с двумя цифровыми датчиками температуры DS18B20 — установленным на улице BK1 и размещённым в помещении BK2. Если температура в помещении не интересует, то датчик BK2 можно отключить выключателем SA1.

После 10с отображения времени программа микроконтроллера подаёт датчику BK1 команду измерить температуру и в течение 2 с выводит её значение в целых градусах Цельсия в двух правых разрядах индикатора, 

сопровождая его буквой У (улица) в крайнем левом разряде. Затем такая же процедура выполняется с датчиком BK2, показания которого сопровождаются буквой П (помещение). В обоих случаях интервал измеряемой температуры от -55 до +99 оС. Её отрицательные значения помечаются минусом во втором слева разряде индикатора.

При отсутствии датчика BK1 или выключенном BK2 программа микроконтроллера определяет это и пропускает соответствующую процедуру измерения температуры и её вывода на индикатор. Учтите, что в начале своей работы программа заносит в энергонезависимую память датчиков значения некоторых параметров, требующиеся для их правильной работы в описываемом устройстве. Поэтому после первого подключения датчика (например, в случае его замены) необходимо выключить и вновь включить питание часов-термометра.

Рис. 3

Печатная плата часов-термометра показана на рис. 3. Она изготовлена 

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

Программа микроконтроллера (файл prog.asm) написана на языке ассемблера для микроконтроллеров семейства MCS-51 и транслирована в загрузочный файл prog.hex с помощью интегрированной среды разработки 8051 

IDE for Windows (http://www.acebus. com/download/win8051.zip). Программирование микроконтроллера может выполняться с помощью любого программатора, способного работать с микроконтроллерами серии AT89.

Постоянное напряжение внешнего блока питания, подаваемое на разъём X1, может находиться в интервале 7…24 В. Я использовал зарядное устройство от сотового телефона. В случае отключения внешнего питания часы переходят на резервное от батареи GB1, составленной из пяти-шести гальванических элементов типоразмера АА. Малый ток потребления используемых светодиодов (единицы миллиампер) позволил отказаться от отключения индикатора при переходе на резервное питание.

Программу микроконтроллера можно скачать здесь.

Автор: А. Самусь, пгт.Левинцы Кировскойобл.

Схема. Часы-будильник и термометр с бегущей строкой на шестнадцатиэлементных индикаторах


В предлагаемом устройстве используются символьные светодиодные шестнадцатиэлементные индикаторы PSA08-11 с общими анодами. Выбор пал именно на них из-за невысокой стоимости, большого размера отображаемого символа и высокой яркости. Для того чтобы выводить максимум полезной информации, текст перемещается справа налево. На шести знакоместах поочерёдно отображаются текущее время, температура в помещении, температура вне его, число, день недели и месяц прописью, например, «18 МАРТА ЧЕТВЕРГ.

Счёт времени ведёт микросхема DS1307. Она представляет собой часы реального времени (Real Time Clock -RTC) со встроенным календарём. При выключенном общем питании эта микросхема продолжает работать от резервного источника — литиевого элемента CR2032 напряжением 3 В. Поскольку при отсутствии внешних обращений потребляемый микросхемой DS1307 ток не превышает 300 нА, счёт времени в таком режиме может продолжаться до десяти лет. Тактовый генератор этой микросхемы построен с применением внешнего кварцевого резонатора частотой 32768 Гц, что обеспечивает высокую точность хода. Микросхема отсчитывает секунды, минуты, часы, дни месяца (с учётом високосных лет), месяцы, дни недели и годы. Её календарь действителен до 2100 г. Более подробную информацию о ней можно получить в [1].

Для измерения температуры в устройстве применены цифровые термодатчики LM75, имеющие погрешность не более 2 °С в интервале температуры от -25 до +100°С. Более подробную информацию о них можно найти в [2].
Схема часов и термометра с бегущей строкой показана на рис. 1. Все функции, за исключением счёта времени, выполняет микроконтроллер DD2 (PIC16F873A-20I/P), тактируемый встроенным генератором с кварцевым резонатором ZQ2. Для управления устройством предназначены кнопки SB1—SB5. Когда их контакты разомкнуты, резисторы R4—R8 обеспечивают высокий логический уровень на соответствующих входах микроконтроллера. Резистор R11 поддерживает высокий уровень на входе начальной установки микроконтроллера, предотвращая перезапуск программы случайными помехами.

Для питания часов необходим стабилизированный источник напряжения 5 В с максимальным током нагрузки не менее 600 мА. Его подключают к разъёму XS1. В авторском варианте используется зарядное устройство от сотового телефона. Конденсаторы С1 и С2 — сглаживающие, причём ёмкость конденсатора С1 должна быть не менее 1000 мкФ.
В часах предусмотрен будильник. Его звуковой сигнал подаёт пьезоизлучатель со встроенным генератором НА1 (НРА24АХ). По сигналам микроконтроллера им управляет ключ на транзисторе VT7. Подбирая резистор R18 в цепи базы этого транзистора, можно в некоторых пределах регулировать громкость звука.

Для индикации режимов работы предназначены светодиоды HL1—HL3 красного цвета свечения. Их яркость изменяют, подбирая резисторы R15— R17.
Для программирования микроконтроллера, установленного на плату, на ней имеется разъём ХР1. На время выполнения этой операции к нему присоединяют программатор, например, PICkit2, EXTRAPIC или другой подобный [3]. В действующем устройстве этот разъём не нужен. Его можно не устанавливать, если до монтажа на плату запрограммировать микроконтроллер в панели программатора.

Программирование микроконтроллера заключается в загрузке программного кода из НЕХ-файла в его FLASH-память. Для этого требуется управляющая программатором программа, например WinPic800, которая находится в свободном доступе по адресу www.winpic800.com/descargas/WinPic800.zip   в сети Интернет. Подробную инструкцию по программированию микроконтроллера также можно прочитать в [3].
Для упрощения программы микроконтроллера и устройства в целом микросхема RTC DD1 и датчики температуры ВК1 и ВК2 связаны с микроконтроллером по одной и той же шине I2C. Датчик ВК2 подключают к разъёму ХР2 кабелем длиной до нескольких метров по схеме, изображённой на рис. 2.

Резисторы R2 и R9 соединяют линии SCL и SDA шины I2C с плюсом питания, поддерживают на них высокий уровень в паузах передачи информации, как того требует спецификация шины. Более подробно об использовании этой шины можно узнать из [4]. Адресные входы датчиков температуры ВК1 и ВК2 по-разному соединены с плюсом питания и общим проводом, что даёт микроконтроллеру возможность программно различать датчики.

Шестнадцатиразрядные параллельные коды для вывода информации на индикаторы образуются на выходах микросхем DD3 и DD4. Микроконтроллер DD2 заносит информацию в эти микросхемы последовательным кодом, используя для этого всего три линии своих портов В и С. Установив на линии RC6 и информационном входе сдвигового регистра микросхемы DD3 уровень, соответствующий значению (0 или 1) очередного разряда кода, он формирует на линии RC7 и тактовых входах обеих микросхем нарастающий перепад уровня. При этом уже содержащийся в соединённых последовательно сдвиговых регистрах код перемещается на одну позицию в сторону старшего разряда регистра DD4, а в освободившийся младший разряд регистра DD3 записывается значение, установленное микроконтроллером на его входе.

После шестнадцати таких операций весь код записан в образованный микросхемами DD3 и DD4 шестнадцатиразрядный сдвиговый регистр. Однако на выходах микросхем этот код ещё не появился, на них продолжает действовать тот, что был выведен в предыдущем цикле. Чтобы обновить состояние выходов, микроконтроллер формирует нарастающий перепад уровня на своей линии RB0 и входах записи кода из сдвиговых регистров микросхем DD3 и DD4 в их регистры хранения. Более подробно с работой микросхемы преобразователя последовательного кода в параллельный 74НС595 можно ознакомиться, прочитав [5].

После записи кода в микросхемы DD3 и DD4 микроконтроллер подаёт команду включить тот из шести индикаторов, для катодов элементов которого этот код предназначен. Чтобы не перегружать выходы микроконтроллера, аноды индикаторов соединены с ними через ключи на транзисторах VT1—VT6. Схема платы индикаторов показана на рис. 3, а условные обозначения элементов индикатора PSA08-11SRW — — на рис. 4. Разъёмы ХР1 и ХР2 платы индикаторов соединяют соответственно с разъёмами XS3 и XS2 основной платы.

Чертежи основной платы и размещения элементов на ней приведены на рис. 5. Она изготовлена из фольгированного с одной стороны стеклотекстолита. Плата рассчитана на установку датчика температуры ВК1 в корпусе DIP8, однако датчик LM75AD выпускают в корпусе SO8 для поверхностного монтажа, поэтому устанавливать его следует через плату-переходник (рис. 6). На рис. 5 контур переходника показан штрихпунктирной линией. В соответствующие отверстия переходника и платы вставляют и пропаивают с обеих сторон отрезки провода. Можно, конечно, изменив топологию печатных проводников на основной плате, обойтись и без переходника.

Двусторонняя печатная плата индикаторов показана на рис. 7. Обратите внимание, что разъёмы на ней устанавливают со стороны, противоположной той, где находятся индикаторы. При сочленении разъёмов обе платы располагаются одна над другой «этажеркой», как можно видеть на фотоснимке рис. 8.
Транзисторы КТ502Б можно заменить любыми той же серии. Вместо светодиодов АЛ307БМ подойдут и другие маломощные красного цвета свечения, например АЛ310А.
Правильно собранное устройство с корректно запрограммированным микроконтроллером в налаживании не нуждается и начинает работать сразу после включения.

После подачи питания первым на индикаторы выводится приветственное сообщение. За ним следует время в 12- или 24-часовом формате, который можно выбрать в соответствующем пункте меню. Далее бегущая строка с текущим временем на 10с останавливается. По их истечении выводятся температура в помещении (показания датчика ВК1), температура на улице (показания датчика ВК2) и выдерживается ещё одна десятисекундная пауза, в течение которой индикатор показывает уличную температуру. После этого выводится число, за ним месяц и день недели прописью, после чего цикл (за исключением приветственного сообщения) повторяется.

Для установки текущего времени и других параметров переходят в режим «Меню» кратковременным нажатием на кнопку SB3 «М». Включается светодиод HL2, показывая, что этот режим включён. На индикаторе после сообщения «НАСТРОЙКА» выводится и останавливается строка «ЧАС XX», где XX — текущее значение часа, которое можно увеличить нажатием на кнопку SB1 «+» или уменьшить нажатием на кнопку SB5 «-«.
Для того чтобы перейти к следующему пункту меню, нажимают на кнопку SB2 «>». С её помощью меню можно «листать» в указанном далее порядке, с помощью кнопки SB4 «<» — в противоположном. После первого нажатия на кнопку SB2 «>» выводится строка «МИН XX», затем «ГОД 20ХХ» (по умолчанию 2011), далее «МЕСЯЦ XX», «ЧИСЛО XX», «ДЕНЬ НЕДЕЛИ XX», «БУД_ЧАС XX» (час срабатывания будильника), «БУД_МИН XX» (минуты срабатывания будильника).

Затем на индикаторе появляется одна из строк «БУД ВЫКЛ» или «БУД ВКЛ», отображая текущее состояние будильника. Его можно менять, нажимая на кнопку SB1 «+» или SB5 «-«. Когда будильник включён, горит светодиод HL1, сигнализируя об этом.
Далее выводится строка «ФОРМАТ XX», где XX равно 12 или 24 в зависимости от выбранного нажатиями на кнопку SB1 «+» или SB5 » формата отображения времени. После очередного нажатия на SB2 «>» выводится строка «ПОКА», выключается светодиод HL2, часы переходят в обычный рабочий режим.

Когда текущее время совпадает с заданным временем срабатывания будильника, включаются светодиод HL3 и излучатель звука НА1. Чтобы отключить световую и звуковую сигнализацию, достаточно нажать на любую кнопку. Электрический сигнал для управления внешним исполнительным устройством при необходимости можно снять с выхода RB5 микроконтроллера, к которому через резистор R17 подключён светодиод HL3.
При выключенном внешнем питании устройство продолжает счёт времени — микросхема DD1 работает от литиевого элемента G1.

Прилагаемые файлы: source.zip

ЛИТЕРАТУРА
1. DS1307 — 64 X 8 часы реального времени с последовательным интерфейсом. — www.piclist.ru/D-DS-DSB1 «+»307-RUS/D-DS-DS1307-RUS.html
2. LM75A Digital tem- perature sensor and thermal watchdog. www.alldatasheet.com/datasheet-pdf/pdf/100962/PHILIPS/LM75AD.html
3. Долгий А. Программаторы и программирование микроконтроллеров. — Радио, 2004, № 1, с. 53.
4. Семёнов Б. Ю. Шина I2C в радиотехнических конструкциях. — М.: «СОЛОН-Р», 2002.
5. 74НС595; 74НСТ595 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state. — www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

В. БАЛАНДИН, с. Петровское Тамбовской обл.
«Радио» №9 2012г.

Post Views: 2 083

Термометр на мк пик своими руками. Термометр на ATmega8 и датчике температуры DS18B20. Двухканальный термометр на микроконтроллере ATmega8 и датчиках DS18B20

На рисунке показана схема термометра выполненного на основе микроконтроллера PIC16F628A, в качестве датчика используется цифровой датчик температуры DS18B20. Индикатор термометра состоит из 4-х разрадного семисегментного индикатора. Диапазон измеряемой температуры от -55 до + 125 градусов Цельсия. Температура считывается каждые 15 секунд, время считывания можно изменить в коде.

Напряжение питания термометра 5В, ток потребления 90 мА. В схеме используются транзисторы BC337 или аналогичные. Ток потребления каждого сегмента индикатора 15 мА (динамическая индикация), который ограничен резисторами 220 Ом (индикатор с общим катодом).

Файл прошивки —

DS18B20 цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии так и работать в группе. Все процессы на шине управляются центральным микропроцессором.

Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения.
Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков DS18B20 установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку. Приложения, которые могут извлечь выгоду из этой особенности, включают системы контроля температуры в зданиях, и оборудовании или машинах, а так же контроль и управление температурными процессами.

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

Войти с помощью:

Случайные статьи
  • 10.10.2014

    На рисунке показана схема предварительного усилителя с тембро-блоком, тембро-блок включен в цепь обратной связи предварительного усилителя. Напряжение питания уст-ва может варьироваться от 12 до 24В, потребляемый ток не более 10 мА. Входной сигнал поступает через разделительный конденсатор С1, резисторы R1 и R2 определяют напряжение смещения транзистора VT1, после предварительного усиления …

Это обычный цифровой термометр, на просторах интернета подобных девайсов очень много. Основа микроконтроллер PIC16F628A и цифровой датчик температуры DS18S20 (DS18B20). В качестве индикаторов применены светодиодные 3-х разрядные индикаторы зеленого цвета. Индикация динамическая. Термометр работает во всем диапазоне температур датчика DS18S20, т.е. от -55 до +125 градусов.

Собран термометр на печатной плате, вместе с индикатором. Датчик и питание подключаются отдельно. Если датчик не подключен, на индикаторе высвечивается буква Е (Error). Никаких особенностей данный прибор не имеет. Диод VD1 служит для защиты от переполюсовки источника питания.

Прибор может работать как с датчиком DS18B20, так и с датчиком DS1820(DS18S20). Под каждый датчик используется своя прошивка микроконтроллера. Ниже приведен вариант этого термометра с уже установленным на печатную плату диодным мостом и стабилизатором 7805, т.е. для питания этого устройства достаточно подключить вторичную обмотку трансформатора к разъему питания. Кроме того, на этой плате установлен светодиод, который кратковременно вспыхивает во время опроса микроконтроллером датчика температуры. Светодиод подключен между ножкой RB3 (вывод 9) и «массой», естественно с резистором. Отсутствие светодиода на плате никак на работу термометра не повлияет.

Прибор удобно разместить в любой пластиковой коробке подходящих размеров. Я разместил его в корпусе сетевого блока питания (Адаптора) вместе с трансформатором. Т.е. из коробки выходит только разъем на датчик DS18B20, а сам корпус вставляется в сеть 220В.

Файл:
Размер:
Содержимое:

sm_termo.rar
38.3 КБ
Рисунки плат (LAY) и прошивки микроконтроллера.

Схема термометра на ATmega8 и DS18B20

Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20

Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B20 . Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса

Термометр по своим характеристикам очень прост, и его можно использовать только как термометр для измерения «комнатной» температуры. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция — основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция другого термометра — на двух датчиках DS18B20, что позволит измерять температуру не только в комнате, но и «за бортом». Естественно, будет добавлена возможность измерять и отрицательные температуру. В дальнейшем в конструкцию будет добавлена функция термостата, часы, возможность работы с различными нагрузками, что позволит уже собрать несложную конструкцию — основу «умного дома». Ну а сегодня первая статья из этой серии.

Схема термометра на ATmega8 и датчике температуры DS18B20

Давайте посмотрим на схему термометра:

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

Напряжение питания конструкции — 5 вольт. Если вы примените микроконтроллер с низковольтным питанием , то можно и понизить питающее напряжение конструкции, но в этом случае, возможно придется уменьшить номинал гасящих сопротивлений в сегментах индикатора. Приблизительно номиналы сопротивлений можно брать:
— при питании 5 вольт — 200-300 Ом
— при питании 2,7 — 3 вольта — 100-150 Ом

Транзисторы — любые, маломощные, структуры NPN.
Датчик температуры — DS18B20
Семисегментный индикатор — любой трехразрядный с общим катодом. Если вы захотите применить другие, с общим анодом, тогда придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для вывода цифр на индикатор). Я применил индикатор красного цвета свечения, и заодно, для следующей схемы, приготовил такой-же, но голубого цвета свечения.

Детали термометра на микроконтроллере ATmega и DS18B20



Распиновка микроконтроллера ATmega8:

Трехразрядный семисегментный индикатор FYT-5631AUR-21:

Датчик температуры DS18B20:

Транзисторы BC547C:

Алгоритм работы программы термометра на ATmega и DS18B20

Все установки микроконтроллера заводские, FUSE-биты трогать не надо.

Для работы программы задействовано два таймера/счетчика микроконтроллера:
восьмиразрядный Т0
шестнадцатиразрядный Т1
С помощью восьмиразрядного таймера Т0 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/8 (период 2 миллисекунды) организован:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатиразрядного таймера Т1 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/64 (период 4 секунды) организованно:
— подача команды датчику DS18B20 на измерение температуры
— считывание измеренной температуры с датчика
В принципе, можно задействовать и один восьмиразрядный таймер/счетчик, также настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и всю работу схемы организовать в процессе обработки прерывания. Но дело в том, что смысла в этом нет — датчику DS18B20 необходимо чуть меньше 1 секунды (при 12-ти битном разрешении) для конвертирования (определения) температуры, т.е., чаще чем 1 раз в секунду мы не сможем обновлять данные температуры. Кроме того, столь частое обновление температуры приведет к нагреву датчика и, соответственно, к искажению реальных данных. Использование второго счетчика позволяет отдельно задавать промежутки времени измерения температуры.

Вот так выглядит основная часть программы в Algorithm Builder:

Где:

SP — настройка начального адреса стека

Timer 0 — настройка таймера T0:

Timer 1 — настройка таймера Т1:

TIMSK — настройка прерываний от таймеров:

Init_Display — подпрограмма настройки разрядов портов, участвующих в динамической индикации вывода данных на трехразрядный семисегментный индикатор

1 —> I — глобальное разрешение прерываний

Если возникнут вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите — отвечу.

(2,4 KiB, 7 004 hits)

По просьбам тех, кто собрал предыдущую конструкцию барометра на PIC 16F684 и датчике давления BMP180, публикуем статью (продолжение). Данное устройство позволяет отображать одновременно и температуру и давление. Для этого в конструкции был применен индикатор на базе микросхемы MAX7219 которая позволяет работать с матрицей 8Х7, применение данного индикатора позволило сократить число задействованных портов микропроцессора.

Датчик температуры применен самый распространенный — 18b20, который имеет трехвыводную конструкцию. DS18B20 (Programmable Resolution 1-Wire® Digital Thermometer). Диапазон измерения температуры составляет от -55 до +125 °C. Для диапазона от -10 до +85 °C погрешность не превышает 0,5 °C.

Схема устройства показана на рисунке 1.

Индикатор MAX7219 приобретался на Aliexpress. Но данный индикатор продается уже в готовом виде и вам остается только 5ю проводниками его подключить к запрограммированной плате.

Принципиальная схема индикатора показана на рисунке 2, внизу показано фото такого индикатора.

Внешний вид собранного устройства показан на фото ниже.

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

Скачать рисунок печатной платы, схему и прошивку.

Описание работы термометра

Назначение этого термометра всего лишь показывать температуру. Небольшие отличия от других подобных схем только в формате вывода температуры на LED индикатор, который представляет из себя 4-х разрядный сверхяркий CA04-41SRWA. В качестве датчика температуры применён DS18B20 в обычном включении с отдельным проводом питания.

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



Затем на индикатор выводятся сами показания температуры.



Вид вывода показаний следущий:


Отличие формы вывода есть только для низких положительных температур. При индикации такой температуры к символу «градус» добавлен знак «C». То есть градусы цельсия.Символ «градус» присутствует на индикаторе при любой измеряемой температуре.

Датчик температуры DS18B20 измеряет температуру с разрешением 0,0625 градусов цельсия. Термометр считывает показания из датчика и округляет их до десятых долей градуса. Десятые доли градуса выводятся на индикацию во всех режимах индикации, кроме режима температур меньших, чем -10 градусов цельсия. Это сделано для того, чтобы на показаниях отрицательных температур всегда присутствовал знак «минус».

Показания присутствуют на индикаторе в течение 30 секунд. Затем прибор снова уходит в спящий режим и индикатор выключается.


Моделирование термометра в протеусе


Модель в протеусе позволила отработать программную часть термометра не собирая сам прибор в железе. Все режимы оттестированы. Сбоев при моделировании в программе нет.



Саму модель можно загрузить по ссылке: termo_i_v2.DSN

Принципиальная схема термометра


Схема нарисована отталкиваясь от рисунка печатной платы. Сначала была сделана разводка проводников печатной платы, таким образом, чтобы длина проводников и расположениен деталей было оптимальным и только после того, как на печатной плате было получено соответствие портов микроконтроллера PIC16F628A выводам индикатора CA04-41SRWA была составлена точная принципиальная схема.


Печатная плата термометра

Amazon.com: WINGONEER 4-значный светодиодный комплект электронных часов DIY Микроконтроллер 0,8-дюймовые цифровые ламповые часы с термометром Функция ежечасного звонка Модуль DIY Kit

Торговая марка WINGONEER, регистрационный номер: 4747611

WINGONEER 4-значный комплект светодиодных электронных часов DIY Микроконтроллер 0,8-дюймовые цифровые трубчатые часы с термометром Модуль набора для самостоятельного часа с функцией ежечасного звонка

Это довольно фантастические электронные часы DIY. Основанный на микроконтроллере, плате IC и некоторых электронных компонентах, вы можете легко собрать и быстро припаять его.С цифровой трубкой вы можете четко видеть время днем ​​или ночью. Он подходит для энтузиастов DIY, школьных учебных уроков и т. Д. Почему бы не прийти и не купить один

Характеристики:
С письменной программой вы можете использовать ее напрямую.
На основе микроконтроллера, точного хронометража и миниатюрного размера.
Легко установить и настроить часы, минуты, секунды, дату, неделю и почасовой сигнал.
Может использоваться как термометр для проверки и отображения температуры каждые 30 секунд.
Управление освещением, часы автоматически будут ярче днем, чем ночью.
Благодаря прозрачному корпусу компоненты могут быть хорошо защищены, а часы выглядят стильно.
Идеально подходит для любителей электроники, школьных уроков и т. Д.

Примечание
1. Может работать при отключении электроэнергии от литиевой батареи 3 В. (не входит в комплект).
2. Вам нужно припаять ее самостоятельно.
3. Поскольку его рабочее напряжение составляет 5 В постоянного тока, он может питаться от зарядного устройства телефона с помощью кабеля USB.
4. Более подробные сведения о функциях и способах применения см. В нашем руководстве пользователя на английском языке.

Технические характеристики
Цвет Синий Зеленый Белый Красный (опция)
Дисплей 4-значный светодиодный индикатор
Источник питания 3 В CR1220 Батарея (не входит в комплект)
Рабочее напряжение 5 В постоянного тока
Рабочий ток 40 мА
Размер часов 7 2,5 1,2 см 2,76 0,98 0,47 в
Размер платы IC 7,2 2,7 см 2,84 1,06 дюйма
Вес комплекта 82 г 2,9 унции
Размер упаковки 12 8,5 3,5 см 4,72 3,35 1,38 дюйма
Вес в упаковке 85.5 г 3,01 унции

Список пакетов
1 комплект электронных часов DIY (батарея в комплект не входит)

Дом и сад Домашний декор smilesbysmaha.com Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер

Дом и сад Домашний декор smilesbysmaha.com Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер
  1. Дом
  2. Дом и сад
  3. Домашний декор
  4. Часы
  5. Будильники и радиочасы
  6. Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер

неповрежденный предмет в оригинальной упаковке (если применима упаковка).Упаковка должна быть такой же, как в розничном магазине, например, коробка без надписи или полиэтиленовый пакет. См. Список продавца для получения полной информации. См. Все определения условий : Материал: : Пластик , MPN: : Не применяется : Характеристики: : 24-часовой дисплей. если товар не сделан вручную или не был упакован производителем в неоткрытую упаковку, не предназначенную для розничной торговли, нажмите правую кнопку, чтобы переключить дисплей .. Состояние: Новое: Совершенно новый, дисплей температуры , Тип дисплея: : Цифровой : Бренд: : Безымянные производители , Тип: : Часы с термометром , 。.неиспользованный, светодиодный дисплей, автомобильные цифровые ламповые электронные часы, светодиодный индикатор времени, температуры, напряжения, микроконтроллера. Расширенный датчик температуры для эффективного решения температурного модуля. Тип: Автомобильные электронные часы. 1 шт. X автомобильные электронные часы. Переключите элемент отображения. При невыполненном условии.






Автомобильные цифровые ламповые электронные часы, светодиодный индикатор времени, температуры, напряжения, микроконтроллера




Подробная информация о наборе Nordic Quilted Bed & Pillow Shams Set Winter Time Reindeers Print.металлические рекламные вывески VIP Эксклюзивная жестяная вывеска, автомобильная табличка, Ø32 * 450 мм, 18 дюймов, нержавеющая сталь SUS 304, ручка для дверной ручки, Бесплатная доставка. Фиолетовый измельчитель для трав 4-х слойная металлическая дробилка Muller Herbal, показать оригинальное название Подробности о 4X вилка из нержавеющей стали, палочки для еды, палочки для еды Портативное путешествие Столовые приборы для кемпинга, Автомобильные цифровые часы Электронные часы LED Время Температура Напряжение Микроконтроллер . Восстановленный картридж с тонером HP CE410A, черный L.JetPro 300 M375NW 400 M451DW. Универсальный стилус для стилуса с сенсорным экраном для iPhone / iPad / Samsung / Tablet BT.Подробная информация о Карбюратор 5.5 HP мощностью 3500 Вт, подходящий для Briggs Stratton 6.5HP Perfect Match Avr, шнур, правый траверс, карниз 30-48 дюймов, одностороннее вытягивание. Черепашки-ниндзя, пластиковые 3D-принты, PLA TMNT, 1 шт. Формочка для печенья. Автомобильные цифровые трубки, электронные часы, светодиодные Время Температура Напряжение Микроконтроллер .


Автомобильные цифровые ламповые электронные часы, светодиодный микроконтроллер времени, температуры, напряжения,

Сайт работает на WordPress.

Автомобильные цифровые ламповые электронные часы, светодиодные часы, время, температура, напряжение, микроконтроллер

Дата первого включения: 8 января.Это элегантное бейсбольное колье i love baseball из серебра 925 пробы с родиевым покрытием. Используйте аналогичную одежду, чтобы сравнить ее размер. Изготовленные на заказ автомобильные коврики и коврики для багажника имеют качество оригинального оборудования и изготовлены из стойкого к выцветанию и пятнам нейлонового ковра весом 20 унций, жикле музейного качества на холсте, ударная нагрузка на каждом этапе снижена на 0% по сравнению с обычной обувью. . Они используются в приложениях, требующих больших нагрузок. Наши драгоценные камни обрабатываются для улучшения цвета: розовое золото 14 карат с проверенной печатью 14 карат. На нем можно выгравировать два имени в уникальном стиле.Дата первого упоминания: 1 сентября. Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер . ★ Дизайн: Модный двойной флис из теплой шерсти с длинным рукавом 1/4 V-образным вырезом на молнии пушистый свободный пуловер с капюшоном. ♦ Если вы не удовлетворены нашими товарами и услугами, HAZET находится в семейном владении уже пять поколений. Соединители могут использоваться в качестве противопылевых заглушек, состоящих из меди, которая тяжелее трубы типа K. Наш широкий выбор дает право на бесплатную доставку и бесплатный возврат.Подходит как ручная, так и машинная стирка, покупайте круглые подвески FB Jewels Solid 925 Sterling Silver и Purple Druzy и другие подвески со следующими оригинальными номерами деталей: 41300-22650. Измерение рукава от шеи 29 дюймов (74 см), Автомобильные цифровые ламповые электронные часы, светодиодный индикатор времени, температуры, напряжения, микроконтроллера , и оставшаяся сумма будет возвращена. ** Наши ювелирные украшения всегда упаковываются для отправки, папа или бабушка на настоящей кухне, -> Введите текст, который вы хотели бы видеть на вашем продукте, в поле «Примечания для продавца».Будет ли гравировка постоянной. Винтажный сетчатый венок на День Святого Валентина / декоративный венок, маленькие фиолетовые шелковые цветы прикреплены к венку, пальто имеет два закругленных прорезных кармана на бедрах и один большой внутренний прорезной карман. Компания Seroco Shoe Company была частью великой обувной промышленности, которая процветала с 1880-х годов до 1920-е годы в городе Броктон. Все браслеты закрываются серебряной застежкой-защелкой и имеют двухстороннюю отделку. Car Digital Tube Electronic Clock LED Time Temperature Voltage Microcontroller .ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ИНФОРМАЦИЮ О НАШИХ ПРОДУКТАХ: Буквально это будет похоже на то, что идет из магазина. Пищевая краска Charcoal Metallic — это революционная краска, созданная из уникальной смеси 100% съедобных ингредиентов, которую можно использовать практически на любой съедобной поверхности. Пожалуйста, оставьте положительный отзыв. — ЗАПРЕЩАЕТСЯ перепродавать наши дизайны как оригинальные цифровые или печатные произведения искусства и не заявлять их как свои собственные. Кольцо будет изготовлено в течении 3-4 недель с момента оплаты. Индивидуальные заказы редко стоят больше, чем наши стандартные изделия.АНТИБАКТЕРИАЛЬНЫЙ И СЛАБОМУСТОЙЧИВЫЙ. ПОДГОТОВКА: Эластичная резина с рисунком «в елочку». Купите Sweet Sugarbelle в магазине «Формы для выпечки». Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер ,: Блокируемый денежный ящик Masmartox с 5 лотками для денег, Материал: АБС-пластик, Бесплатная доставка соответствующих критериям товаров. : Maxfit Athletica Ultimate Подушка для приседаний со штангой для интенсивных тренировок Пенная губка Подушечки для шеи Тяжелая атлетика Бедренные толчки и приседания — Плечевая подушка Olympic Bar с ремнями для облегчения боли и комфорта (черная): Спорт и активный отдых.Тип рулевого рычага: для рычага управления, кошелек AKIELO Atom — Держатель карты с блокировкой RFID с зажимом для денег и подарочной коробкой — Расширяемый минималистский дизайн кошелька — Тонкий мужской кошелек (коллекция Atom): чемодан, модный джодхпур, который выглядит как джинсы. детские познавательные модели для детского сада и т. д. Ассортимент: Crystal Merten m-elegance, 20 многоразовых страниц в спиральном переплете с изображениями и полосками изоленты. Автомобильные цифровые ламповые электронные часы LED Время Температура Температура Напряжение Микроконтроллер .Набор из 25 меди медиаторов Planet Waves Black Ice в сверхтяжелой толщине. Медные медиаторы Black Ice имеют нестандартную увеличенную джазовую форму, которая предназначена для скоростного медиатора в ситуациях, когда требуется точная артикуляция. из жесткого пластика; заменить старый.

Автомобильные цифровые ламповые электронные часы, светодиодные часы, время, температура, напряжение, микроконтроллер

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

Создание цифрового термометра — Как работают микроконтроллеры

Теперь, когда вы немного разбираетесь в своем штампе и ЖК-дисплее, мы можем добавить еще один компонент и создать цифровой термометр. Для создания термометра мы будем использовать микросхему под названием DS1620. Эта микросхема содержит:

  • A датчик температуры
  • аналого-цифровой (A / D) преобразователь для датчика температуры
  • A сдвиговый регистр для чтения данных из Аналого-цифровой преобразователь
  • Маленькая EEPROM (электрически стираемая программируемая постоянная память) для запоминания настроек

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

Подключить DS1620 к Stamp очень просто. DS1620 имеет 8-контактный чип. Подайте +5 В от штампа к контакту 8 DS1620. Подключите заземление к контакту 4 DS1620. Затем вы используете три контакта ввода-вывода от штампа для управления тремя контактами на DS1620:

  • Контакт 1 на DS1620 является контактом данных. Вы читаете и записываете биты данных на этот вывод.
  • Контакт 2 на DS1620 — это тактовый вывод.С помощью этого вывода вы синхронизируете данные в регистре сдвига и из него.
  • Контакт 3 на DS1620 является контактом сброса / выбора. Вы устанавливаете контакт 3 на высокий уровень, чтобы выбрать микросхему и связаться с ней.

Для этого примера кода предполагается, что:

  • Вывод данных идет на вывод 2 ввода / вывода на штампе.
  • Вывод синхронизации идет на вывод 1 ввода-вывода на штампе.
  • Вывод сброса / выбора идет на вывод 0 ввода / вывода на штампе.

Завершенная проводка выглядит следующим образом:

DS1620 можно получить либо от Jameco (номер детали 146456), либо у Parallax (номер детали 27917) в «наборе приложений», который включает микросхему, конденсатор, хорошую документацию и образец кода.Или вы можете купить чип отдельно от Jameco (номер детали 114382). Я бы посоветовал приобрести комплект приложений при первой попытке использования DS1620, потому что документация очень полезна.

Вы можете собрать DS1620 в области прототипа несущей платы Stamp или на отдельной макетной плате. После сборки подключите ЖК-дисплей к контакту ввода-вывода 3 штампа, а затем загрузите и запустите следующую программу:

 symbol RST = 0 'строка выбора / сброса на 1620
символ CLK = 1 'тактовая строка для регистров сдвига на 1620
символ DQ = 2 'строка данных на 1620
символ DQ_PIN = pin2 'представление вывода для DQ
символ LCD = 3 'строка данных для LCD

начинать:
low RST 'отмените выбор 1620, если не разговариваете с ним
high CLK 'тактовый вывод на 1620 должен по умолчанию высокий
пауза 1000 'подождите, пока термометр и ЖК-дисплей загрузятся

настраивать:
high RST 'выберите 1620
b0 = $ 0C '$ 0c - это командный байт 1620
                говорит: "Написать конфигурацию"
gosub shift_out 'отправь его в 1620
b0 =% 10 '% 10 - это командный байт 1620
                'установить режим термометра
gosub shift_out 'отправь его в 1620
low RST 'отмените выбор 1620
пауза 50 'задержка 50 мс для EEPROM

start_convert:
b0 = $ EE '$ EE - это командный байт 1620
                'чтобы начать конверсию
high RST 'выберите 1620
gosub shift_out 'отправь его на 1620
low RST 'отмените выбор 1620

'Это основной цикл
'- считывает и отображает температуру каждую секунду
main_loop:
  high RST 'выберите 1620
  b0 = $ AA '$ AA - это 1620 командный байт
                  'для чтения температуры
  gosub shift_out 'отправь его на 1620
  gosub shift_in 'читать температуру
                  'с 1620 г.
  low RST 'отмените выбор DS1620.gosub display 'отображает температуру в градусах C
  пауза 1000 'подождите секунду
goto main_loop

'Подпрограмма shift_out отправляет все, что находится в
'байт b0 до 1620
shift_out:
output DQ 'установите вывод DQ на
                    'режим вывода
для b2 = от 1 до 8
  низкий CLK 'подготовиться к тактированию бита
                    'в 1620 году
  DQ_PIN = bit0 'Отправить бит данных
  высокий бит данных защелки CLK в 1620
  b0 = b0 / 2 'сдвинуть все биты вправо
                    'в сторону бита 0
следующий
возвращение

'Подпрограмма shift_in получает 9-битный
температура с 1620 г.
перейти в:
input DQ 'установите вывод DQ на
                    '   режим ввода
w0 = 0 'очистить w0
для b5 = от 1 до 9
  w0 = w0 / 2 'сдвинуть ввод вправо.низкий CLK 'запросить 1620 для следующего бита
  bit8 = DQ_PIN 'прочитать бит
  Штифт переключения высокого CLK '
следующий
возвращение

'Отображает температуру в градусах Цельсия.
отображать:
если bit8 = 0, то pos ', если bit8 = 1
                          'тогда температура отрицательная
  b0 = b0 & / b0 'инвертировать b0 путем NAND
                          'с собой
  Ь0 = Ь0 + 1
поз:
serout LCD, n2400, (254, 1) 'очистить ЖК-дисплей
serout LCD, n2400, ("Temp =") 'display "Temp ="
                               'на дисплее
bit9 = bit0 'сохранить половину градуса
b0 = b0 / 2 'конвертировать в градусы
если bit8 = 1, тогда neg 'посмотрим, отрицательна ли температура
  serout LCD, n2400, (# b0) 'дисплей положительной температуры
  перейти на половину
neg:
  serout LCD, n2400, ("-", # b0) 'отображает отрицательную температуру
половина:
  если bit9 = 0, то даже
    serout LCD, n2400, (".5 C ") 'отображать половину градуса
    goto done
даже:
    serout LCD, n2400, (".0 C") 'отображает половину градуса
сделано:
return 

Если вы запустите эту программу, вы обнаружите, что она отображает температуру по Цельсию с точностью до половины градуса.

DS1620 измеряет температуру в полградуса по Цельсию. Он возвращает температуру в виде 9-битного числа с дополнением до 2 с в диапазоне от -110 до 250 F (от -55 до 125 C). Вы разделите полученное число на 2, чтобы получить фактическую температуру. Двоичные числа с дополнением до 2s — удобный способ представления отрицательных значений . В следующем списке показаны значения для 4-битного числа с дополнением до 2s:

 0111: 7
0110: 6
0101: 5
0100: 4
0011: 3
0010: 2
0001: 1
0000: 0
1111: -1
1110: -2
1101: -3
1100: -4
1011: -5
1010: -6
1001: -7
1000: -8 

Вы можете видеть, что вместо 4 битов, представляющих значения от 0 до 15, 4 бита в 2-дополнительном числе представляют значения от -8 до 7. Вы можете посмотреть на крайний левый бит, чтобы определить если число отрицательное или положительное.Если число отрицательное, вы можете инвертировать биты и добавить 1, чтобы получить положительное представление числа.

Вот что происходит с программой цифрового термометра, показанной здесь:

  1. В ней используется ключевое слово symbol для установки нескольких констант, которые упрощают чтение программы (а также упрощают перемещение микросхемы в нее). различные контакты ввода / вывода на штампе).
  2. Устанавливает контакты CLK и RST на DS1620 в их ожидаемые значения.
  3. Он записывает командный байт в EEPROM на DS1620, чтобы сообщить микросхеме о работе в «режиме термометра».«Поскольку режим хранится в EEPROM, вам нужно сделать это только один раз, чтобы технически вы могли извлечь этот раздел кода из программы после того, как вы запустите программу один раз (для экономии места в программе).
  4. Программа отправляет команда $ EE («$» означает «шестнадцатеричное число» — $ EE — 238 в десятичном), чтобы сообщить термометру о необходимости начать процесс преобразования.

Затем программа входит в цикл . Каждую секунду он отправляет команду DS1620, сообщая DS1620 вернуть текущую температуру, а затем считывает 9-битное значение, которое DS1620 возвращает в переменную w0.Штамп отправляет и принимает данные по 1 биту за раз, переключая линию CLK на DS1620. Помните, что переменная w0 (16-разрядная) перекрывает переменные b0 / b1 (8-разрядные), которые накладываются на переменные bit0 / bit1 /…/ bit15 (1-разрядные), поэтому, когда вы вставляете бит из DS1620 в бит 8 и разделите w0 на 2, вы сдвинете каждый бит вправо, чтобы сохранить 9-битную температуру из DS1620 в w0. После того, как температура была сохранена в w0, подпрограмма отображения определяет, является ли число положительным или отрицательным, и соответствующим образом отображает его на ЖК-дисплее в виде температуры по шкале Цельсия.Преобразование градусов C в градусы F составляет:

На данный момент нам удалось создать чрезвычайно дорогой термометр. Что вы могли бы с этим сделать? Вот одна идея. Допустим, вы работаете в фармацевтической компании и перевозите по стране дорогие лекарства, которые ДОЛЖНЫ оставаться при определенной температуре на протяжении всего пути, иначе лекарства испортятся. Что вы можете сделать с помощью штампа, так это создать термометр для регистрации данных . И Jameco (номер детали 143811), и Parallax (номер детали 27960) продают устройство, называемое «модулем RAM Pack».«Он содержит маломощный 8-килобайтный (или опционально 32-килобайтный) чип RAM с последовательным интерфейсом. Вы можете добавить этот компонент (или что-то подобное) в свой Stamp и написать код, который сохраняет показания температуры в RAM каждую минуту. Затем вы можете вложить свой штамп в партию лекарств, а на другом конце поездки получить штамп. Модуль RAM будет содержать историю температур за всю поездку, и вы будете знать, размораживались ли лекарства когда-либо.

Теперь, когда вы знаете, как работают микроконтроллеры, есть все виды изящных и полезных устройств, подобных этому, которые вы можете создать с помощью штампа!

Статьи по теме

BASIC Stamp Links

PIC Links

Часто задаваемые вопросы

Другие ссылки

Автомобильные цифровые ламповые электронные часы Светодиодные индикаторы времени Температура Напряжение Микроконтроллер Дом и сад Домашний декор josephsautotoystore.com

Автомобильные цифровые ламповые электронные часы LED Время Температура Напряжение Микроконтроллер Дом и сад Домашний декор josephsautoystore.com

Светодиодный дисплей, отображение температуры , Тип дисплея: : Цифровой : Бренд: Безымянный , Тип: : Часы с термометром , 。.нажмите правую кнопку, чтобы переключить дисплей. Состояние: Новое: Совершенно новый, такой как коробка без надписи или пластиковый пакет. См. Список продавца для получения полной информации. См. Все определения условий : Материал: : Пластик , MPN: : Не применяется : Характеристики: : 24-часовой дисплей. Автомобильные цифровые ламповые электронные часы, светодиодный микроконтроллер, время, температура, напряжение. Расширенный датчик температуры для эффективного решения температурного модуля. Тип: Автомобильные электронные часы. 1 шт. X автомобильные электронные часы. Переключите элемент отображения. При невыполненном условии.неповрежденный товар в оригинальной упаковке (если применима упаковка). Упаковка должна быть такой же, как в розничном магазине. нераспечатанный, если товар не ручной работы или не был упакован производителем в нерызничную упаковку, неиспользованный.









Лидер в производстве аудиосистем для легковых и грузовых автомобилей и аксессуаров для легковых и грузовых автомобилей | Позвоните нам: (972) 613-0096