Ширина модального окна задана в процентах, в зависимости от ширины родительского контейнера, в данном примере это фон затемнения.
Предусмотрена возможность использования встроенных миниатюр, разположенных слева или справа, в отдельном div-контейнере с выделенным классом .pl-left и .pl-right соответственно.
Размер блока миниатюр так же определил в процентной записи (25%), тем самым обеспечив возможность пропорционального изменения, при просмотре на экранах различных пользовательских устройств.
Простейшая анимация появления с помощью изменения свойсва прозрачности (opacity) от 0 к 1
В последнее время в радиолюбительской литературе опубликовано много описаний различных конструкций на микроконтроллерах, чаще всего — семейства picmicro фирмы microchip. Не умаляя их достоинств, автор решил напомнить, что существуют и другие микроконтроллеры, и сделал предлагаемый прибор на одном из них — АТ89С2051 из семейства mcs-51.
Микроконтроллеры семейства МС5-51 — несомненные чемпионы среди восьмиразрядных как по числу разновидностей, так и по числу компаний, выпускающих их модификации. Первый представитель этого семейства — intel 8051 — был выпущен еще в 1980 г. Для своего времени это очень сложное изделие. На его кристалле 128 тыс. транзисторов, в четыре раза больше, чем в микропроцессоре intel 8086, базовом для персональных компьютеров ibm pc. Удачный набор периферийных устройств, возможность работы с внешней и внутренней программной памятью и приемлемая цена обеспечили микроконтроллеру intel 8051 большой успех. Важную роль сыграла открытая политика фирмы intel, широко распространявшей лицензии на производство приборов с ядром 8051 среди ведущих полупроводниковых компаний мира: philips, siemens, intel, atmel, dallas. temic, ow. amd, mhs, lg( winbond, silicon systems и ряда других. В СССР микроконтроллеры семейства msc-51 выпускали в Киеве (1816ВЕ31. 1816ВЕ51). Воронеже (1830ВЕ31, 1830ВЕ51), Минске (1834ВЕЗ1) и Новосибирске (1850ВЕ31).
Сегодня во всем мире производят более 200 модификаций микроконтроллеров этого семейства, начиная с простых 20-выеодных до сложнейших 100-выводных с встроенными АЦП, многочисленными таймерами-счетчиками, аппаратными умножителями и 64 Кбайт программной памяти на одном кристалле. Все они имеют общую систему команд и с точки зрения программиста различаются лишь числом регистров специального назначения.
Когда у автора возникла необходимость защитить подвал гаража от промерзания, дистанционно контролируя и регулируя температуру в нем, для блока измерения температуры и управления нагревателем был выбран микроконтроллер at89c2051-24pi из упомянутого семейства. Ввиду отсутствия в нем энергонезависимой памяти данных для хранения сведений об установленном режиме и допустимых значениях температуры пришлось применить отдельную микросхему энергонезависимой памяти at24c02-10pi Обе микросхемы рассчитаны на работу в "индустриальном" интервале температуры окружающей среды (-40...+85 °С).
На выбор повлияло и то, что суммарная стоимость этих микросхем в одной из московских торговых фирм вдвое меньше цены популярного микроконтроллера pic16f84a-04i/p, работающего в том же температурном интервале.
Тип датчика ds1820 или ds18b20 | |
Измеряемая температура, °С | |
максимальная | +99.9 |
минимальная | - 55 |
Дискретность отсчета, "С | 0.1 |
Поддерживаемая температура С | |
максимальная | +99,9 |
минимальная | 0 |
Расход времени на ввод нового значения поддерживаемой температуры, с. | |
не более | 15 |
Схема, приведенная на рис. 1, стала почти классической для микроконтроллерных устройств такого назначения. В микроконтроллер dd1 загружена программа, приведенная в таблице.
Этим приемом дискретность представления температуры доведена до 0,1 °С.
Каждому экземпляру датчиков указанных выше типов присвоен уникальный индивидуальный номер длиной 48 двоичных разрядов, хранящийся в его внутреннем ПЗУ. Это позволяет соединять параллельно практически неограниченное число датчиков, взаимодействуя с каждым из них отдельно.
В описываемом устройстве микроконтроллер подает датчикам первой команду skip_rom (ОССН), предписывающую пропустить процедуру проверки индивидуального номера. Далее команда convert_t (44Н) запускает процесс измерения температуры сразу в двух датчиках. Через 750 мс, необходимых для завершения этого процесса, микроконтроллер подает команду match_rom (55Н), сопровождаемую индивидуальным номером одного из датчиков. В результате на следующую команду read_scratchpad (ОВЕН) откликается и сообщает микроконтроллеру результат измерения только этот датчик. Затем (после команды начальной установки) последовательность команд match_rom и read_scratchpad повторяется для второго датчика.
Полученные данные микроконтроллер обрабатывает и выводит на индикатор. Для удобства незначащий нуль на индикатор не выводится, а знак "минус", если он нужен, примыкает слева к старшей значащей цифре. Если при связи с датчиком зафиксирован сбой, что может означать неисправность или отсутствие датчика, вместо значения температуры будет выведено (в стилизованном виде) сообщение "-dat".
Кратковременными нажатиями на кнопку sb1 переключают прибор на индикацию показаний датчика ВК1 или ВК2. Если удерживать эту кнопку нажатой более 5 с, будет включен режим автоматического поочередного вывода показаний датчиков с периодом 5 с. Выходят из этого режима коротким нажатием на ту же кнопку.
Терморегулятор всегда работает по показаниям датчика ВК2. Нажатиями на кнопку sb2 на индикатор вызывают значения температуры в такой последовательности: нижняя пороговая (при ней происходит включение нагревателя) — верхняя пороговая (при ее достижении нагреватель будет выключен) — текущая. Вывод на индикатор верхней пороговой температуры сопровождается включением светодиода hl2.
Изменяют значение пороговой температуры, выведенной в данный момент на индикатор, нажатиями на кнопки sbi (в сторону увеличения) и 5ВЗ (в сторону уменьшения). Шаг изменения — 0,1 °С. Если удерживать соответствующую кнопку нажатой более 1 с, значение начнет расти или уменьшаться со скоростью 30 шагов в секунду. Если в течение 5 с ни одна из кнопок не нажималась, устройство автоматически переходит к индикации текущей температуры. Чтобы выключить терморегулятор, достаточно установить пороговые значения температуры равными или нижнее больше верхнего.
Прежде чем начать измерение температуры и ее регулирование, устройство должно "зарегистрировать" подключенные к нему датчики — определить и запомнить их индивидуальные номера. Для регистрации датчики подключают поочередно (второй на это время должен быть отключен).
Включив прибор, нажмите на кнопку sb2 и удерживайте ее нажатой не менее 5 с до появления на индикаторе стилизованного сообщения "pr1". свидетельствующего о готовности зарегистрировать подключенный датчик как ВК1. Если необходимо зарегистрировать датчик как ВК2, кратковременно нажмите на кнопку sb2, что приведет к выводу на индикатор сообщения "pr2". Еще одним нажатием можно вернуть на индикатор сообщение "pr1" и так далее.
Собственно регистрация происходит после нажатия на кнопку sb1. Если девять попыток микроконтроллера связаться с датчиком, определить и запомнить его индивидуальный номер не принесут успеха, будет сделан вывод о неисправности или отсутствии датчика, а на индикатор выведено сообщение "-dat". После успешной регистрации на индикаторе появится значение измеренной зарегистрированным датчиком температуры. Описанную процедуру необходимо выполнить и в случае замены одного или обоих датчиков. Данные о датчиках и режимах индикации хранятся в микросхеме энергонезависимой памяти ds1.
Термометр-термостат собран на односторонней печатной плате размерами 75x74 мм, показанной на рис. 2. Задача добиться максимальной плотности монтажа и минимальных размеров платы при ее разработке не ставилась. В любительских условиях значительно важнее простота изготовления, удобство монтажа и налаживания. Очевидно, применив малогабаритные элементы и двусторонний поверхностный монтаж, размеры платы можно было существенно уменьшить. Но это не дало бы никаких эксплуатационных преимуществ. Там, где должен быть установлен прибор, свободного места для него в избытке. Внешний вид смонтированной и действующей платы — на рис. 3.
Прибор питают от сети через любой понижающий трансформатор с напряжением на вторичной обмотке 9 В при токе 300 мА и хорошей межобмоточной изоляцией. Вместо сдвоенных светодиодных индикаторов hlec-d512gwb зеленого цвета свечения можно применить любые другие с общим анодом, от одноразрядных до счетверенных. Естественно, при соответствующей корректировке печатной платы.
Диоды 1n4148 заменяют любыми маломощными кремниевыми, например, серии КД522, а диоды 1n4007 — выпрямительными на ток не менее 300 мА, например, серии КД208 или КД209 Замена транзисторов КТ3107А -КТ502Б, КТ502Г, ВС327. Стабилизатор 7805 можно заменить отечественным КР142ЕН5А или КР142ЕН5В. Его желательно снабдить небольшим теплоотводом. Вместо микросхемы АТ24С02 можно применить АТ24С01А. Частота кварцевого резонатора может находиться в пределах 10... 12 МГц. Реле К1 — с обмоткой на 12 В, током срабатывания 70 мА и контактами, рассчитанными на ток 10 А при напряжении 250 В. Вместо электромагнитного репе можно использовать симисторный коммутатор с оптической развязкой, собрав его по схеме, подобной изображенной на рис. 2 в статье С. Корякова "Термометр с функцией таймера или управления термостатом" ("Радио". 2003, № 10, с. 26—28).
Устройство помещено в корпус из изоляционного материала с разъемами для подключения датчиков (удобны трехконтактные аудиоразъемы с диаметром штекера 3.5 мм), сети и нагревателя.
Скачать печатную плату в формате lay, исходные тексты на asm и прошивка.
Автор И. ШАТАЛОВ
Обсудить статью на форуме