Двухканальный циклический таймер на Atmega8
Автор: AntonChip. Дата публикации: .
Циклический таймер позволяет включать и выключать нагрузку, а также выдерживать паузу на заданные интервалы времени в циклическом режиме. Устройство позволяет управлять освещением, отоплением, вентиляцией и другими электроприборами в зависимости от времени. Нагрузкой могут выступать любые электрические приборы мощность нагрузки которых не превышает максимального тока реле. Принцип работы таймера показан на графике ниже.
Возможности устройства
— 2 канала;
— Максимальная установка Таймера 1, 2 и паузы по времени — 99 минут 59 секунд;
— Максимальное количество циклов — 99
— Управление подсветкой дисплея через меню;
— Сохранение настроек в памяти микроконтроллера.
Схема таймера
Таймер построен на базе микроконтроллера Atmega8. Для более точного отсчета времени тактирование осуществляется от внешнего кварца на
В режиме ожидания на дисплее высвечивается информация об установленном времени таймера 1,2 и времени паузы, а также количестве циклов. В рабочем(запущенном) состоянии на индикаторе ведется обратный отсчет времени таймера 1, затем паузы 1, затем таймера 2 и паузы 2 и количества оставшихся циклов, индикатор работы мигает 1 раз в секунду.
Настройка таймера
Для входа в меню нажмите кнопку «Меню/Вперед», далее необходимо настроить параметры Таймера 1, кнопками «+» или «-» вводим необходимое значение для минут, причем разряд минут мигает раз в 1 секунду, снова нажимаем кнопку «Меню/Вперед», вводим необходимое значение для секунд, причем разряд секунд мигает раз в 1 секунду. Таким же способом настраиваются Таймер 2 и Пауза 1 и 2, т.е. кнопками «Меню/Вперед» и «Назад» можно перемещаться по меню, а кнопками «+» или «-» вводить необходимые значения.
Чтобы сохранить настройки в параметре «Save Settings?» нажмите «Yes».
Смотрите также версию таймера на ATmega328.
Внимание.
Если количество циклов равно нулю, цикл будет повторяться до бесконечности пока не будет нажата кнопка «Стоп».
Если время таймера 1 или таймера 2 равно нулю, то пауза следующая за соответствующим таймером будет пропускаться.
Установка фьюз-битов
Видео работы таймера
Архив для статьи «Двухканальный циклический таймер на Atmega8» | |
Описание: Файлы прошивки и EEPROM микроконтроллера, проект Proteus | |
Размер файла: 19.56 KB Количество загрузок: |
Скачать |
Простейшие часы на Atmega8
Авраменко Павел
Читатели нашего сайта уже знакомы с первой версией часов. Она подкупает своей простотой и повторяемостью. А вот теперь появилась уже четвёртая версия!
Это реплика с разрешения автора.
Плюшки 4й прошивки:
1. Поддержка общего анода и катода
2. Понижено потребление и тактовая частота меги до 1 мГц
3. Добавлен режим работы от батареи с выключенным индикатором. При нажатии на кнопку время показывается 2 секунды. Потребление в дежурном режиме составляет 10 микроампер.
5. Устранены все проблемы с точками. Они теперь мигают или горят там где нужно а не везде.
Сразу хочу сказать что можно подключить еще два сегмента, отображающих секунды. Часы могут питаться как от батареек так и от сетевого блока питания или USB порта компьютера. При питании от батареек часы отображают время при нажатии кнопки «Минуты» в течении 2х секунд и гаснут. Часы очень энерго эффективны и имеют минимальное потребление. Всего 10 микроампер в спящем режиме. Эти часы можно взять за базу и на их основе делать от малых до огромных часов, задача которых показывать точное время! Точность часов зависит только от кварца. В следующей прошивке планируется корректировка времени. Поскольку часы работают от кварца их точность будет немного зависить от температуры. Дело в том что частота кварца меняется от изменения температуры и ничего тут не поделаешь. Разработанную схему собрали сотни людей. Так что она проверенна и настроек после сборки не требует.
На ней всего 6 деталей. Именно ее повторили сотни радиолюбителей благодаря ее простоте. Эта схема имеет недостаток — дело в том что падение напряжения на резисторе разное. К примеру отображение восьмерки заставляет светится 7 светодиодов, а единицы только два. От этого общая яркость светодиодов меняется и единица светится ярче восьмерки. Этот недостаток легко убирается выбрасыванием резистора и питанием контроллера от стабилизированного напряжения 2,7-3,0 В.
К вашему вниманию новая схема:
Именно ее я и рекомендую к сборке. Детали, без которых часы будут работать нарисованы пунктиром. Оставляю право за радиолюбителями выбирать то, что им нужно. А именно — независимое питания для того чтоб время не сбивалось и сегменты с секундами.
Алгоритм работы довольно простой, с часами разберется любая хозяйка. Одна кнопка прибавляет часы, вторая минуты. Если подключить батарейку и зажать кнопку минуты а потом часы то дисплей погаснет и узнать время можно будет только лишь нажав кнопку «Минуты». Кнопка «Часы» переведет устройство в обычный режим.
А если зажать кнопку «Часы» а потом «Минуты» то устройство будет показывать время только при внешнем питании, а при исчезновении питания индикатор погаснет и часы будут идти от батарейки. Посмотреть время и выйти из этого режима можно точно так же как и в предыдущем режиме.
Я сделал несколько версий 4й прошивки которые отличаются разным поведением точек. Они или горят или мигают. В общем сами посмотрите на видеоролике в конце статьи и выберите то что вам подходит.
Прошивка firmware v4, datasheet на русском, схемы, программа для прошивки в этом архиве
Распайка схемы. Вид со стороны выводов.
Привожу код второй прошивки которая совместима только с первоначальной схемой т.к. считаю его самым простым и вылизанным до блеска. Код для общего минуса.
'Автор Авраменко Павел. $regfile = "m8def.dat" ' мега8 $crystal = 8000000 'частота тактирования камня. Config Portb = Output , Portd = Output : Portc = &h40 'Конфигурируем порты на входы и выходы. Включаем внутренние подтягивающие резисторы Dim X As Byte , Cifri(4) As Byte 'задаем всякие переменные и масивы Config Clock = Soft ' конфигурируем совтовые часы которые будут подсчитывать колебания часового кварца и раз в секунду вызывать прерывания. Config Timer0 = Timer , Prescale = 8 : On Timer0 Pulse : Enable Timer0 : Enable Interrupts ' конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифр. Назначаем подпрограмму, которая будет запускаться по переполнению 0го таймера Do ' основной бесконечный цикл в котором идет опрос кнопок If Pinc.4 = 0 Then ' Если кнопка нажата то запускаем бесконечный цикл Do Incr _min : _sec = 00 : Timer2=0 ' добавляем к минутам 1. Секунды =0. Все что наклацал таймер 2 тоже обнуляем If _min > 59 Then : _min = 00 : Incr _hour : End If : If _hour > 23 Then _hour = 00 : Waitms 100 ' счетчик + задержка Loop Until Pinc.4 = 1 ' если кнопку отпустили то выходим из бесконечного цикла End If If Pinc.5 = 0 Then 'Если кнопка "Часы" нажата то запускаем бесконечный цикл Do Incr _hour : If _hour > 23 Then _hour = 00 : Waitms 100 ' счетчик Loop Until Pinc.5 = 1 ' если кнопку отпустили то выходим из бесконечного цикла End If Loop 'конец основного цикла Pulse: ' подпрограмма прерываний таймера0 Cifri(1) = _min Mod 10 : Cifri(2) = _min / 10 : Cifri(3) = _hour Mod 10 : Cifri(4) = _hour / 10 ' разбиваем минуты на два отдельных числа, тоже делаем и с часами. Все записываем в масив Portb = &HFF 'гасим индикатор подав на общие выводы плюс. Для индикатора с общим плюсом нужно заменить &HFF на ноль. Incr X : If X > 3 Then X = 0 ' переменная определяющая какой индикатор зажечь Portd = Lookup(cifri(x + 1) , Dta) 'присваиваем индикатору с номером х (из предыдущей строки) символ из строки Dta Reset Portb.x 'зажигаем индикатор х Return ' возвращаемся на место откуда прервали программу Dta: ' таблица с данными о цифрах зажигает по порядку : 0123456789 Data &HEF , &H8C , &HB7 , &HBE , &HDC , &H7E , &H7F , &HAC , &HFF , &HFE 'для общего плюса закомментировать ' Data &h20 , &H73 , &h58 , &h51 , &h33 , &H81 , &H80 , &H53 , &H0 , &h2 'для общего плюса раскомментировать
Happiness Toom
Автор
Авраменко Павел.
Данный архив включает весь необходимый материал и програмное обеспечение для сборки часов на Atmega8. Применительны индикаторы как с общим анодом так и катодом. Для мощных индикаторов следует добавить транзисторные ключи в цепи общих электродов индикаторов DIG1..4.В часах имеется два режима энергосбережения. Режим «Работа от батарей» включается при нажатии кнопки «Минуты» и «Часы». В таком режиме дисплей отключается. Для просмотра времени необходимо нажать кнопку «Минуты» через 2 секунды индикатор снова погаснет. Для выхода из режима нужно удерживать кнопку «Часы»
Режим «Детектирование сетевого питания» включается при нажатии кнопки «Часы» и «Минуты». В таком режиме дисплей отключается при отсутствии сетевого питания. Для просмотра времени при отсутствии питания необходимо нажать кнопку «Минуты» через 2 секунды индикатор снова погаснет. Для выхода из режима нужно удерживать кнопку «Часы» При правильной прошивке и сборке, схема настроек не требует.
Программа написана на языке бэйсик в среде Bascom-AVR. Добавлены исходники прошивки V2 Демо версию компилятора вы можете скачать отсюда http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54 Не переживайте, дэмо версия ограничена 4 кБ памяти микроконтроллера, т.е. половиной Atmega 8.Исходник компилируется как 0,8 кБ. Так что есть большое поле для деятельности. Рускоязычный форум бэйсика где помогут http://bascomavr.3bb.ru Видео автора о сборке часов тут https://www.youtube.com/watch?v=IY8YyFwUa60 Канал автора часов http://www.youtube.com/c/Happinesstoom Автор часов Авраменко Павел. г. Запорожье
Планируется следующая прошивка в которой будет корректировка времени.
При копировании материала просьба размещать ссылку на видеоролик или ютуб канал автора.
Все самоделки | Программируемый таймер на 100 временных отрезков
Простая схема хорошего таймера на МК atmega8, удобная навигация в меню, жидкокристаллический LCD дисплей, часы реального времени, минимальное количеством деталей.
Очень полезная вещь, например для теплицы, можно организовать полив или циркуляцию в гидропонике, можно настроить кормушки и поилки для животных, птиц и много еще для чего.
Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8.
Конечно для прошивки нам потребуется программатор, но если его нет то можно обойтись всего 4 проводками подключенными к LPT порту по этой схеме.
Что нам понадобится:
Схема таймера
Как видно на ней отсутствует схема питания и исполнительное устройство, это потому, что возможно вы решите использовать выносной стабилизированный БП, а также не известно какую нагрузку в планируете подключать, поэтому каждый должен сам выбрать исполнительное устройство под свои технические требования.
Как вариант исполнительного устройства на триаках, тиристорах и симисторах показаны ниже.
Вариант плата из программы Sprint Layout.
Особое внимание надо обращать при монтаже микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальна, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное место рядом с часами заполняем медью на корпус. Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.
Микроконтроллер прошивается программатором или с помощью простых 5 проводов.
Автор прошивки ( скачать — multitimer ) постарался и не стал изменять фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.
Для корпуса очень удобно использовать распаечные коробки из пластмассы, они бывают разных размеров и форм.
В прорезанную ножом крышку, при помощи термоклея из пистолета, закрепляем LCD экран., прорезаем отверстия под кнопки управления и кнопку питания.
Размещаем все узлы внутри корпуса, постоянно проверяя как закрывается крышка, при необходимости переносим или подгибаем мешающие.
На собранную схему подаем питание, должно появиться такое изображение.
Управление осуществляется четырьмя кнопками. Меню состоит из трех пунктов, СLОСК -установка часов, RЕSЕТ -сброс всех установленных таймеров, ТIМЕR — установка таймеров.
Сначала заходим (*) в меню часов и выставляем (>)(<)(#) точное время.
Подсказка по кнопкам управления в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.
Теперь все готово чтобы корректно задавать временные позиции таймера, после нажатия решетки, программа записывается в постоянную память МК.
Суточный таймер на atmega8 — Знай свой компьютер
Дата публикации: 20 августа 2010 .
Этот таймер позволяет задать до 100 разных временных интервалов в сутки для одной нагрузки. Принципиальная схема показана на рисунке 1. В основе схемы прибора микросхема DS1307, представляющая собой часы реального времени. Данная микросхема «общается с внешним миром» посредством стандартной шины I2С. Она тактируется от отдельного резонатора Q1. Точность хода часов устанавливается конденсатором С4. Здесь задача контроллера состоит не в отсчете времени, а в организации взаимодействия IC3 с жидкокристаллическим дисплеем и кнопками управления. А так же, в хранении данных о состояниях микросхемы IC3, в которых нужно включать или выключать нагрузку.
Контроллер работает от встроенного генератора частотой 1MHz, поэтому внешний кварцевый резонатор не требуется. Нет и особых требований к стабильности частоты так как отсчет времени зависит не от контроллера, а от IC3.
Схема питается от электросети через трансформатор Т1. Предусмотрен резервный источник питания – батарея G1 напряжением 9V. Она позволяет сохранить установку времени и все настройки таймера в случае отключения электроэнергии. Коммутация источников осуществляется двумя диодами VIC2 и VIC3.
Контроллер IC2 и интегральные часы IC3, а так же, жидкокристаллический дисплей Н1 питаются от источника напряжением 5V, полученным от стабилизатора IC1. Контрастность дисплея регулируется подстроечным резистором R2. Дисплей двухстрочный.
Для управления нагрузкой используется реле К1 типа BS115S-A12VDC с обмоткой на напряжение 12V. Контакты реле допускают коммутацию нагрузки, питающейся от сети 220V мощностью до 2400W.
Детали. Интегральный стабилизатор 78L05 можно заменить любым маломощным стабилизатором напряжения на 5V. Дисплей Wh2602A можно заменить любым аналогичным жидкокристаллическим дисплеем с двумя строками и не менее 16 символов в строке. Сейчас есть очень много таких дисплеев, совпадающих по цоколевке и обеспечению.
Монтаж схемы выполнен на макетной печатной плате промышленного изготовления. Собственная плата не разрабатывалась.
Для интегральных часов DS1307 нужен малогабаритный часовой кварцевый резонатор на частоту 32768Hz. Его нужно паять прямо на выводы 1 и 2 микросхемы без использования каких-то промежуточных печатных дорожек. Почти так же, между выводами 2 и 4 нужно распаять подстроенный конденсатор С4. Микросхема DS1307 имеет вывод 3 для подключения резервного источника питания. В этой схеме уже имеется собственный резервный источник питания (G1), поэтому микросхема замыканием вывода 3 на общий минус переключена на режим работы без резервного источника.
Выход таймера можно организовать и другим способом. Здесь использовано электромагнитное реле с обмоткой на 12V. Вместо него можно использовать автомобильное реле для включения сигнала или от схемы блокировки автосигнализации. Можно применить реле «КУЦ» от старых отечественных телевизоров либо какое-то другое реле. Реле использовано потому что его контакты абсолютно линейны, как любой механический выключатель, и, в отличие от различных тиристорных схем, не оказывают никакого действия на форму протекающего через них тока. Если это важно, — нужно использовать реле, если нет, наверное будет лучше сделать схему на оптосимисторе достаточной мощности, включив его светодиод в коллекторную цепь VT1 через токоограничительный резистор (сопротивление R1 при этом можно увеличить до нескольких kOm, а транзистор можно заменить менее мощным, например, КТ315).
Управление таймером осуществляется четырьмя кнопками S1 (), S3 (*), S4 (#). Для входа в меню нужно нажать кнопку S3 (*). В меню есть три пункта «TIMER» (таймер), «CLOCK» (часы), «RESET» (сброс установок таймера). Перемещаться в пределах меню можно кнопками S1 ()- а кнопка S4 (#) в этом случае служит для выхода из меню. Впрочем, если вы вошли в меню и ничего не делаете, то, подождав немного таймер сам выйдет из меню в обычное состояние.
Меню «TIMER» служит для задания промежутков времени в течение суток, когда нагрузка должна быть включена и когда выключена. В этом меню в верхней строке дисплея будет указан номер таймера (например «Т-1»), а далее время включения нагрузки и время выключения нагрузки. Установку производят так: кнопками S1 () перемещают курсор в нужное место. Кнопкой S3 (*) можно изменять состояние разряда, выделенного курсором. Кнопкой S4 (#) можно ввести в память новую установку и выйти из меню (сохранение в память происходит с некоторой задержкой)
Текущее состояние нагрузки индицируется символом в нижней строке справа, – если это «о» то нагрузка выключена, а если «•» -включена.
Меню «CLOCK» служит для установки текущего времени. Войдя в это меню кнопками S1 () переводят курсор на цифру, которую нужно изменить, и изменяют её при помощи кнопки S3 (*). Затем, сделав необходимые изменения, кнопкой S4 (#) вносят эти изменения в память и выходят из меню (сохранение в память происходит с некоторой задержкой).
Меню «RESET» служит для обнуления всех состояний таймера сразу. Чтобы все обнулить нужно войдя в это меню нажать кнопку
S3 (*). Затем, чтобы выйти – S4 (#). Если нужно выйти ничего не обнуляя, не нажимая S3 (*) нажмите S4 (#).
Хочу предложить мастерам Самоделкина для рассмотрения и возможного повторения, очень простую схему, очень хорошего таймера. С удобной навигацией по меню, с жидкокристаллическом LCD дисплеем , с часами реального времени, с минимально возможным количеством деталей и при всем этом можно запрограммировать целых сто временных отрезков в течении суток.
Видео проверки таймера
Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8. Вы можете сказать, что для прошивки нам потребуется программатор которого нет, но это не так, для прошивки Atmega достаточно всего пять коротких 10-15 см. проводков подключенных через резисторы 150-200 Ом. напрямую к LPT порту по этой схеме.
Вот по этой причине, эти микроконтроллеры стали самыми популярными у радиолюбителей.
На этом рисунке Вы видите: Схему распиновки ножек МК для подключения и прошивки.
Пункт 1. Подготовим все необходимое для изготовления таймера.
Самые обязательные радиодетали схемы, остальное обычно можно подобрать у себя дома, самая маленькая микросхема, это часы DS1307.
Нам потребуются такие радиоэлементы:
• Микроконтроллер Atmega8
• Интегральные часы DS1307
• LCD жидкокристаллический индикатор
• Стабилизатор 7805
• Конденсатор 500-1000 Мф – 16 вольт.
• Реле или электронный ключ (в зависимости от нагрузки которая планируется подключаться).
• Резисторы сопротивлением 5,1ком – 3 шт., резистор переменный (по мануалу LCD дисплея).
• Кварц часовой 32768 Гц.
• Кнопки без фиксации – 4 шт.
• Батарейка таблетка на 3 вольта.
• Текстолит для платы.
• Небольшой трансформатор
6-12в.
• Коробка распаечная для корпуса.
+ Для программатора: резисторы 150-200 Ом. – 4 шт., разъем LPT порта (для удобства, не обязателен).
Обязательные инструменты каждого радиолюбителя:
• Паяльник для пайки микросхем, паяльник для пайки пассивных радиодеталей и проводов.
• Тестер для прозвонки дорожек и проверки радиодеталей.
• Олово, канифоль.
+ Принтер лазерный (для изготовления платы или другой способ).
Пункт 2. Приступим к изготовлению.
Таймер будем делать по этой главной схеме.
Как видите на ней отсутствует схема блока питания и выходного исполнительного устройства, это потому, что возможно вы решите использовать выносной стабилизированный БП, а также не известно какую нагрузку вы планируете подключать, поэтому, каждый должен сам выбрать исполнительное устройство под свои технические требования.
Лично я своем таймере применил вот такую схему БП и исполнительное устройство на транзисторе и реле.
Они более компактные (без радиатора), но менее мощные, чем простое реле.
В соответствии с главной принципиальной схемой + БП + ИУ и анализом монтажных габаритов вашей коробки для корпуса, а также размеров подобранных радио элементов, проектируем форму, размер и рисунок дорожек на плате. Для этого удобно пользоваться программой Sprint Layout.
Для моего устройства получилась вот такая простая плата.
400C вместо обычных
200С, я кстати когда-то по глупости купил этот принтер именно для ЛУТ :(., поэтому в результате моя плата рисована маркером.
Нанесенный на медь рисунок вытравливаем в ванночке с хлорным железом или любым другим специальным раствором.
На готовую плату припаиваем детали согласно схеме, особое внимание обращаем при монтаже и пайке микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальной, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное пространство рядом с МС часов и кварца заполняем площадками корпуса (GND). Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.
Микроконтроллер прошиваем программатором или с помощью 5 проводков.
Автор прошивки специально для удобства (за что ему спасибо) и не стал изменять заводские фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.
Для корпуса очень удобно использовать распаечные коробки из пластмассы, они бывают разных размеров и форм.
Управление меню осуществляется четырьмя кнопками.
Меню состоит из трех пунктов, СLOCK -установка часов, TIMЕ – установка таймеров и RESET -сброс всех установленных таймеров.
Сначала заходим (*) в меню часов и выставляем точное время.
Подсказка по управляющим кнопкам в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.
Теперь все готово чтобы корректно задавать временные записи таймера, после нажатия решетки, программа записывается в постоянную память МК.
На видео в начале статьи можно посмотреть подробнее о меню.
Я применяю этот таймер для полива гидропоники.
Хочу предложить мастерам Самоделкина для рассмотрения и возможного повторения, очень простую схему, очень хорошего таймера. С удобной навигацией по меню, с жидкокристаллическом LCD дисплеем , с часами реального времени, с минимально возможным количеством деталей и при всем этом можно запрограммировать целых сто временных отрезков в течении суток.
Видео проверки таймера
Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8. Вы можете сказать, что для прошивки нам потребуется программатор которого нет, но это не так, для прошивки Atmega достаточно всего пять коротких 10-15 см. проводков подключенных через резисторы 150-200 Ом. напрямую к LPT порту по этой схеме.
Вот по этой причине, эти микроконтроллеры стали самыми популярными у радиолюбителей.
На этом рисунке Вы видите: Схему распиновки ножек МК для подключения и прошивки.
Пункт 1. Подготовим все необходимое для изготовления таймера.
Самые обязательные радиодетали схемы, остальное обычно можно подобрать у себя дома, самая маленькая микросхема, это часы DS1307.
Нам потребуются такие радиоэлементы:
• Микроконтроллер Atmega8
• Интегральные часы DS1307
• LCD жидкокристаллический индикатор
• Стабилизатор 7805
• Конденсатор 500-1000 Мф – 16 вольт.
• Реле или электронный ключ (в зависимости от нагрузки которая планируется подключаться).
• Резисторы сопротивлением 5,1ком – 3 шт., резистор переменный (по мануалу LCD дисплея).
• Кварц часовой 32768 Гц.
• Кнопки без фиксации – 4 шт.
• Батарейка таблетка на 3 вольта.
• Текстолит для платы.
• Небольшой трансформатор
6-12в.
• Коробка распаечная для корпуса.
+ Для программатора: резисторы 150-200 Ом. – 4 шт., разъем LPT порта (для удобства, не обязателен).
Обязательные инструменты каждого радиолюбителя:
• Паяльник для пайки микросхем, паяльник для пайки пассивных радиодеталей и проводов.
• Тестер для прозвонки дорожек и проверки радиодеталей.
• Олово, канифоль.
+ Принтер лазерный (для изготовления платы или другой способ).
Пункт 2. Приступим к изготовлению.
Таймер будем делать по этой главной схеме.
Как видите на ней отсутствует схема блока питания и выходного исполнительного устройства, это потому, что возможно вы решите использовать выносной стабилизированный БП, а также не известно какую нагрузку вы планируете подключать, поэтому, каждый должен сам выбрать исполнительное устройство под свои технические требования.
Лично я своем таймере применил вот такую схему БП и исполнительное устройство на транзисторе и реле.
Они более компактные (без радиатора), но менее мощные, чем простое реле.
В соответствии с главной принципиальной схемой + БП + ИУ и анализом монтажных габаритов вашей коробки для корпуса, а также размеров подобранных радио элементов, проектируем форму, размер и рисунок дорожек на плате. Для этого удобно пользоваться программой Sprint Layout.
Для моего устройства получилась вот такая простая плата.
400C вместо обычных
200С, я кстати когда-то по глупости купил этот принтер именно для ЛУТ :(., поэтому в результате моя плата рисована маркером.
Нанесенный на медь рисунок вытравливаем в ванночке с хлорным железом или любым другим специальным раствором.
На готовую плату припаиваем детали согласно схеме, особое внимание обращаем при монтаже и пайке микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальной, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное пространство рядом с МС часов и кварца заполняем площадками корпуса (GND). Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.
Микроконтроллер прошиваем программатором или с помощью 5 проводков.
Автор прошивки специально для удобства (за что ему спасибо) и не стал изменять заводские фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.
Для корпуса очень удобно использовать распаечные коробки из пластмассы, они бывают разных размеров и форм.
Управление меню осуществляется четырьмя кнопками.
Меню состоит из трех пунктов, СLOCK -установка часов, TIMЕ – установка таймеров и RESET -сброс всех установленных таймеров.
Сначала заходим (*) в меню часов и выставляем точное время.
Подсказка по управляющим кнопкам в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.
Теперь все готово чтобы корректно задавать временные записи таймера, после нажатия решетки, программа записывается в постоянную память МК.
На видео в начале статьи можно посмотреть подробнее о меню.
Я применяю этот таймер для полива гидропоники.
Таймер на atmega8 с часовым модулем. Программирование микроконтроллеров AVR
Этот таймер предназначен для установки выдержек от 5 секунд до 100 минут. На его выходе имеется достаточно мощное электромагнитное реле, позволяющее коммутировать ток до З0А при напряжении 12V и ток до 10А при напряжении 220V. Благодаря применению электромагнитного реле таймер может управлять не только нагревательными или осветительными приборами, но и электронными приборами, критичными к форме питающего переменного напряжения. Трансформаторное питание, в сочетании с реле, обеспечивает полную гальваническую развязку электронной схемы таймера от сети.
Для общения таймера с оператором есть четырехразрядный светодиодный индикатор, в нем очень старые 7-сегментные матрицы АЛ304 в количестве четырех штук, соединены в матрицу путем соединения вместе одноименных сегментных выводов. Конечно можно использовать и более современные светодиодные индикаторы, и даже готовые матрицы по четыре разряда под динамическую индикацию.
Управляют таймером кнопками S1, S2, S3, S4. При нажатии кнопки S1 происходит включение нагрузки и запуск таймера. Чтобы установить время, в течение которого должна работать нагрузка, нужно нажать S4.На дисплее будут мигать два старших разряда (минуты). Теперь кнопками S2 и S3 можно установить значение минут. Затем нужно еще раз нажать S4. Теперь будут мигать младшие разряды и кнопками S2 и S3 можно установить секунды. Чтобы сохранить установки нужно еще раз нажать S4. Теперь индикатор будет показывать установленную выдержку. Чтобы запустить таймер нужно нажать S1. Нагрузка включается, а показания индикатора начинают убывать. Как только заданное время иссякнет на индикаторе появляется надпись «OFF», а нагрузка выключается электромагнитным реле. Чтобы повторить нужно дважды нажать кнопку S1. При первом нажатии «OFF» сменится на показание заданного времени, а при втором произойдет запуск таймера. Управление реле по выводу 23 D1. Включение — логической единицей. Ключ на VT5 и VT6 управляет электромагнитным реле К1. Такие реле используются в схемах автомобильных сигнализаций. Они могут коммутировать как постоянный ток (12V) так и переменный (220V), поскольку обладают хорошей изоляцией.
Источник питания выполнен на маломощном трансформаторе. Поскольку вторичная обмотка трансформатора имеет отвод от середины (12-0-12), то выпрямитель сделан не по мостовой, а по двухполупериодной схеме на двух диодах VD2 и VD3. Если трансформатор будет с обмоткой 12V без отводом, то нужен выпрямительный мост. Реле питается непосредственно с выхода выпрямителя, а остальная схема через стабилизатор А1 напряжения 5V.
При прошивке нужно задать на работу с внутренним генератором 8 МГц.
Схема собрана на покупной макетной печатной плате, на её одной стороне расположены микросхема и другие детали, а кнопки и индикаторы на другой стороне. Трансформатор питания за пределами платы.
Транзисторы КТ315 можно заменить на КТ3102 или любые аналоги. Транзистор КТ815 можно заменить на КТ817, КТ604. Диод КД521 — практически любой аналог. Диоды в выпрямителе КД209 — любые диоды выпрямительные на постоянный ток не ниже 150 мА. Интегральный стабилизатор 7805 можно заменить любым 5-вольтовым, например, КР142ЕН5А. Или сделать стабилизатор по параметрической схеме на двух транзисторах и стабилитроне на 5V. По поводу индикаторов сказано выше. Это могут быть любые семисегментные индикаторы с общим анодом(катодом).
Архив для статьи «Таймер на Atmega8 и светодиодных индикаторах» | |
Описание: Файлы прошивок | |
Размер файла: 5.58 KB Количество загрузок: 4 319 |
Этот таймер предназначен для установки выдержек от 5 секунд до 100 минут. На его выходе имеется достаточно мощное электромагнитное реле, позволяющее коммутировать ток до З0А при напряжении 12V и ток до 10А при напряжении 220V. Благодаря применению электромагнитного реле таймер может управлять не только нагревательными или осветительными приборами, но и электронными приборами, критичными к форме питающего переменного напряжения. Трансформаторное питание, в сочетании с реле, обеспечивает полную гальваническую развязку электронной схемы таймера от сети.
Для общения таймера с оператором есть четырехразрядный светодиодный индикатор, в нем очень старые 7-сегментные матрицы АЛ304 в количестве четырех штук, соединены в матрицу путем соединения вместе одноименных сегментных выводов. Конечно можно использовать и более современные светодиодные индикаторы, и даже готовые матрицы по четыре разряда под динамическую индикацию.
Управляют таймером кнопками S1, S2, S3, S4. При нажатии кнопки S1 происходит включение нагрузки и запуск таймера. Чтобы установить время, в течение которого должна работать нагрузка, нужно нажать S4.На дисплее будут мигать два старших разряда (минуты). Теперь кнопками S2 и S3 можно установить значение минут. Затем нужно еще раз нажать S4. Теперь будут мигать младшие разряды и кнопками S2 и S3 можно установить секунды. Чтобы сохранить установки нужно еще раз нажать S4. Теперь индикатор будет показывать установленную выдержку. Чтобы запустить таймер нужно нажать S1. Нагрузка включается, а показания индикатора начинают убывать. Как только заданное время иссякнет на индикаторе появляется надпись «OFF», а нагрузка выключается электромагнитным реле. Чтобы повторить нужно дважды нажать кнопку S1. При первом нажатии «OFF» сменится на показание заданного времени, а при втором произойдет запуск таймера. Управление реле по выводу 23 D1. Включение — логической единицей. Ключ на VT5 и VT6 управляет электромагнитным реле К1. Такие реле используются в схемах автомобильных сигнализаций. Они могут коммутировать как постоянный ток (12V) так и переменный (220V), поскольку обладают хорошей изоляцией.
Источник питания выполнен на маломощном трансформаторе. Поскольку вторичная обмотка трансформатора имеет отвод от середины (12-0-12), то выпрямитель сделан не по мостовой, а по двухполупериодной схеме на двух диодах VD2 и VD3. Если трансформатор будет с обмоткой 12V без отводом, то нужен выпрямительный мост. Реле питается непосредственно с выхода выпрямителя, а остальная схема через стабилизатор А1 напряжения 5V.
При прошивке нужно задать на работу с внутренним генератором 8 МГц.
Схема собрана на покупной макетной печатной плате, на её одной стороне расположены микросхема и другие детали, а кнопки и индикаторы на другой стороне. Трансформатор питания за пределами платы.
Транзисторы КТ315 можно заменить на КТ3102 или любые аналоги. Транзистор КТ815 можно заменить на КТ817, КТ604. Диод КД521 — практически любой аналог. Диоды в выпрямителе КД209 — любые диоды выпрямительные на постоянный ток не ниже 150 мА. Интегральный стабилизатор 7805 можно заменить любым 5-вольтовым, например, КР142ЕН5А. Или сделать стабилизатор по параметрической схеме на двух транзисторах и стабилитроне на 5V. По поводу индикаторов сказано выше. Это могут быть любые семисегментные индикаторы с общим анодом(катодом).
Архив для статьи «Таймер на Atmega8 и светодиодных индикаторах» | |
Описание: Файлы прошивок | |
Размер файла: 5.58 KB Количество загрузок: 4 319 |
Таймер обратного отсчёта поможет вам точно отмерять интервал времени в диапазоне от 1 секунды до 24 часов.
Сегодня никого не удивишь конструкцией таймера, т.к. в продаже и в интернете подобных устройств, сколько угодно. И все таймеры вроде бы похожи друг на друга. И когда более подробно начинаешь рассматривать функции схемы, находишь в ней какие либо неудобства для себя.
Вот из этих соображений я и сделал программу таймера, который отвечает следующим параметрам:
– компактная конструкция и простая схемотехника;
– оперативное кнопочное управление;
– при управлении кнопками, дублирование действий на ЖКИ;
– задание времени с точностью до секунды;
– диапазон отсчета от 1 секунды до 24 часов;
– функция старт, пауза;
– функция сброса отсчета и выставленных значений времени;
– при достижении значения 00.00.00, включается исполнительное устройство;
Все поставленные задачи были реализованы в этом проекте.
Описание режимов работы таймера
После включения таймера, можно выставлять время, которое нам требуется. Назначение кнопок видно на схеме. После установки, нажимаете кнопку СТАРТ-пауза отсчет начинается. Максимальное выставляемое время 23.59.59.
Коррекция времени отсчета может быть произведена в любой момент работы таймера, после подачи питания на схему.
Как только время достигает 00.00.00, – включается светодиод (в данный момент это имитация включения исполнительного устройства или просто можно пищалку с генератором).
Если при его работе таймера нажать кнопку старт-ПАУЗА, таймер остановит отсчет, двойное нажатие кнопки СТАРТ-пауза приводит к возобновлению остановленного отсчета.
Чтобы выключить нагрузку после включения, нужно нажать СБРОС, данные таймера установятся 00.00.01 – нагрузка выключиться. Или выставить новый период отсчета и двойное нажатие кнопки СТАРТ-пауза.
Отображение на ЖКИ символов ! > означает, что нагрузка отключена (PD3) и при однократном нажатии кнопки СТАРТ начнется обратный отсчет установленного времени.
Кварц внешний 8 MHz, для точности счета.
Для программатора в PonyProg и CodeVisionAVR нужно убрать все галочки с настройки тактового генератора.
После прошивки программатором фьюзов от внешнего кварца, контроллер будет читаться программатором только с кварцем.
Внимание! Что касается FUSE-битов. Это основной источник ошибок, приводящих к залочиванию контроллера.
– CKSEL3…0 должны быть НЕзапрограммированы.
В PonyProg и CodeVisionAVR стоят так:
ЖК должен быть на базе контроллера HD4480
16х1, для него в архиве имеется прошивка V-1
или 8х2, в архиве прошивка V-2.
Работу схемы можно протестировать в proteus’е.
Если при симуляции проекта в proteus’е некорректно отображаются символы кириллицы на ЖКИ, то для правильного отображения кириллицы на ЖК индикаторе распаковать библиотеку LCDrus .zip (приложена в архиве проекта) в папку models proteus’а.
Данное устройство будет полезно любому человеку, которому приходится постоянно готовить, и надежно защитит вашу кухню от чрезмерного количества дыма. Этот прибор, как следует из названия — кухонный таймер. Он предназначен для отсчитывания интервалов при приготовлении различных блюд. Таймер имеет несколько клавиш, при помощи которых можно легко установить время от 1 минуты до 99 часов. Обратный отсчет начинается автоматически, через 3 секунды после установки времени. Благодаря громкой пищалке вы точно услышите когда блюдо готово. Устройство собрано на основе микроконтроллера ATMega8.
Описание конструкции
Сердцем устройства является микроконтроллер U1 (ATMega8) с кварцевым резонатором X1 (16 МГц) и обвязкой из двух конденсаторов C1 (22 пФ) и C2 (22 пФ). Стабилизатор U2 (7805) с обвязкой из конденсаторов C3 (100 мкФ) и C4 (47 мкФ) стабилизирует напряжение питания 5В, необходимое для корректной работы микроконтроллера и связанных компонентов. На разъем Zas подается напряжение 7-12В. Если у Вас имеется блок питания с напряжением 5-6В, можно исключить из схемы стабилизатор напряжения. Зуммер B1 и аноды дисплея W1 управляются транзисторами T1 — T5 (BC556), с обвязкой из резисторов R1 — R8 (3.3 кОм), R17 (3.3 кОм) и R18 (3.3 кОм). Резисторы R9 — R16 (330 Ом) ограничивают ток через сегменты дисплея. Разъем Prog и один вывод R используются для подключения программатора. Клавиатура таймера подключена к разъему Sw.
Изготовление
Рисунок печатной платы для устройства есть в архиве в конце статьи. Установка деталей начинается с пайки двух перемычек. Затем устанавливаются все резисторы и прочие элементы в порядке от меньшего к большему. Кварц X1 должен быть «низкий» — он устанавливается под дисплей — в противном случае он просто не поместится туда. Зуммер B1 можно припаять на плату, как это показано на фотографиях, но позже выяснилось, что после закрытия корпуса звук слишком тихий (несмотря на отверстия, просверленные в корпусе). Лучше приклеить зуммер на одну из сторон корпуса (так, как это показано на последнем фото), и соединить проводами с платой. Клавиатура состоит из 5 кнопок без фиксации 12х12мм непосредственно на лицевой части корпуса, так что их толкатели находятся чуть выше поверхности корпуса. Для этого устройства в качестве блока питания хорошо использовать зарядное устройство для телефона, из-за его небольшого веса и размеров.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8A-AU | 1 | В блокнот | ||
U2 | Линейный регулятор | LM7805CT | 1 | В блокнот | ||
T1-T5 | Биполярный транзистор | BC556 | 5 | В блокнот | ||
C1, C2 | Конденсатор | 22 пФ | 1 | В блокнот | ||
C3 | 100 мкФ | 1 | В блокнот | |||
С4 | Конденсатор электролитический | 47 мкФ | 1 | В блокнот | ||
R1-R8, R17, R18 | Резистор | 3.3 кОм | 10 | В блокнот | ||
R9-R16 | Резистор | 330 Ом | 8 | В блокнот | ||
W1 | 7-сегментный индикатор | AF-05643FG-B | 1 | Или с аналогичной распиновкой | В блокнот | |
B1 | Пьезодинамик с генератором | 1 |
На нашем сайте, посвящённом различным электронным самоделкам, уже неоднократно публиковались схемы . Конечно они уступают современным промышленным аналогам, где имеется дисплей, возможность программирования и другие сервисные функции. И вот пришло время разместить такую схему, которая на равных будет конкурировать с лучшими фирменными образцами. Цифровой таймер используются для управления работой электрических устройств, по запрограммированному графику. Этот программируемый таймер делается на основе микроконтроллера PIC16F628A , который может быть запрограммирован, чтобы составить расписание включения и выключения электрического прибора, подключенного к нему, который управляется через реле. Таймер позволяет вручную задать время включения и выключения. Максимальный интервал времени, который можно настроить для включения и выключения, составляет 99 часов 59 минут. Проект разработан под использование 16х2 ЖК-дисплея и 4 кнопки.
Здесь 5 вольтовое реле управляется транзистором PN2222, который, в свою очередь, управляется RB3 PIC16F628A. Цифровые входы из 4 кнопок читаются с помощью порта ввода/вывода RA2, RA3, RA4, и RB0. Стандартный 16?2 символьный ЖК-дисплей используется для отображения состояния устройства, программы, меню и времени. ЖК работает в 4-битном режиме, поэтому только 6 выводов I/O PIC16F628A необходимы для работы. Пьезоэлектрический зуммер дает звуковой сигнал, когда таймер запускается и останавливается. Он также подает звуковой сигнал, когда устройство включено или выключено. Напряжение питания схемы поступает от стабилизатора LM7805. На вход её подается 9 В от сетевого адаптера. Подсветка LED повышает читаемость дисплея LCD в условиях низкой освещенности состоянии.
Работа таймера и функции кнопок
Таймер получает команды от 4-х кнопок. Их функции следующие:
Время : позволяет задать время включения и выключения. Когда таймер изначально включен, устройство находится в выключенном состоянии, и время 0. Нажав эту кнопку, можно переключаться между on и off на дисплее.
Выбор : позволяет выбрать между on и off параметрами, а также часовой и минутной цифрой. Выбранная цифра увеличивается нажатием кнопки ON/OFF.
Ввод : когда соответствующее время выбрано, нажатие данной кнопки завершит установки.
Пуск/стоп : чтобы запустить или остановить таймер. Если он уже включен, вы можете остановить его в любое время при нажатии на эту кнопку.
Суточный таймер atmega8 схема прошивка
Принципиальная схема. Для того чтобы облегчить труд человека и для экономии электроэнергии, опять же из-за забывчивости человека, в практике применяются всевозможные автоматы.
Многоканальный суточный таймер с часами реального времени — Еще на сайте вы найдёте нужную вам схему, а также информацию по разделам: Усилители,Радио,Жучки,Схемы для начинающих
суточный таймер atmega8 схема прошивка
Многоканальный суточный таймер с часами реального времени. Моя доработка заключается только в добавлении таймера 555, который отвечает за включение освещения с началом сумерек, так как в течение года наступление
Ассоциация Экспериментальной Авиации — Печатать
Но Устройство кухонный таймер» (а глубоко в основе идеи — лежало именно это назначение) эксплуатируется ведь не круглые сутки, не так ли?
На главную Вернуться к странице книги: Рязанцев Дмитрий. Только ни это, — прохрипел он, продирая глаза. Голова как всегда трещала, а желудок выворачивало наизнанку, — все, надо бросать пить.
Обнуляем счетчик суточного пробега на спидометре, обнуляем время поездки на бортовом компьютере или тупо засекаем время поездки, а потом делим пройденное расстояние на время. Это необходимо допустим при обновлении прошивки.
Например: применение этого дополнительного управления, изначально предполагалось для использования в наружном освещении, но используя комбинации вход — таймер, термостат – выход, термостат – таймер, вход
Здравствуйте. Вопрос к Автору. Не стабильно работает прошивка «импульс ОА» , при программировани и
| |
Рассылка выходит раз в сутки и содержит список программ из App Store для iPhone перешедших в категорию бесплатные за последние 24 часа.
ATMega8 / Память программ, память данных, EEPROM
Документация
Память данных
Память данных предназначена для работы с данными (чтение и запись данных), которые используются в программе-прошивке микроконтроллера ATmega8. Память данных является энергозависимой. Это значит, что при отключении питания микроконтроллера все данные в ней будут потеряны. Ниже изображена структура памяти данных.
Область статической памяти SRAM (Static Random Access Memory) начинается с адреса 0x060. Более подробно о SRAM можно прочитать . В микроконтроллерах ATmega8 размер статической памяти составляет 1 kb, но при необходимости он может быть увеличен до 64kb с помощью внешних блоков памяти (порты A и С при этом окажутся занятыми — они будут применяться для передачи данных и адресов). Для этого необходимо установить сельмой разряд регистра MCUCR в лог 1. SRAM используется для хранения данных, которые не уместились в рабочих регистрах, а также для организации программного стека (особой области памяти, используемой процессором для хранения адресов возврата из подпрограмм, промежуточных вычисление и т.д)
Область регистров общего назначения (рабочих регистров) используется для хранения переменных и указателей. В микроконтроллере mega8 область рабочих регистров состоит из 32-х восьмиразрядных регистров (диапазон адресов 0x000-0x01F). Если прошивка микроконтроллера пишется на языке С, то обращаться к этим регистрам обычно не требуется (хотя к ним можно обратиться при помощи ассемблерных вставок в С-программу).
Регистры ввода/вывода микроконтроллера mega8 включают в себя 64 регистра, которые используются для управления переферийными устройствами, а также для хранения данных переферийных устройств. К этим регистрам можно обращаться по имени (самый распространённый вариант в при разработке на языке C), по адресу ввода/вывода, по адресу в SRAM.
Имя регистра | Адрес ввода/вывода | Адрес SRAM | Описание |
---|---|---|---|
ACSR | Регист управления и состояния аналогового компоратора | ||
UBRR | Регист скорости передачи данных через UART | ||
UCR | Регистр управления приёмопередатчиком UART | ||
USR | Регистр состояния приёмопередатчиком UART | ||
UDR | Регистр данных приёмопередатчиком UART | ||
SPCR | Регистр управления интерфейсом SPI | ||
SPSR | Регистр состояния интерфейса SPI | ||
SPDR | Регистр ввода/вывода данных интерфейса SPI | ||
PIND | Состояние выводов порта D | ||
DDRD | Регистр направления передачи данных порта D | ||
PORTD | Регистр данных порта D | ||
PINC | Состояние выводов порта С | ||
DDRC | Регистр направления передачи данных порта C | ||
PORTC | Регистр данных порта С | ||
PINB | Состояние выводов порта B | ||
DDRB | Регистр направления передачи данных порта B | ||
PORTB | Регистр данных порта B | ||
PINA | Состояние выводов порта А | ||
DDRA | Регистр направления передачи данных порта A | ||
PORTA | Регистр данных порта A | ||
EECR | Регистр управления памяти EEPROM | ||
EEDR | Регистр данных памяти EEPROM | ||
EEARL | Регистр адреса памяти EEPROM (младший байт) | ||
EEARH | Регистр адреса памяти EEPROM (старший байт) | ||
WDTCR | Регистр управления сторожевым таймером | ||
ICR1L | Регистр захвата таймера/счётчика T/C1 (младший байт) | ||
ICR1H | Регистр захвата таймера/счётчика T/C1 (старший байт) | ||
OCR1BL | Регистр сравнения B таймера T/C1 (младший байт) | ||
OCR1BH | Регистр сравнения B таймера T/C1 (старший байт) | ||
OCR1AL | Регистр сравнения A таймера T/C1 (младший байт) | ||
OCR1AH | Регистр сравнения A таймера T/C1 (старший байт) | ||
TCNT1L | Счётный регистр таймера/счётчика T/C1 (младший байт) | ||
TCNT1H | Счётный регистр таймера/счётчика T/C1 (старший байт) | ||
TCCR1B | Регистр управления B таймера/счётчика T/C1 | ||
TCCR1A | Регистр управления А таймера/счётчика T/C1 | ||
TCNT0 | Счётный регистр таймера/счётчика T/C0 | ||
TCCR0 | Регистр управления таймера/счётчика T/C0 | ||
MCUCR | Регист управления микроконтроллером | ||
TIFR | Регистр флагов прерывания от таймеров/счётчиков | ||
TIMSK | Регист маскирования прерываний от таймеров | ||
GIFR | Общий регистр флагов прерываний | ||
GIMSK | Общий регистр маскирования прерываний | ||
SPL | Указатель стека (младший байт) | ||
SPH | Указатель стека (старший байт) | ||
SREG | Регистр состояния |
Если у вас есть какие-то замечания по этому документу или что-то осталось непонятно, то вы можете оставить свой отзыв или вопрос
Анонимная отправка сообщений запрещена! Пожалуйста зарегистрируйтесь
Программируемый контроллер дневного и ночного освещенияна базе ATmega8
Недорогой, простой в сборке мощный светодиодный контроллер со встроенным программируемым таймером.
Этот проект опубликован с разрешения автора и загружен через наш проект загрузки.Основная цель этого проекта — разработать не требующий обслуживания и недорогой светильник, который автоматически включается и выключается в заданное время дня.
Этот вид света помогает сократить потери электроэнергии и сэкономить энергию.В наши дни у людей есть привычка включать хотя бы один свет в своем доме, если они уезжают из дома на пару дней. Затем огни начинают гореть весь день и ночь, тратя много энергии. Если мы сможем использовать этот программируемый свет, то мы сможем настроить его так, чтобы он включался каждую ночь и выключался на следующий день без какого-либо участия человека.
Основным компонентом этой программируемой лампы является маломощный КМОП-микроконтроллер ATmega8. Основная причина выбора этого микроконтроллера — это более низкая стоимость и более высокая доступность.За исключением двух вышеуказанных причин, этот микроконтроллер также поставляется с богатым набором периферийных устройств, включая 23 GPIO, 3 независимых таймера, двухпроводной последовательный интерфейс, EEPROM и т. Д.
Помимо микроконтроллера ATmega8, эта система использует часы реального времени DS1307 для поддержания системного времени. Как и ATmega8, DS1307 также является очень популярным на рынке RTC.
Рис. 1. Лицевая сторона программируемого светового контроллера. Этот контроллер предназначен для работы с источником питания 24 В постоянного тока. Основная причина выбора 24 В заключается в том, что большинство имеющихся на рынке светодиодных модулей средней мощности предназначены для работы с этим напряжением.Во время поиска все обнаруженные мной светодиодные модули средней мощности рассчитаны на работу в диапазоне от 20 до 28 В. Большинство из этих светодиодных модулей рассчитаны на вход 24 В.
Для этой схемы рекомендуется портативный импульсный источник питания 24 В, 1,5 А. За исключением стадии драйвера светодиода, все остальные части этого светового контроллера рассчитаны на работу с напряжением 5 В. Преобразователь постоянного тока MC34063 используется для подачи напряжения 5 В на эти компоненты.
Рис. 2: Задняя сторона программируемого светового контроллера. Чтобы уменьшить размер, я спроектировал эту систему с использованием компонентов , устанавливаемых на поверхность, , но эта система также может быть построена с использованием компонентов типа со сквозным отверстием.На стадии прототипа я строю эту систему полностью на макете, используя детали типа со сквозным отверстием .
Для создания света мощностью 7 Вт я использовал доступные на рынке детали светодиодных ламп, в том числе светодиодную панель Warm white 7W, алюминиевый корпус лампы (радиатор) и рассеивающий колпачок (крышка лампы).
Строительство
Как упоминалось ранее, этот программируемый светильник может быть построен разными способами, включая использование печатной платы, Veroboard, макета и т. Д. Наиболее предпочтительный способ создания этой системы — использование печатной платы.
Печатная плата, которую я предоставляю, основана на двух слоях, поэтому рекомендуется создавать эту печатную плату, используя услуги по изготовлению печатных плат.
Рис. 3: Все компоненты этой платы припаяны с помощью обычного паяльника.После изготовления печатной платы можно приступать к пайке компонентов в нее. Сначала попробуйте припаять SMD микросхемы. После пайки всех трех микросхем начните с небольших SMD-компонентов, таких как резисторы, конденсаторы и транзисторы SOT-23. Я настоятельно рекомендую на последних этапах пайки установить семисегментный дисплей, основание разъема постоянного тока, зажимы аккумулятора и клеммную колодку.
Загрузить прошивку в систему
После того, как все компоненты собраны, следующая задача — загрузить микропрограммное обеспечение в микроконтроллер. Наиболее рекомендуемый метод загрузки микропрограмм — использование адаптера, совместимого с внутрисхемным программированием (ISP) AVR.
Эта система разработана для работы со стандартным 6-контактным интерфейсом AVR ISP, и для этого интерфейса доступно множество программистов.
Во время сборки прототипа я использовал программатор USBasp для прошивки микроконтроллера.
Рис. 4: Заголовок ISP для подключения программистов.В процессе загрузки прошивки особое внимание уделяется настройкам предохранителя ATMega8. Для получения ожидаемых результатов байт low-fuse должен быть установлен в 0xEF, а байт high-fuse должен быть установлен в 0xD9. Дополнительные сведения см. В документации по проекту на GitHub.
При использовании ISP обязательно отключите источник питания 24 В от системы.
Светодиодный модуль
После загрузки прошивки остается только подключить светодиодный модуль к контроллеру.
Перед тем, как паять светодиодный модуль мощностью 7 Вт, прикрепите его к радиатору, входящему в комплект поставки. Для улучшения теплопередачи обязательно нанесите термопасту между светодиодным модулем и радиатором.
Рис. 5: Частично собранный светодиодный модуль.При длительном светодиодном освещении его температура повышается до 70 ° C — 80 ° C. Из-за этого обязательно примите необходимые меры для изоляции проводов светодиода от температуры. Чтобы преодолеть это, в прототипе я пропускаю этот провод через высокотемпературную базальтовую втулку .
Использование светового контроллера
При первом включении световой контроллер запускается с настройками по умолчанию. Чтобы изменить эти настройки, нажмите и удерживайте кнопку «MODE» в течение нескольких секунд, после чего откроется системное меню .
Системное меню состоит из 4 опций, таких как « SYS », « ON », « OFF » и « — ». Вы можете изменить значение, связанное с каждой опцией, нажав кнопку « MODE ». В системном меню нажимайте кнопки « ВВЕРХ, » или « ВНИЗ, » для навигации по доступным режимам.
Рис. 6: Световой контроллер в состоянии покоя.В режиме « SYS » пользователь может изменить системное время. Аналогично в режимах « ВКЛ, » и « ВЫКЛ, » пользователь может установить время включения и выключения света соответственно.
Чтобы выйти из системного меню , нажмите кнопку « MODE » в режиме « — ».
Прошивка светового контроллера предназначена для переключения в состояние ожидания, если пользователь не задействован в системе в течение длительного периода времени.В состоянии ожидания семисегментный дисплей светового контроллера не активен. В большинстве случаев индикатор SLEEP также активировался в состоянии ожидания.
Все параметры, доступные в контроллере света, подробно описаны в руководстве пользователя, доступном на GitHub.
Файлы проекта и исходный код
Проект светового контроллера, описанный в этой статье, является сертифицированным проектом открытого оборудования. Все файлы дизайна и исходные файлы прошивки этого проекта доступны для загрузки на GitHub.
Скомпилированная прошивка и Gerber-файлы печатной платы также доступны для загрузки на странице выпуска GitHub.
Все содержимое этого проекта распространяется на условиях следующей лицензии:
% PDF-1.6 % 2056 0 объект > эндобдж xref 2056 107 0000000016 00000 н. 0000003206 00000 н. 0000003343 00000 п. 0000003543 00000 н. 0000003572 00000 н. 0000003624 00000 н. 0000003661 00000 н. 0000003875 00000 н. 0000003959 00000 н. 0000004040 00000 н. 0000004122 00000 н. 0000004204 00000 н. 0000004286 00000 п. 0000004368 00000 н. 0000004450 00000 н. 0000004532 00000 н. 0000004614 00000 н. 0000004696 00000 н. 0000004778 00000 п. 0000004860 00000 н. 0000004942 00000 н. 0000005024 00000 н. 0000005106 00000 п. 0000005188 00000 п. 0000005270 00000 н. 0000005352 00000 п. 0000005434 00000 н. 0000005516 00000 н. 0000005598 00000 п. 0000005680 00000 н. 0000005762 00000 н. 0000005844 00000 н. 0000005925 00000 н. 0000006120 00000 н. 0000006813 00000 н. 0000007644 00000 н. 0000008196 00000 н. 0000008768 00000 н. 0000008872 00000 н. 0000009505 00000 н. 0000010266 00000 п. 0000011014 00000 п. 0000011752 00000 п. 0000012490 00000 п. 0000013203 00000 п. 0000013914 00000 п. 0000027053 00000 п. 0000027724 00000 н. 0000032720 00000 п. 0000037829 00000 п. 0000071234 00000 п. 0000072242 00000 п. 0000072733 00000 н. 0000072813 00000 п. 0000072874 00000 п. 0000072968 00000 п. 0000073141 00000 п. 0000073324 00000 п. 0000073503 00000 п. 0000073646 00000 п. 0000073757 00000 п. 0000073929 00000 п. 0000074016 00000 п. 0000074107 00000 п. 0000074240 00000 п. 0000074381 00000 п. 0000074505 00000 п. 0000074626 00000 п. 0000074736 00000 п. 0000074883 00000 п. 0000074987 00000 п. 0000075138 00000 п. 0000075267 00000 п. 0000075351 00000 п. 0000075509 00000 п. 0000075623 00000 п. 0000075724 00000 п. 0000075824 00000 п. 0000075926 00000 п. 0000076055 00000 п. 0000076165 00000 п. 0000076293 00000 п. 0000076470 00000 п. 0000076568 00000 п. 0000076668 00000 п. 0000076859 00000 п. 0000077051 00000 п. 0000077244 00000 п. 0000077436 00000 п. 0000077629 00000 п. 0000077820 00000 п. 0000078012 00000 п. 0000078204 00000 п. 0000078396 00000 п. 0000078592 00000 п. 0000078784 00000 п. 0000078976 00000 п. brH-q1PR> Q 2T
Обновление прошивки USBASP | bitbanging
USBASP — популярный и недорогой программатор для контроллеров AVR.Они часто продаются с устаревшей прошивкой. Узнайте ниже, как легко обновить его для поддержки TPI и избавиться от предупреждающих сообщений.
Проблема
USBASP — это встроенный программатор с открытым исходным кодом для контроллеров Atmel AVR, разработанный Томасом Фишлем. На его веб-сайте вы можете скачать самую последнюю версию прошивки и найти всю информацию для ее создания. Вы также можете купить его по очень низкой цене в нескольких местах в Интернете. Однако в дешевых версиях может быть устаревшая прошивка.Признаком устаревшей прошивки является следующее предупреждающее сообщение:
avrdude: предупреждение: не удается установить период sck. usbasp проверьте наличие обновлений прошивки.
Однако это всего лишь предупреждение, и программист, вероятно, все еще правильно загружает файлы. Одна функция, которой не хватает вашему USBASP, — это поддержка Tiny Programming Interface (TPI) , необходимая для программирования небольших микроконтроллеров AVR, таких как ATtiny10. Поэтому, если вы хотите запрограммировать ATtiny10, вам лучше обновить USBASP.Обновить прошивку относительно просто, и это можно сделать с помощью только Arduino и нескольких перемычек.
— обычный программатор USBASP —
Настройте Arduino как ISP
Нам нужно, чтобы Arduino действовал как программист. Для этого нам просто нужно загрузить эскиз, уже доступный в примерах Arduino. Поэтому из Arduino IDE:
- Перейдите в Файл> Примеры> ArduinoISP
- Подключите Arduino
- Нажмите Загрузить
Готово.Теперь Arduino готов загрузить прошивку на другое устройство, в нашем случае USBASP.
Электропроводка
На следующей схеме показаны соединения между выводами Arduino и USBASP. Дважды проверьте соединения, так как большинство проблем возникает из-за ослабленного провода или неправильно подключенных контактов.
Ардуино | USBASP |
---|---|
5V | 2 |
ЗЕМЛЯ | 10 |
13 | 7 |
12 | 9 (MISO) |
11 | 1 (MOSI) |
10 | 5 (СБРОС) |
Перемычка закрытая 2
Убедитесь, что вы закрыли JP2 на плате USBASP .Без этого нельзя перепрограммировать плату. Чтобы замкнуть перемычку 2 на USBASP, вы можете припаять к ней что-нибудь или просто использовать провод и затянуть его в оба отверстия. Убедитесь, что он не двигается и не теряет соединение на полпути загрузки прошивки.
— замкните перемычку даже с помощью проволоки или скрепки. Паять не нужно. —
Прошивка
Прошивку можно загрузить с веб-сайта Thomas Fischl. После того, как вы скачали последнюю версию, вы должны найти .шестнадцатеричный файл внутри архива. Это файл, который мы загрузим на устройство. В случае прошивки 2011 года (самая последняя на момент написания) это:
usbasp.atmega8.2011-05-28.hex
avrdude
Последний шаг — загрузка прошивки с помощью avrdude . Я предполагаю, что у вас установлена IDE Arduino. Тогда самый простой способ получить Avrdude — это поискать его в файлах Arduino IDE (в качестве альтернативы вы можете получить его из Интернета).Исполняемый файл avrdude будет по следующему адресу:
ARDUINO FOLDER "/ Java / hardware / tools / avr / bin /
Нам также понадобится файл конфигурации avrdude.conf
, который можно найти здесь:
ПАПКА ARDUINO "/ Java / hardware / tools / avr / etc /
Скопируйте этих двух файлов и вставьте их в папку вместе с файлом прошивки (в данном случае usbasp.atmega8.2011-05-28.hex
).
Затем вам нужно определить порт, используемый Arduino.Чтобы найти его:
- Подключите Arduino к USB
- Откройте IDE Arduino
- Перейдите в Инструменты> Порт
Обратите внимание на используемый порт (/dev/cu.usbmodem14101 в моем случае)
В терминале перейдите в папку, в которую вы поместили avrdude, и введите следующую команду, используя правильный порт для параметра -P
./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011-05-28.шестнадцатеричный: я
Готово! Если вы не получаете сообщения об ошибке, ваш USBASP готов.
Список литературы
Обновление прошивкидля USBASP Clone — Исправление ошибки настройки USBASP ISP Clock
USBASP — один из самых популярных программаторов для микроконтроллеров AVR от Thomas Fischl .
Это один из старейших программаторов для AVR. И очень часто используется с программным обеспечением AVRdude.
Существует множество графических интерфейсов на основе AVRDude, например:
В этом уроке мы сосредоточимся на самом простом: хазама и довольно сложном (eXtreme Burner).
Если вы купили клон USBASP, вы можете столкнуться с этой проблемой:
Исправление ошибки настройки USBASP ISP Clock.
Хотя некоторые USBASP могут читать / записывать флеш-память, эта ошибка довольно раздражает.
Шаги обновления очень просты, но вам нужно иметь 2 из них и обновлять их все один за другим.
Какого черта, цена в любом случае дешевая.
Шаг 1. Наденьте перемычку и закрепите ее на крючке
КлонUSBASP имеет перемычку JP1, JP2, JP3 или J1, J2, J3.Эти перемычки устанавливаются на аппаратном уровне.
Пусть JP1 по умолчанию на 5 В. JP3 по умолчанию открыт. JP2 — включить режим самопрограммирования.
Для JP2 или J2 и используйте скрепку (или пинцет или что-то еще), чтобы закоротить эту перемычку. во время операции записи или чтения на целевом USBASP.
Теперь подключите кабель к обоим USBASP. Подключите один без перемычки к ПК USB. См. Изображение выше.
Шаг 2. Проверьте свой USBASP и загрузите последнюю версию микропрограммы
Прежде чем продолжить, лучше проверьте, какая микросхема USBASP установлена на вашей плате.Эта информация полезна для определения последней прошивки для конкретной платы.
На картинке выше мы можем использовать программу записи eXtreme для получения этой информации.
Теперь перейдите на http://www.fischl.de/usbasp/ и загрузите последнюю версию прошивки ( usbasp.2011-05-28.tar.gz ). Распакуйте его и перейдите по адресу usbasp.2011-05-28 \ bin \ firmware.
Есть 3 шестнадцатеричных файла, используйте правильный в соответствии с информацией о чипе.
Шаг 3. Резервное копирование оригинальной прошивки
Этот шаг необходим в случае, если вы хотите использовать старую прошивку обратно или что-то случилось.
Для этого вы можете использовать eXtreme burner или khazama. У Khazama для этой операции меньше кнопки « опасно ». В пользовательском интерфейсе нет erase , fuse или любой другой кнопки, которая может вызвать проблему. Так что безопаснее использовать хазаму в первый раз.
- Нажмите кнопку Read flash (F) (показано на рисунке выше). Если операция прошла успешно, данные флеш-памяти будут считаны в память.
- Выберите File -> Сохранить Bufer как файл -> выберите каталог и введите имя файла.
Шаг 4: Прошивка.
А теперь прошиваем.
- Выберите меню Файл -> Загрузить файл flash в буфер .
- Выберите правильный шестнадцатеричный файл прошивки.
- Щелкните на кнопке flash F (со стрелкой вниз) и нажмите на нее (показано на 3-м рисунке).
- Выберите команду меню -> проверить флэш-память -> Если все в порядке, появится сообщение «Проверить нормально».
Шаг 5. Переключите цель USBASP и проверьте ее
- Теперь вы можете отсоединить JP2 (скрепку) от целевой платы.
- Отключите программатор и переключите целевой программатор на ПК в качестве программатора.
- Теперь прошитый стал программатором.
- И верните JP2 (скрепку на другую доску). Тот, который не подключен к ПК.
- Если обновление прошло успешно, вы больше не увидите ошибки при установке часов ISP.
- Сделайте то же самое с другой платой, начиная с шага 2.
Источник: Обновление прошивки для USBASP Clone — Исправление ошибки Настройка USBASP ISP Clock
Подключение джойстика игровой приставки к компьютеру
8- и 16-битные игровые приставки, которые когда-то были очень популярны, давно утратили лидерство на рынке игр и развлечений.Тем не менее, старые игры по-прежнему популярны и при этом вполне могут соперничать по интересности с современными мультигигабайтными и мультигигагерцовыми монстрами. Сегодня существует множество различных эмуляторов старых консолей, и китайская промышленность по-прежнему производит как сами консоли, так и джойстики к ним.
В российском журнале «Радио» №1 в 2007 году была опубликована статья С.Рюмика о подключении джойстика от старых игровых приставок к любому компьютеру с шиной USB. В статье была схема-переходник, позволяющий подключать джойстики от консолей NES (SNES, Dendy), SEGA MegaDrive-II или Sony PlayStation.Допускается подключение до 4-х джойстиков для NES или до 2-х джойстиков для SEGA или Sony PlayStation. Адаптер построен на базе микроконтроллера ATMega8-16PI и имеет разъем для подключения ISP-программатора.
Для работы с разными типами и разным количеством джойстиков есть набор из 9 прошивок. Минимальное время отклика для прошивки с одним джойстиком составляет 10 мс, для прошивки с двумя джойстиками — 20 мс, а для прошивки с четырьмя джойстиками — 40 мс. Поскольку устройство подключается к ПК через USB, удобно использовать USB-загрузчик для смены прошивки.Я собрал плату для SMD-компонентов и добавил кнопку S1 , которая используется для активации загрузчика.
В результате получается такая схема:
Я использовал BootloadHID в качестве загрузчика.
Схема подключения NES-джойстиков:
Схема подключения SEGA-джойстиков:
Схема подключения джойстиков Sony PlayStation:
Печатная плата:
В сборе адаптер:
Если вы используете usbasp + avrdude для записи битов предохранителей, вы можете использовать следующую команду:
avrdude -pm8 -cusbasp -u -Ulfuse: w: 0x2e: m -Uhfuse: w: 0xc8: m
Пишем загрузчик:
avrdude -c usbasp -p atmega8 -U flash: w: bootloader.шестнадцатеричный: i
После успешной установки загрузчика программатор не нужен. Загрузка прошивки выполняется командой
bootloadHID.exe <имя файла микропрограммы>
Электронные схемы и макет печатной платы (для Eagle CAD) можно скачать по ссылкам ниже. Оригинальные версии схем, плат и прошивок можно скачать с ftp-сервер журнала «Радио».
Файлы:
Прошивка, исходники, проект Eagle, загрузчикATMEGA8-16PU — Микрочип — 8-битный микроконтроллер, маломощный, высокопроизводительный, AVR Семейство ATmega Микроконтроллеры серии ATmega8
ATMEGA8-16PU — 8-разрядный КМОП-микроконтроллер малой мощности, основанный на архитектуре RISC, улучшенной AVR.Выполняя мощные инструкции за один такт, ATMEGA8-16PU достигает пропускной способности, приближающейся к 1 MIPS на МГц, что позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки.
- Расширенная архитектура RISC
- 130 мощных инструкций
- Рабочие регистры общего назначения 32 × 8
- Полностью статический режим
- Пропускная способность до 16 MIPS при 16 МГц
- Умножитель на 2 цикла на микросхеме
- Долговечные сегменты энергонезависимой памяти
- 8 Кбайт внутрисистемной самопрограммируемой флэш-памяти программ
- 512 байт EEPROM
- Внутренняя SRAM 1 Кбайт
- Срок хранения данных: 20 лет при 85 ° C / 100 лет при 25 ° C
- Дополнительная секция кода загрузки с независимыми битами блокировки
- В системном программировании с помощью встроенной программы загрузки
- Истинная операция чтения во время записи
- Программный замок для защиты программного обеспечения
- Периферийные функции
- Счетчик реального времени с отдельным генератором
- Три канала ШИМ
- Шесть каналов, точность 10 бит
- Последовательный двухпроводной интерфейс с байтовой ориентацией
Предупреждения
Рыночный спрос на этот продукт привел к увеличению сроков поставки.Сроки доставки могут отличаться. Товар освобожден от скидок.
A Универсальный промышленный таймер и устройство хранения реального времени
Беспроводная техника и технология
Том 2 № 3 (2011), идентификатор статьи: 5831,8 страницы DOI: 10.4236 / wet.2011.23027
Универсальный промышленный таймер и устройство реального времени Хранитель времени
Сагар Г.Ядав, К. А. Нараянанкутти
Кафедра электроники и техники связи, Инженерная школа Амрита, Коимбатур, Индия.
Эл. Почта: [email protected], [email protected]
Поступила 10 февраля -го , 2011 г .; доработана 20 марта -го , 2011 г .; принято 27 апреля -е , 2011.
Ключевые слова: Промышленный таймер, Часы реального времени, Программируемый, Автономный, DS1307, I 2 C, USART, ZigBee, Bluetooth
РЕЗЮМЕ
Требования к промышленному таймеру многогранны.Задержка включения, задержка выключения, циклические или последовательные требования к времени, с обычным диапазоном времени, варьирующимся от секунд до дней, в зависимости от процесса. Настраиваемые таймеры сборки не могут удовлетворить все эти требования одновременно, и поэтому в этой работе был разработан и изготовлен усовершенствованный таймер, устраняющий этот недостаток. Этот таймер основан на микросхеме часов реального времени, используемой в материнских платах. Наш дизайн может быть запрограммирован на определенное время, а затем может быть запущен в автономном режиме.Изготовлена и испытана демонстрационная плата.
1. Введение
В этой статье мы представляем уникальный гаджет, обеспечивающий своевременную работу контролируемого устройства. Гаджет предлагает точные функции хронометража от секунд до дней и различные режимы работы. Это отвечает различным потребностям промышленности и исследовательских лабораторий. Гаджет легко настраивается через интерфейс RS232, не требует каких-либо драйверов или специального программного обеспечения для взаимодействия с ПК.Гаджет мог питаться от USB-порта ПК во время настройки, тем самым устраняя необходимость во внешнем источнике питания. Этот порт USB также связывает с ним схему драйвера. Схема драйвера используется для управления устройством.
Многие промышленные таймеры доступны на рынке от ведущих производителей, например, промышленные таймеры серии 405 с режимом задержки включения / интервала времени работы [1], многорежимные промышленные таймеры серии 407 с задержкой включения / задержкой выключения / временным режимом операции [2], циклические промышленные таймеры серий RG-21 и GP2 с циклическим режимом работы [3,4].Одна из основных трудностей, с которыми сталкивается при развертывании таких промышленных таймеров, заключается в том, что они не предлагают всех различных требований по времени, таких как отложенное включение / задержка выключения или циклическое одновременно в одном устройстве. Более того, их нужно настраивать вручную каждый раз после цикла операций, и они не дают возможности настраивать их удаленно с помощью беспроводных соединений. Удаленная настройка этих таймеров оказывается очень полезной, особенно когда они устанавливаются в тяжелых, труднодоступных местах в промышленности.Модуль промышленного таймера, описанный в этом документе, преодолевает все вышеупомянутые трудности и недостатки, предлагаемые устройствами, доступными в настоящее время на рынке. Гаджет предлагает все различные промышленные временные требования, такие как задержка включения / задержка выключения / или цикличность одновременно, и может быть настроен на 25 циклов на ходу. Гаджет настраивается программно через интерфейс RS232 и может быть настроен даже удаленно, подключив гаджет к компактному модулю ZigBee или Bluetooth, предназначенному для работы в прозрачном режиме.В прозрачном режиме эти радиочастотные модули могут заменять последовательный порт (RS232) для установления соединений между ПК / базовой станцией и модулем таймера.
Гаджет имеет два режима работы: режим настройки и режим ожидания. Два режима работы можно выбрать с помощью переключателя Push to ON, доступного на гаджете. В режиме конфигурации устройство может быть подключено к ПК через порт RS232 для установки времени RTC и редактирования настроек времени для управляемого устройства.Windows © HyperTerminal можно использовать для связи с гаджетом в этом режиме. В режиме ожидания гаджет будет сопряжен со схемой сопутствующего драйвера для управления устройством. В гаджет встроен модуль часов реального времени, который отслеживает системное время. Модуль имеет резервную батарею, обеспечиваемую литиевой ячейкой 3 В, которая обеспечивает непрерывное отслеживание системного времени.
Гаджет предлагает гибкий режим работы, который можно настроить в соответствии с различными требованиями к хронометражу.Его можно использовать для реализации отложенного включения / выключения устройства или даже для выполнения периодической последовательности операций устройства, позволяя циклически изменять настройки времени.
Документ организован следующим образом: Раздел 2 дает подробную информацию о микросхеме часов реального времени, о способах доступа и использования микросхемы. В разделе 3 подробно описаны используемые схемы и встроенное ПО. Раздел 4 объясняет работу гаджета и детали конфигурации вместе со снимками экрана. Мы завершаем эту статью потенциальными применениями гаджета в Разделе 5.
2. Часы реального времени DS1307
Последовательные часы реального времени DS1307 — это маломощные часы / календарь с полностью двоично-десятичным кодом (BCD), плюс 56 байтов NV SRAM [5]. Адрес и данные передаются последовательно по 2-проводной двунаправленной шине (I 2 C). Часы / календарь содержат информацию о секундах, минутах, часах, дне, дате, месяце и году. Дата конца месяца автоматически корректируется для месяцев, содержащих менее 31 дня, включая поправки на високосный год. Часы работают в 24-часовом или 12-часовом формате с индикатором AM / PM.DS1307 имеет встроенную схему измерения мощности, которая обнаруживает сбои питания и автоматически переключается на питание от батареи. Схема часов реального времени включает кварцевый кристалл 32,768 кГц, который синхронизирует модуль. Батарея резервного питания обеспечивается литий-ионным аккумулятором CR2025 с напряжением 3 В.
DS1307 работает как ведомое устройство на последовательной шине. Доступ обеспечивается реализацией условия START и предоставлением идентификационного кода устройства, за которым следует адрес регистра. К последующим регистрам можно обращаться последовательно, пока не будет выполнено условие STOP.Информация передается побайтно, и каждый получатель подтверждает с помощью девятого бита. Подтверждающее устройство отключает линию SDA во время тактового импульса подтверждения. Это показано на временной диаграмме, показанной на рисунке 1. В спецификациях 2-проводной шины определены обычный режим (тактовая частота 100 кГц) и быстрый режим (тактовая частота 400 кГц). DS1307 работает только в штатном режиме (100 кГц). Во время передачи и приема данных по шине I 2 C DS1307 работает в следующих двух режимах:
2.1. Режим ведомого приемника (режим записи DS1307)
Последовательные данные и часы принимаются через SDA и SCL. После получения каждого байта передается бит подтверждения. Условия START и STOP распознаются как начало и конец последовательной передачи. Распознавание адреса выполняется аппаратно после получения адреса ведомого и бита направления (рисунок 2). Байт адреса — это первый байт, полученный после того, как начальное условие сгенерировано мастером. Байт адреса содержит 7-битный адрес DS1307, который равен 1101000, за которым следует бит направления (R / W), который для записи равен 0.После приема и декодирования байта адреса устройство выводит подтверждение в строке SDA. После того, как DS1307 подтверждает адрес ведомого + бит записи, ведущее устройство передает адрес регистра на DS1307. Это установит указатель регистра на DS1307. Затем мастер начнет передачу каждого байта данных, а DS1307 подтвердит получение каждого байта. Мастер сгенерирует условие остановки, чтобы прекратить запись данных.
2.2. Режим ведомого передатчика (режим чтения DS1307)
Первый байт принимается и обрабатывается как в режиме ведомого приемника.Однако в этом режиме бит направления указывает, что направление передачи изменено на противоположное. Последовательные данные передаются по SDA посредством DS1307, в то время как последовательные часы вводятся по SCL. Условия START и STOP распознаются как начало и конец последовательной передачи (рисунок 3). Байт адреса — это первый байт, полученный после того, как начальное условие сгенерировано мастером. Байт адреса содержит 7-битный адрес DS1307, который равен 1101000, за которым следует бит направления (R / W), который для чтения равен 1.После приема и декодирования байта адреса устройство подтверждает ввод в строке SDA. Затем DS1307 начинает передавать данные, начиная с адреса регистра, на который указывает указатель регистра. Если указатель регистра не записывается до запуска режима чтения, первый считываемый адрес является последним, сохраненным в указателе регистра. DS1307 должен получить «не подтверждать», чтобы завершить чтение.
3. Схема и прошивка
Схема устройства может быть разделена на две части, а именно: схему управления и схему драйвера.Схема управления составляет полную схему для устройства, тогда как схема драйвера является частью модуля драйвера, с которым устройство взаимодействует во время режима ожидания.
3.1. Схема управления
Полная принципиальная схема схемы управления показана на рисунке 4. 8-разрядный микроконтроллер AVR Amega8 [6] составляет основу схемы управления вместе с часами реального времени от Dallas Semiconductor, DS1307. Микроконтроллер работает на частоте 8 МГц с помощью кварцевого кристалла Q2, тогда как для модуля часов реального времени DS1307 требуется частота 32 МГц.768 кГц, который также обеспечивается кварцевым кристаллом Q1. Вся схема питается от постоянного тока 5 В, поступающего через ПК. USB
Рис. 1. I 2 C адрес и формат пакета данных.
Рисунок 2. Запись данных — битовая последовательность режима ведомого приемника.
Рис. 3. Считывание данных — битовая последовательность режима ведомого передатчика.
порт. Гаджет подключается к ПК для настройки или к схеме драйвера хронометриста через тот же USB-порт при работе в режиме ожидания.Мощность, поступающая от порта USB, контакты 1 и 4 X1, фильтруется с помощью электролитического конденсатора C1 и отображается с помощью светодиода питания LED1 через токоограничивающий резистор R1. Схема сброса при включении питания построена для микроконтроллера с использованием цепи резисторных конденсаторов, образованной R2 и C9. Контроллер также можно принудительно сбросить с помощью тактильного переключателя S2. Переключатель S1, подключенный к выводу 13 микроконтроллера, используется для установки режима конфигурации. Когда переключатель включен, гаджет переходит в режим настройки.
Для сопряжения гаджета с ПК мы используем модуль USART, доступный в микроконтроллере [7]. Мы настроили модуль USART на работу в асинхронном режиме со скоростью передачи 38400 бит / с. Формат кадра — 8 бит данных без бита четности и стопового бита. Клеммы RXD и TXD модуля USART от микроконтроллера подключены через схему преобразователя уровня к гнезду X2 порта DB9. Поскольку сигналы RS232 находятся в диапазоне от +12 В до –12 В и инвертируются (–12 В — это логическая 1), подача такого напряжения на АРН опасна.Таким образом, преобразователь уровня MAX232 [8] MAXIM используется между последовательным портом «мама» DB9 и микроконтроллером. MAX232 использует конденсаторные насосы для выполнения необходимого сдвига уровня и обеспечения приема и передачи сигналов.
Схема также включает 6-контактный порт заголовка ISP, SV1 для облегчения последовательного программирования микроконтроллера внутри схемы. Любой программист ISP может легко подключиться к гаджету через этот порт для программирования микроконтроллера. Заголовок ISP на плате дает доступ к контактам MOSI, MISI, SCK и RESET микроконтроллера для программирования SPI.
Схема часов реального времени, построенная на DS1307, отслеживает системное время. Схема часов реального времени включает кварцевый кристалл Q1 с частотой 32,768 кГц, который синхронизирует модуль. Батарея резервного питания обеспечивается литий-ионным аккумулятором 3 В CR2025, G1. Два подтягивающих резистора R4 и R5 по 4,7 кОм каждый используются для обеспечения надлежащего состояния шины на линиях SCL и SDA шины I 2 C [9]. Подтягивающий резистор R3 используется на выводе SQW / OUT для правильной работы, так как он имеет тип с открытым стоком. SCL и
Рисунок 4.Принципиальная схема цепи управления.
Линии SDA от модуля RTC, в свою очередь, подключаются к соответствующим шинным клеммам микроконтроллера, чтобы установить шину I 2 C. Соединение SQW / OUT от модуля RTC подключается к выводу T1 микроконтроллера, который формирует внешний источник синхронизации для внутреннего 16-битного модуля таймера / счетчика, доступного в Atmega 8. Флуоресцентный синий светодиод подключен к выходному выводу OC1B микроконтроллера. . OC1B образует выходной контакт одного из двух блоков сравнения выходов 16-разрядного модуля таймера / счетчика [10].Светодиод мигает с частотой 2 Гц, визуально показывая отсчет внутреннего времени в гаджете.
3.2. Схема драйвера
Полная принципиальная схема схемы драйвера показана на рисунке 5. Схема драйвера хронометра может быть разделена на две основные части, а именно: блок питания и блок драйвера. В блоке питания используется стабилизатор положительного напряжения LM7805 [11] вместе со сглаживающими конденсаторами C10, C11, C12 и C13 для генерации регулируемого фиксированного выходного напряжения + 5 В из необработанного постоянного напряжения, полученного с разъема питания постоянного тока.Любое постоянное напряжение от + 7,5 В до + 20 В можно безопасно подавать через разъем питания постоянного тока для питания схемы. Диод D1 был использован для защиты схемы от случайного изменения полярности. Красный светодиод LED4 вместе с токоограничивающим резистором R6 обеспечивает индикацию включения. Стабилизированное напряжение +5 В, генерируемое схемой источника питания, также подается через порт USB X5 для питания гаджета при взаимодействии со схемой драйвера в режиме ожидания.
Схема драйвера использует NPN-транзисторы T1 и T2 в качестве переключателей для управления модулем реле и зуммера соответственно.Резисторы R7 и R9 обеспечивают правильное смещение для транзисторов, когда сигнал возбуждения появляется на выводах 2 и 3 USB-порта. Диод D2 подключен к релейному модулю для обхода генерируемой обратной ЭДС и, таким образом, защищает оставшуюся схему. В нашем прототипе мы использовали релейный куб на 6 В на печатной плате. Нормально разомкнутый контакт релейного модуля используется для подключения управляемого устройства к источнику переменного тока под напряжением. Зеленый светодиод LED3 вместе с токоограничивающим резистором R8 обеспечивает индикацию состояния модуля реле и, следовательно, управляемого устройства.Светодиод загорится, когда реле будет активировано. Переключатель S4, нажимаемый на включение, используется для подключения и отключения схемы драйвера модуля зуммера от остальной схемы, если это нежелательно.
3.3. Прошивка
Прошивка для гаджета написана на встроенном C, компилируется и отлаживается с помощью AVR Studio 4. Вся прошивка для микроконтроллера была тщательно организована в несколько исходных файлов, каждый из которых определяется с помощью соответствующих файлов заголовков. Исходный файл по
Рисунок 5.Принципиальная схема схемы драйвера.
с файлом заголовка заботится о конкретных приложениях и включает подпрограммы, которые могут быть вызваны для них из основного файла. Помимо определенных пользователем файлов заголовков для конкретного приложения и соответствующих им исходных файлов, программа также включает несколько других служебных и стандартных файлов заголовков из библиотеки AVR. Для обработки операций чтения-записи EEPROM в проект включен заголовочный файл утилиты eeprom.h из библиотеки AVR [12].Точно так же для генерации точных задержек в миллисекундах и микросекундах включен заголовочный файл утилиты delay.h. Подробное описание различных файлов заголовков, определенных пользователем, приведено в таблице 1. Каждый из файлов заголовков, определенных пользователем, сопровождает исходный файл, который определяет процедуры, объявленные в соответствующих файлах заголовков.
Соответствующие данные и рекомендации по программам взяты из справочных материалов [13-16].
4. Работа с гаджетом
Как упоминалось ранее, гаджет имеет два режима работы, а именно: режим конфигурации и режим ожидания.В режиме конфигурации, который выбирается при нажатии переключателя S1 в положение ON, связь с гаджетом может быть установлена по шине USART с помощью программного обеспечения HyperTerminal. В режиме конфигурации пользователь может выполнять следующие операции:
• Установить время, дату и день RTC.
• Просмотр времени, даты и дня RTC.
• Редактировать базу данных настроек времени для управляемого устройства.
• Просмотр базы данных настроек времени для управляемого устройства.
Эти различные операции могут быть выполнены с помощью удобного интерфейса меню, подготовленного
Таблица 1. Описание определяемых пользователем файлов заголовков.
гаджет над окном HyperTerminal. После подключения гаджета к ПК через последовательный порт RS232 и его включения через порт USB, мы сможем увидеть экран приветствия, показанный на рисунке 6, в окне HyperTerminal.
При нажатии любой клавиши пользователь увидит интерфейс главного меню, как показано на рисунке 7, из которого можно выбрать различные доступные параметры.
Следует выбрать вариант 1 для установки системного времени в микросхеме RTC. Время должно быть введено в 24-часовом формате вместе с системной датой и днем, как показано на рисунке 8. После заполнения всех деталей чип автоматически обновляется. После установки системного времени то же самое можно было бы просмотреть, выбрав опцию 2 в интерфейсе главного меню, после чего отобразятся детали установленного системного времени, даты и дня, как показано на Рисунке 9.
Вариант 3 из интерфейса главного меню должен быть выбрано, чтобы редактировать настройки времени для управляемого устройства.Следующий пример иллюстрирует процедуру.
Рисунок 6. Экран приветствия в HyperTerminal.
Рисунок 7. Интерфейс главного меню в HyperTerminal.
Рисунок 8. Редактирование системного времени RTC из HyperTerminal.
Рисунок 9. Просмотр системного времени RTC из HyperTerminal.
Пример: нам нужно отредактировать настройки времени для управляемого устройства, чтобы обеспечить последовательность операций, указанную на временной диаграмме, показанной на рисунке 10.
Чтобы реализовать эту последовательность операций для управляемого устройства, мы устанавливаем эталонное время, которое в данном случае удобно выбрать как 00:32 часа.
Мы устанавливаем начальное состояние устройства как ВЫКЛ., А также вводятся четыре относительных настройки времени относительно эталонного времени. Следовательно, мы вводим четыре точки данных в меню и продолжаем вводить детали точек данных вместе со статусом устройства в течение установленного относительного времени. При вводе последней точки данных гаджет автоматически сохранит базу данных во внутренней EEPROM.Эти последовательности операций изображены на рисунках 11-13.
Для просмотра сохраненной базы данных в EEPROM пользователь может выбрать опцию 4 в интерфейсе главного меню. Затем гаджет считывает базу данных из своей памяти EEPROM, форматирует данные в читаемую пользователем форму и, наконец, отображает их в окне HyperTerminal, как показано на рисунке 14.
Рисунок 11. Редактирование базы данных настроек времени путем ввода эталонного времени.
Рисунок 12. Ввод сведений о первой относительной точке данных.
Рисунок 13. Ввод последней относительной информации о точках данных.
Рисунок 14. Просмотр базы данных, сохраненной в EEPROM, через Hyperterminal.
После того, как гаджет успешно настроен с использованием системного времени и необходимой базы данных настройки времени для управляемого устройства, устройство следует отсоединить от ПК. Затем его следует переключить в режим ожидания, отпустив переключатель S1. Наконец, подключите его к модулю драйвера через порт USB на гаджете
5.Выводы
Был разработан, изготовлен и испытан таймер с хронометром. Снимки авторского прототипа показаны на рис. 15-17. Полная односторонняя компоновка печатной платы для схемы гаджета показана на рисунке 18. Этот модуль таймера можно использовать для сигнализации с заранее установленным временем, для включения или выключения домашнего освещения или других устройств в любое время дня по соображениям безопасности или для сигнализации. Он может быть построен как программируемый модуль ПЛК с несколькими выходами, что упростит его работу на основе нескольких входов и таймингов, которые можно запрограммировать извне.
Гаджет также можно эффективно использовать для синхронизации узлов датчиков в беспроводной сети датчиков, развернутой для точного земледелия, где каждый узел датчиков должен периодически определять температуру, уровень освещенности и влажность почвы и передавать свои данные по беспроводной сети. Эта прерывистая работа этих узлов датчиков требует операции с низким рабочим циклом, при которой эти узлы датчиков переводятся в спящий режим, когда они не используются, и будут просыпаться только в определенные моменты времени, когда данные требуются для анализа.В таком сценарии узлы датчиков должны спать и просыпаться вместе, чтобы они могли периодически общаться. Ошибки в механизме синхронизации приведут к снижению эффективности, что приведет к увеличению рабочих циклов. Обсуждаемый здесь Real Time Keeper затем может быть использован для перевода этих узлов датчиков в спящий или пробуждающий состояние в соответствии с настроенными требованиями к синхронизации. Все модули Real Time Keeper, подключенные к сенсорным узлам, затем будут настроены удаленно через беспроводную связь ZigBee / Bluetooth, работающую в прозрачном режиме.Данные конфигурации для всех модулей Real Time Keeper будут транслироваться по беспроводной связи, так что все узлы датчиков будут привязаны к времени
Рисунок 15. Авторский прототип устройства.
Рисунок 16. Авторский прототип модуля драйвера.
Рисунок 17. Авторский прототип при подключении к ПК для настройки.
Рисунок 18. Одностороннее расположение печатной платы цепи управления.
Модульхранителя будет синхронизирован по времени.
СПРАВОЧНАЯ ИНФОРМАЦИЯ
- «Руководство пользователя таймера серии 405 с реле мгновенного действия», Industrial Timer Company, Centerbrook.
- «Руководство пользователя многомодового таймера Series 407», Industrial Timer Company, Centerbrook.
- «Руководство пользователя циклического таймера серии RG21», компания Industrial Timer Company, Centerbrook.
- «Руководство пользователя многофункционального таймера серии GP2», компания Industrial Timer Company, Centerbrook.
- «Техническое описание DS1307», ред. 100208, Dallas Semiconductor, Maxim Integrated Products, Саннивейл.
- «Техническое описание AVR Atmega 8», ред. 2486S-08/07, Atmel Corporation, Сан-Хосе.
- «AVR306: Использование AVR UART в C», Примечание по применению AVR, ред. B-07/08.
- «Техническое описание Maxim MAX232», ред. 11-2 / 03, Maxim Integrated Products, Саннивейл.
- «AVR315: Использование модуля TWI как I 2 C Mmaster», Примечание по применению AVR, Ред.