Таймер на atmega8: Таймер на ATmega8 — Схемы радиолюбителей

Содержание

Простой таймер на ATmega8 + LCD

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

Схема таймера

В таймере используется микроконтроллер ATmega8 фирмы Atmel и стандартный модуль 16×2 LCD для визуализации управления. Пользователь может установить время с помощью 3-кнопочной клавиатуры. После того как таймер запустится оставшееся время отображается на экране. FUSE — биты должны быть установлены так: HIGH FUSE=C9, LOW FUSE=FF. Контрастность дисплея регулируется резистором R1.

Настройка битов конфигурации микроконтроллера

При включении таймера нагрузка находится в выключенном состоянии. После этого вы можете установить время с помощью кнопки «Больше». После этого перейти на «старт» с помощью кнопки «Выбор». Затем нажмите любую клавишу, чтобы запустить таймер. Теперь на экране обратный отсчет и нагрузка включена. Когда отсчет достигает 0 нагрузка отключается.


Архив для статьи «Простой таймер на Atmega8 + LCD»
Описание:
Размер файла: 2.15 KB Количество загрузок: 4 473 Скачать

ATMega8 / Таймеры и счётчики микроконтроллера atmega8

Документация

Таймеры и счётчики являются одними из самых частоиспользуемых функций микроконтроллеров.  Они служат для замера интервалов времени, частоты, определений широт импульсов и так далее. В Atmega8 используются 8 и 16-ти битные счётчики. Переполнение 8 битного счётчика наступает при достижении 255 итераций, 16 битного — при достижении 65535 итераций.

Если таймер работает в режиме счётчика, то он считает количество импульсов, поступивших на выбранный вход микроконтроллера. В этом случае регистр направления DDR порта должен быть настроен на вход.

Если таймер работает в качестве таймера, то частота его тактирования зависит от частоты генератора такта микроконтроллера.

За работу таймеров T/С0, T/C1, T/C2 отвечают регистры TCCR0, TCCR1, TCCR2. Первые 3 бита регистров TCCR0 и TCCR1 отвечают за конфигурацию таймера. Конгфигурация таймера в зависимости от состояния этих трёх регистров представлена в таблице.

Бит2 Бит1 Бит0 Значение комбинации
0 0 0  Таймер/счётчик неактивен
0 0 1 Активен режим «Таймер». Такт таймера равен такту микроконтроллера
0 1 0 Активен режим «Таймер». Такт таймера равен такту микроконтроллера/8
0 1 1 Активен режим «Таймер». Такт таймера равен такту микроконтроллера/64
1 0 0 Активен режим «Таймер». Такт таймера равен такту микроконтроллера/256
1 0 1 Активен режим «Таймер». Такт таймера равен такту микроконтроллера/1024
1 1 0 Режим «Счётчик».  Активный фронт сигнала — ниспадающий
1 1 1 Режим «Счётчик». Активный фронт сигнала — нарастающий

Если включен режим счётчика, то при каждом импульсе на вход счётчика происходит увеличение на единицу содержимого  регистра TCNTx.  При изменении состояния счётчика регистра TCNTx c 0xFF на 0x00, в регистре TIFR устанавливается флаг переполнения TOVx

Регистр TIFR

7 6 5 4 3 2 1 0
TOV1 OCF1A OCF1B  — ICF1  — TOV0  —

При работе в режиме таймера счётчик считает число тактовых импульсов, сгенерированных таймером. Время генерации тактового импульса зависит от такта микроконтроллера и делителя такта (см. таблицу выше). Например, если тактовая частота микроконтроллера 4 mHz,  а делитель такта для таймера равен 8, то время генерации будет равно : 1/500.000Гц=2мкс. Таким образом для переполнения 8-битного счётчика после 256-го импульса нужно 512 мкс. Умножив количество переполнений на время 1 переполнения счётчика можно получить время с начала  работы таймера


Если у вас есть какие-то замечания по этому документу или что-то осталось непонятно, то вы можете оставить свой отзыв или вопрос

Анонимная отправка сообщений запрещена! Пожалуйста зарегистрируйтесь

Таймер на 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 LCD

На страницах журнала “Радио” неоднократно публиковались различные конструкции таймеров, собранных на цифровых микросхемах структуры КМОП. Эти таймеры имеют возможность изменения выдержки времени в широких пределах и поэтому достаточно универсальны.

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

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

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

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

С помощью таймера можно управлять нагрузкой, подключённой к нему либо непосредственно, либо через дополнительный коммутатор. Недостатком предлагаемой конструкции является невозможность получения некоторых интервалов выдержек времени (например, 15 и 50 мин) вследствие выбранного способа коммутации счётчиков микросхем, а также отсутствие резервного источника питания, что может привести к сбою установленного интервала времени и отключению устройства при кратковременных перерывах в подаче сетевого напряжения.

Схема устройства показана на сайте www.kuhonnij.ru см. рис. 1. При нажатии на кнопку SB1 на таймер времени и подключённую к нему нагрузку поступает сетевое напряжение, при этом срабатывает реле времени К1 и своими контактами К1.1 блокирует контакты кнопки. В момент подачи напряжения питания цепь C8R15 формирует импульс сброса, переводящий счетчики всех микросхем в нулевое состояние. На микросхеме К176ИЕ18 (DD1), включённой по стандартной схеме, собран генератор секундных и минутных импульсов.

Секундные импульсы с выхода генератора поступают на вход счётчика DD2.1, с выхода которого можно снять импульсы с периодом следования 2, 4, 8 и 16 с. С помощью сдвоенного переключателя SA1 осуществляют установку времени выдержки. Счётный вход счётчика DD3 через переключатель SA1.1 может быть соединён с одним из выходов счётчика DD2.1 либо с “минутным” выходом М микросхемы DD1. С помощью переключателя SA1.2 осуществляется изменение коэффициента деления счетчика DD3 2, 3, 4, 5, 6 и 8.

Импульсы с частотой, поделённой на соответствующий коэффициент, снимаются с выхода 0 счётчика DD3 и через диод VD12 поступают на вход счётчика DD2.2, к выходам которого подключены диоды VD17— VD20, выполняющие функцию элемента И. При достижении на выходах счётчика DD2.2 состояния 1111 на анодах этих диодов благодаря резистору R14 появляется высокий логический уровень, который через диод VD13 блокирует работу счётчика DD2.2 и открывает полевой транзистор VT2, который, в свою очередь, включает звуковой сигнал — пьезосирену НА1 со встроенным генератором.

На транзисторе VT1 и тринисторе VS1 выполнен узел автоматического отключения таймера от сети спустя минуту после появления звукового сигнала. По фронту каждого минутного импульса, появляющегося на выводе 10 микросхемы DD1, конденсатор С2 заряжается через резистор R6, открывая на короткое время транзистор VT1. Пока на коллекторе этого транзистора присутствует напряжение низкого уровня, тринистор VS1 закрыт. По окончании выдержки таймера по фронту последнего минутного импульса конденсатор С2 заряжается раньше, чем происходит переключение счётчиков микросхем DD2 и DD3, поэтому ко времени появления на коллекторе транзистора VT1 напряжения высокого уровня транзистор оказывается закрытым.

По фронту следующего минутного импульса транзистор VT1 вновь открывается, но теперь на его коллекторе присутствует напряжение высокого уровня, открывающее тринистор VS1. Открывшийся тринистор шунтирует обмотку реле К1, контакты К1.1 реле размыкаются, и таймер времени отключается от сети. Продолжительность звукового сигнала до момента отключения таймера при установке выдержки 20 мин и более — 1 мин, при выдержке менее 20 мин — немного меньше.

Для ручного отключения таймера нажимают на кнопку SB1, при этом конденсатор С9, заряженный до напряжения питания, контактами SB1.2 подключается к управляющему электроду тринистора, вызывая отключение реле К1. В момент отпускания кнопки SB1 таймер отключается, конденсатор С9 разряжается через цепь питания таймера и устройство готово к повторному пуску. Узел индикации времени, прошедшего с момента пуска таймера, построен с применением линейного газоразрядного индикатора ИН-9 [4]. Резисторы R16—R19 образуют цифроаналоговый преобразователь, преобразующий цифровой код на выходах счётчика DD2.2 в напряжение.

С движка подстроечного резистора R21 напряжение, пропорциональное прошедшему с момента пуска таймера времени, поступает на базу транзистора VT3, выполняющего функцию регулируемого резистора [5]. С увеличением напряжения на базе транзистора VT3 возрастает ток, текущий через индикатор HL2, и соответственно, увеличивается высота светящегося столба индикатора. Линейность шкалы индикатора зависит от точности подбора резисторов R16—R19, но так как индикатор служит больше для контроля, а не для отсчёта времени, добиваться высокой линейности шкалы не имеет смысла.

Чертёж печатной платы таймера показан на рис. 2. Она изготовлена из двухстороннего фольгированного стеклотекстолита толщиной 2 мм. Чертёж размещения элементов на плате показан на рис. 3, а внешний вид смонтированной платы — на рис. 4. Выводы деталей, соединяющие печатные проводники на разных сторонах платы, необходимо пропаивать с двух сторон. Для облегчения изменения времени выдержки таймера к контактным площадкам, служащим для присоединения проводов от переключателя SA1, подключены все, в том числе и не задействованные в данной конструкции, выходы счётчиков микросхем DD2.1 и DD3.

Резистор R10 установлен на плате параллельно, резистор R11 — перпендикулярно ей, при этом один из его выводов припаян к свободному выводу резистора R10, а другой — к выводу катода стабилитрона VD15. Конденсаторы СЗ и С4, а также микросхема DA1 установлены на плате “лёжа”. Над микросхемой DD3 на металлических стойках высотой 5 мм установлена пластина из оцинкованного железа толщиной 0,5 мм, оклеенная в два слоя полосками изоляционной ленты. Края пластины загнуты вверх, образуя коробчатое основание, в котором установлен трансформатор Т1.

Пластина с помощью изолированного отрезка провода соединена с общим проводом устройства. Держатель предохранителя FU1 и клеммная колодка, служащая для присоединения проводов, идущих к вилке ХР1 и гнезду XS1, смонтированы на небольшой пластине из полистирола, которая закреплена на стойках высотой 20 мм над реле К1. Индикатор HL2, светодиод HL1, а также кнопка SB1 и переключатель SA1 смонтированы на пластине из полистирола, имеющей размеры печатной платы. Эта пластина закреплена над платой с помощью металлических стоек высотой 40 мм, имеющих резьбу М3.

Звуковой излучатель с платой генератора извлечены из корпуса пьезосирены. Излучатель закреплён с помощью стойки и длинного винта рядом с трансформатором Т1, плата звукового генератора прикреплена к основной плате с помощью металлического уголка. Звуковой сигнализатор таймера можно выполнить без использования пьезосирены со встроенным генератором, задействовав элементы звукового сигнализатора микросхемы DD1.

На схеме (см. рис. 1) элементы этого варианта выделены красным цветом, а обозначение начинается с префикса 1. Транзистор 1VT1 служит для предотвращения включения звукового сигнала в первую минуту после пуска таймера, стабилитрон 1VD1 препятствует появлению даже слабого звука в телефоне 1BF1 в первую минуту работы таймера. При использовании этого варианта звукового сигнализатора транзистор VT2, резистор R7 и излучатель НА1 не устанавливают.

Плата рассчитана на монтаж звукового сигнализатора как по первому, так и по второму варианту. Для реализации второго варианта на плату монтируют элементы 1VD1, 1VD2, 1VT1. Корпусом конструкции служит подходящий по размерам контейнер для пищевых продуктов (рис. 5), изготовленный из довольно толстой жёсткой пластмассы и имеющий полупрозрачное дно, через которое можно наблюдать свечение индикатора HL2 и вспышки светодиода HL1.

Плата закреплена на крышке контейнера, служащей днищем, на стойках высотой 5 мм с помощью винтов М3. С обратной стороны днища прикреплена металлическая пластина с грушевидным вырезом, служащая для подвески таймера на держателе, закреплённом на стене. В устройстве можно применить резисторы МЛТ, С2-23, причём каждый из резисторов R16—R19 для облегчения подбора можно составить из двух, соединённых последовательно, установив их перпендикулярно плате, подстроечный резистор — СП4-1, СПО.

Оксидные конденсаторы — К50-35 или импортные, остальные — керамические КМ, К10-7в или аналогичные. Транзистор КТ3102А можно заменить любым из серий КТ3102, КТ315, замена транзистора КТ940Б — транзистор КТ969А или аналогичный средней мощности с допустимым напряжением коллектор- эмиттер не менее 200 В. Хотя транзистор VT3 нагревается не очень сильно, для большей надёжности его можно снабдить небольшим теплоотводом. Полевой транзистор можно применить практически любой n-канальный с индуцированным каналом и с максимальным током стока не менее 0,3 А.

Диоды VD6—VD9 — любые выпрямительные с обратным напряжением не менее 50 В и допустимым током не менее 0,5 А, например, любой из серии 1N400x. Диоды VD2—VD5 должны иметь обратное напряжение не менее 400 В (1N4004, 1N4005, 1N4006, 1N4007), остальные диоды — серий КД521, КД522, 1N4148. Трансформатор Т1 применён готовый тороидальный, но подойдёт любой другой с напряжением вторичной обмотки 15…20В при токе до 0,5 А.

Желательно применять трансформатор, имеющий дополнительную вторичную обмотку с напряжением 180…220В для питания выпрямителя индикатора на диодах VD2-VD5, при этом элементы устройства будут гальванически изолированы по питающей сети. Микросхему К142ЕН8А можно заменить на 7809, микросхемы DD2, DD3 — функциональными аналогами из серий К176, КР1561. Взамен микросхемы К176ИЕ18 можно применить микросхему К176ИЕ12, отогнув перед установкой на плату выводы 9 и 14 и предварительно соединив отрезками проводов вывод 9 с выводом 5, а вывод 7 — с выводом 4.

Но при такой замене звуковую сигнализацию придётся делать с применением элементов R7, VT2 и НА1. Пьезосирена НА1 — неизвестного происхождения, без единой надписи на корпусе. При напряжении питания 9В сирена потребляет ток 250 мА и звучит очень громко. В качестве НА1 можно использовать и другие звуковые излучатели с требуемой громкостью сигнала, имеющие напряжение питания в пределах 9… 12 В. BF1 — капсюльТК-67, или динамическая головка с сопротивлением катушки не менее 50 Ом, на-пример, 0.025ГД-2 или 0.05ГД-1.

Стабилитрон 1VD1 — не обязательно двух-анодный, подойдёт любой маломощный стабилитрон с напряжением стабилизации 5…7 В, подключённый анодом к базе транзистора 1VT1. Стабилитроны VD15, VD16 можно заменить одним КС650А или цепочкой стабилитронов с суммарным напряжением стабилизации 150—160 В. Тринистор VS1 — КУ101 с любым буквенным индексом. Светодиод НИ должен быть повышенной яркости свечения, любого типа и свечения. Линейный газоразрядный индикатор ИН-9 можно заменить индикатором ИН-13, включив его по схеме, приведённой на рис. 1 в [6].

При отсутствии газоразрядного индикатора линейную шкалу можно построить на светодиодах с применением микросхемы К1003ПП1 [6]; при этом отпадает необходимость в высоковольтном источнике питания. Кнопка SB 1 — КМ2-1, П2К или другая без фиксации, имеющая две группы контактов на переключение. Переключатель SA1 —- ПГЗ на два положения и 11 направлений, можно применить и любой малогабаритный на два направления и требуемое число положений. Реле — SANOU SRD-S-112 D с напряжением срабатывания 12 В и коммутируемым током 7 А извлечено из неисправного источника бесперебойного питания IPPON (из одного источника можно извлечь пять таких реле).

Подойдёт также и любое другое реле, имеющее напряжение срабатывания 10… 15В при токе 30…40 мА. В качестве вилки ХР1 использован корпус от зарядного устройства сотового телефона или другого малогабаритного блока питания, выполненный в виде сетевой вилки. В этом корпусе смонтирована и розетка XS1, служащая для подключения управляемой таймером нагрузки.

Номинальный ток плавкой вставки FU1 намеренно выбран значительно меньше максимально допустимого для контактов кнопки SB1 тока, что позволяет значительно продлить ресурс контактов кнопки и предохранить их от обгорания при ошибочном подключении к таймеру мощной нагрузки. Для коммутации нагрузки мощностью более 200 Вт к розетке XS1 таймера следует подключить дополнительный мощный релейный коммутатор или вход управления симисторного коммутатора.

Налаживание “часовой” и индикаторной частей устройства лучше производить по отдельности. Диоды VD2— VD5 на первом этапе налаживания на плату не устанавливают. После включения питания и нажатия на кнопку SB1 реле К1 должно сработать, а светодиод HL1 должен начать мигать с частотой 0,5 Гц, свидетельствуя о нормальной работе генератора на микросхеме DD1. Далее измеряют напряжение на обмотке реле К1. При необходимости подбирают резистор R13, устанавливая на обмотке номинальное для применённого реле напряжение.

Затем повторно нажимают на кнопку SB1, при отпускании кнопки устройство должно отключиться от сети. Устанавливают переключателем SA1 интервал 3 мин и, контролируя время с помощью часов или секундомера, вновь включают таймер времени кнопкой SB1. По истечении трёх минут должен зазвучать звуковой сигнал, а спустя ещё 39 с таймер должен отключиться. Если всё в порядке, проверяют работу таймера на других выдержках. В случае, если при выдержке 30 мин и более таймер по её окончании сразу, без подачи звукового сигнала, отключается от сети, подбирают сопротивление резистора R6 или ёмкость конденсатора С2.

Убедившись в нормальной работе “часовой” части таймера, впаивают диоды VD2—VD5, устанавливают движок подстроечного резистора R21 в среднее положение и включают таймер времени на интервал 3 мин. Дождавшись появления звукового сигнала, подстроечным резистором R21 устанавливают максимальную длину светящегося столба индикатора. Далее устройство вновь включают на интервал 3 мин, и по секундомеру определяют время, через которое на индикаторе появляется первая часть светящегося столба.

Это время, в зависимости от желаемой длины шагов, может составлять 12 или 24 с (в авторском варианте — 24 с). Если это время больше, уменьшают сопротивление резистора R22, подстроечным резистором R21 во время звучания сигнала вновь устанавливают максимальную высоту светящегося столба индикатора и снова измеряют время появления первого светящегося сегмента. Если оно соответствует 12 или 24 с, налаживание можно считать законченным.

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

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

Самодельный циклический таймер на микроконтроллере Atmega8

Продолжаю предыдущую тему, про прошивки для микроконтроллеров созданные с помощью программы FLProg.
Сегодня собрал макет простого циклического таймера на базе микроконтроллера фирмы Atmel Atmega8 для управления нагрузкой через электромеханическое реле.
Настройка таймера выполняется с помощью четырех кнопочных выключателей без фиксации, а текущая информация отображается на жидкокристаллическом дисплее. Одна кнопка ПУСК. Вторая кнопка ВЫБОР предназначена для инверсии следующих двух выключателей которыми вводится временной диапазон для управления состоянием силового реле к контактам которого подключена нагрузка. Отрезки времени для действия и бездействия устанавливаются с помощью двух кнопок ДОБАВИТЬ и УБАВИТЬ, время задается в секундах, например 120 = 2 минуты. Управление устройством можно выполнять также и во время работы, то есть на ходу, меняя временные отрезки манипулируя тремя кнопками выбор, добавить и убавить.
Для сборки таймера мне понадобились — микроконтроллер Atmega8, пятивольтовый одноканальный релейный модуль, макетная плата с проводами, четыре выключателя без фиксации, модуль часов реального времени DS3231, LCD дисплей с адаптером для шины i2c и Arduino UNO как программатор для заливки прошивки, созданной в программе FLProg способом который я описывал в предыдущей статье.
Циклический таймер имеет обратный отсчет, после установки временных интервалов и пуска отсчет начинается с состояния отключено — OFF. На экране дисплея в первой строке отображается установленное значение (например OFF=80) это время когда напряжение на нагрузке отсутствует далее идет обратный отсчет до значения OFF=0 и затем следует автоматический переход в режим ON — включено (например ON=57), то есть нагрузка будет включена в течении 57 секунд, по окончанию отсчета таймер снова переключится в режим OFF=80 и все повторится. При повторном нажатии кнопки ПУСК таймер завершит текущий цикл и остановиться. Вторая строка экрана SET – УСТАНОВИТЬ (например, SET=57), предназначена для ввода и отображения временных промежутков, в первой колонке время работы во второй время простоя, после запуска эта строка гаснет. Кнопка ВЫБОР меняет назначение переключателей УБАВИТЬ и ДОБАВИТЬ, для ввода значений в режиме ON или OFF.
Прошивку загрузил в микроконтроллер Atmega8 с помощью платы Arduino UNO используя её в качестве программатора. Блок схема таймера изображена на рисунке выше, создана в FLProg. Перед загрузкой код немного почистил в редакторе от ненужных переменных, которые создаются автоматически при компиляции в FLProg, чтобы немного уменьшить размер скетча.
Примечание: Секунды тактируются от модуля часов, но вовремя длительной работы заметил, что время немного плавает, пока не понял почему, возможно причина в ненадежных контактах на макетной плате или в коде, но свои функции таймер выполняет стабильно.
Некоторые элементы для программы Fritzing в которой создан рисунок проект из модулей позаимствовал здесь.
Пример работы таймера:

Продолжение следует…
Постараюсь добавить в код программы запись настроек таймера во внешнюю энергонезависимую память eeprom типа AT24C64, хотя можно использовать для этого такую же микросхему AT24C32 которая уже размещена на модуле часов DS3231, при потере питания установки будут сохраняться. Также нужно добавить функцию полный сброс. Функцию ускорения ввода. Буду пробовать.

Все самоделки | Программируемый таймер на 100 временных отрезков

Простая схема хорошего таймера на МК atmega8, удобная навигация в меню, жидкокристаллический LCD дисплей, часы реального времени, минимальное количеством деталей.

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

Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8.

Конечно для прошивки нам потребуется программатор, но если его нет то можно обойтись всего 4 проводками подключенными к LPT порту по этой схеме.

 

Что нам понадобится:

Схема таймера

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

Как вариант исполнительного устройства на триаках, тиристорах и симисторах показаны ниже.

Вариант плата из программы Sprint Layout.

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

Микроконтроллер прошивается программатором или с помощью простых 5 проводов.

Автор прошивки ( скачать — multitimer ) постарался и не стал изменять фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.

Для корпуса очень удобно использовать распаечные коробки из пластмассы, они бывают разных размеров и форм.

В прорезанную ножом крышку, при помощи термоклея из пистолета, закрепляем LCD экран., прорезаем отверстия под кнопки управления и кнопку питания.

Размещаем все узлы внутри корпуса, постоянно проверяя как закрывается крышка, при необходимости переносим или подгибаем мешающие.

 

На собранную схему подаем питание, должно появиться такое изображение.

Управление осуществляется четырьмя кнопками. Меню состоит из трех пунктов, СLОСК -установка часов, RЕSЕТ -сброс всех установленных таймеров, ТIМЕR — установка таймеров.

Сначала заходим (*) в меню часов и выставляем (>)(<)(#) точное время.

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

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

AVR. Описание работы Timer/Counter1




Email автора.

Copyright: Сухарев Евгений, 2005


Описание работы таймера/счётчика 1.
Прерывания от TC1


Таймер/счётчик 1 (TC1) представляет из себя 16-битный модуль, содержащий 10 8-битных регистров. Эти регистры фактически являются набором из 5 16-битных регистров. Счёт происходит в регистрах TCNT1H (Timer counter 1 High byte) и TCNT1L (Low byte), вместе составляющих 16-битный регистр TCNT1. ВНИМАНИЕ! Если использовать прямое чтение 8-битных регистров TCNT1H и TCNT1L, то нельзя быть уверенным, что эти регистры прочитались одновременно. Может произойти следующая ситуация: Счётчик содержал значение $01FF, Вы считали TCNT1H (содержащий значение 01 в какую-то переменную). За это время произошёл счётный импульс, и содержимое TCNT1L стало равно $00, а в TCNT1H записалось значение $02. Теперь Вы читаете значение TCNT1L в другую переменную, получаете в этой переменной значение $00 (ведь таймер-счётчик уже произвёл счёт). 16-битное значение этих переменных получилось $0100, но на момент считывания старшего байта содержимое счётчика было $01FF, и младший байт у Вас должен был прочитаться как FF. Для предотвращения такой ситуации служит временный регистр, содержащийся в блоке таймера-счётчика. Этот регистр прозрачный, т.е. действует автоматически. При считывании значения регистра TCNT1L в переменную, содержимое TCNT1H попадает в этот регистр. Затем при чтении старшего байта в переменную, считывается значение временного регистра. Временный регистр абсолютно прозрачен для пользователя, но для его корректной работы необходимо соблюдать такую последовательность действий:
Для 16-битной операции записи, старший байт должен быть записан первым. Младший — вторым.
Для операции 16-битного чтения, младший байт должен быть прочитан первым, а содержимое старшего байта считывается вторым.
Регистр TCCR1A служит для задания режимов работы таймера/счётчика 1:

Биты COM1A1,COM1A0, COM1B1 и COM1B0 — контролируют поведение выводов OC1A и OC1B.
Биты FOC1A, FOC1B, WGM11 и WGM10 служат для задания работы ТС1 как широтно-импульсного модулятора.
Скорость счёта ТС1 можно установить в регистре TCCR1B:

Где биты ICNC1, ICES1, WGM13 и WGM12 также служат для PWM, а CS12, CS11 и CS10 настраивают скорость счёта следующим образом:

В случае, если в эти биты записаны значения 000, ТС0 остановлен. Если записано 001, то тактовая частота процессора подаётся через схему делителя без изменений, и на каждый такт процессора ТС1 увеличивает значение в регистре TCNT1. Соответственно, если в CSxx Записано 101, то увеличение значения в TCNT1 происходит на каждый 1024-ый такт процессора.

16-битные регистры OCR1A и OCR1Bслужат для задания значения, при достижении которого в режиме счёта, ТС1 генерирует соответствующие прерывания.

Обработка прерываний от TC1

ТС1 при переполнении значения TCNT1 посылает процессору сигнал Timer/Counter 1 Overflow. Также процессору посылается сигнал Timer/Counter 1 A или B Compare Match при совпадении значений в регистрах TCNT1 и OCR1A и OCR1B соответственно. Реакция процессора на эти сигналы (вызов соответствующих прерываний) зависит от значения регистров TIMSK и флага I в Status регистре процессора.
Для задания реакции на события TC1 в регистре TIMSK служат четыре бита:

Бит 2 — TOIE1 — Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует на сигнал переполнения ТС1 и вызывает прерывание по вектору $010 (OVF1addr).
Бит 3 — OCIE1B — Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует вызовом прерывания по вектору $00E (OC1Baddr) на событие совпадения счёта с константой в регистре OCR1B. Бит 4 — OCIE1A — Когда этот бит установлен в 1 и разрешены прерывания, процессор реагирует вызовом прерывания по вектору $00C (OC1Aaddr) на событие совпадения счёта с константой в регистре OCR1A. Бит 5 — TICIE1 — Если установлен этот бит и разрешены прерывания, разрешено прерывание захвата ТС1, расположенного по вектору $00A (ICP1addr).

AVR Project — реле таймера с микроконтроллером ATmega8 AVR

Таймеры

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

В таймере используется стандартный ЖК-модуль 16 × 2 для пользовательского интерфейса (UI). Пользователь может установить время с помощью 3-х кнопочной клавиатуры.
После этого запускается таймер. Пока идет обратный отсчет, на экране отображается оставшееся время.
Программа использует нашу библиотеку драйверов ЖК-дисплея, более подробную информацию о которой можно найти здесь. Для компиляции используйте avr-gcc + AVR Studio.
Прототип был разработан с использованием xBoard MINI, недорогой, простой в использовании платы для разработки ATmega8. Программа была записана во флеш-память микроконтроллера с помощью eXtreme Burner — программного и аппаратного обеспечения AVR. Требуются базовые знания о работе с различными инструментами разработки AVR, поэтому, пожалуйста, обратитесь к следующим статьям.

Использование таймера

Пользователь взаимодействует с таймером с помощью 3 кнопок и ЖК-модуля.Функции 3-х клавиш: —

  1. Select Key — Выберите различные элементы, такие как часы, минуты и начало. Он перемещает стрелку на экране, чтобы указать, какая опция выбрана в данный момент.
  2. Клавиша увеличения / увеличения — Увеличение значения. Например, выберите «минуту» с помощью клавиши «select» и нажмите ее, чтобы увеличить ее значение.
  3. Кнопка «Вниз / Уменьшение» — То же, что и выше, но уменьшает значение.

При включении таймера нагрузка отключена.Отображается приветственное сообщение. Затем вы можете установить время с помощью вышеуказанных кнопок. После этого перейдите к опции «Пуск» с помощью клавиши выбора. Затем нажмите любую клавишу, чтобы запустить таймер. Теперь на экране отображается обратный отсчет, и нагрузка включена. Когда обратный отсчет достигает 0, нагрузка отключается. Изображения и видео ниже иллюстрируют этот процесс.

Подробнее: AVR Project — Relay Timer with ATmega8 AVR MCU

Таймер на atmega8 с модулем часов. Программирование микроконтроллеров AVR

Этот таймер предназначен для установки времени выдержки от 5 секунд до 100 минут.На его выходе достаточно мощное электромагнитное реле, позволяющее коммутировать ток до 30А при напряжении 12В и ток до 10А при напряжении 220В. Благодаря использованию электромагнитного реле, таймер может управлять не только нагревательными или осветительными приборами, но и электронными устройствами, которые имеют решающее значение для формы переменного напряжения питания. Блок питания трансформатора в сочетании с реле обеспечивает полную гальваническую развязку электронной схемы таймера от сети.

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

Таймер управляется кнопками S1, S2, S3, S4. Нажатие кнопки S1 включает нагрузку и запускает таймер. Чтобы установить время, в течение которого нагрузка должна работать, нажмите S4.На дисплее будут мигать две старшие цифры (минуты). Теперь с помощью кнопок S2 и S3 вы можете установить значение минут. Затем нужно снова нажать S4. Теперь начнут мигать младшие цифры, и секунды можно будет установить с помощью кнопок S2 и S3. Чтобы сохранить настройки, снова нажмите S4. Теперь индикатор покажет установленную выдержку. Чтобы запустить таймер, нажмите S1. Включается нагрузка, и показания индикатора начинают уменьшаться. Как только истечет установленное время, на индикаторе появится надпись «ВЫКЛ», и нагрузка отключится с помощью электромагнитного реле.Чтобы повторить, дважды нажмите кнопку S1. Первое нажатие изменит «ВЫКЛ» на установленное время, а второе запустит таймер. Реле управления на выводе 23 D1. Включение — это логическая единица. Ключ на VT5 и VT6 управляет электромагнитным реле К1. Такие реле используются в цепях автосигнализации. Они могут коммутировать как постоянный (12В), так и переменный (220В) ток, так как имеют хорошую изоляцию.

Блок питания выполнен на маломощном трансформаторе. Поскольку вторичная обмотка трансформатора отводится от середины (12-0-12), выпрямитель выполнен не по мосту, а по двухполупериодной схеме на двух диодах VD2 и VD3.Если трансформатор имеет обмотку 12В без отвода, то нужен выпрямительный мост. Реле запитывается напрямую с выхода выпрямителя, а остальная цепь через стабилизатор напряжения A1 5V.

При перепрошивке нужно настроить на работу с внутренним генератором 8 МГц.

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

Транзисторы КТ315 можно заменить на КТ3102 или любые аналоги. Транзистор КТ815 можно заменить на КТ817, КТ604. Диод КД521 — практически любой аналог. Диоды в выпрямителе КД209 — любые выпрямительные диоды на постоянный ток не менее 150 мА. Интегральный стабилизатор 7805 можно заменить на любой 5-вольтовый, например, КР142ЕН5А. Или сделать стабилизатор по параметрической схеме на двух транзисторах и стабилитроне 5В. По поводу индикаторов было сказано выше. Это могут быть любые семисегментные индикаторы с общим анодом (катодом).

Архив к статье «Таймер на Atmega8 и светодиодные индикаторы»
Описание: Файлы прошивки
Размер файла: 5.58 КБ Количество загрузок: 4 319

Этот таймер предназначен для установки времени выдержки от 5 секунд до 100 минут. На его выходе достаточно мощное электромагнитное реле, позволяющее коммутировать ток до 30А при напряжении 12В и ток до 10А при напряжении 220В.Благодаря использованию электромагнитного реле, таймер может управлять не только нагревательными или осветительными приборами, но и электронными устройствами, которые имеют решающее значение для формы переменного напряжения питания. Блок питания трансформатора в сочетании с реле обеспечивает полную гальваническую развязку электронной схемы таймера от сети.

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

Таймер управляется кнопками S1, S2, S3, S4. Нажатие кнопки S1 включает нагрузку и запускает таймер. Чтобы установить время, в течение которого нагрузка должна работать, нажмите S4. На дисплее будут мигать две старшие цифры (минуты). Теперь с помощью кнопок S2 и S3 вы можете установить значение минут. Затем нужно снова нажать S4. Теперь начнут мигать младшие цифры, и секунды можно будет установить с помощью кнопок S2 и S3.Чтобы сохранить настройки, снова нажмите S4. Теперь индикатор покажет установленную выдержку. Чтобы запустить таймер, нажмите S1. Включается нагрузка, и показания индикатора начинают уменьшаться. Как только истечет установленное время, на индикаторе появится надпись «ВЫКЛ», и нагрузка отключится с помощью электромагнитного реле. Чтобы повторить, дважды нажмите кнопку S1. Первое нажатие изменит «ВЫКЛ» на установленное время, а второе запустит таймер. Реле управления на выводе 23 D1. Включение — это логическая единица.Ключ на VT5 и VT6 управляет электромагнитным реле К1. Такие реле используются в цепях автосигнализации. Они могут коммутировать как постоянный (12В), так и переменный (220В) ток, так как имеют хорошую изоляцию.

Блок питания выполнен на маломощном трансформаторе. Поскольку вторичная обмотка трансформатора отводится от середины (12-0-12), выпрямитель выполнен не по мосту, а по двухполупериодной схеме на двух диодах VD2 и VD3. Если трансформатор имеет обмотку 12В без отвода, то нужен выпрямительный мост.Реле запитывается напрямую с выхода выпрямителя, а остальная цепь через стабилизатор напряжения A1 5V.

При перепрошивке нужно настроить на работу с внутренним генератором 8 МГц.

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

Транзисторы КТ315 можно заменить на КТ3102 или любые аналоги.Транзистор КТ815 можно заменить на КТ817, КТ604. Диод КД521 — практически любой аналог. Диоды в выпрямителе КД209 — любые выпрямительные диоды на постоянный ток не менее 150 мА. Интегральный стабилизатор 7805 можно заменить на любой 5-вольтовый, например, КР142ЕН5А. Или сделать стабилизатор по параметрической схеме на двух транзисторах и стабилитроне 5В. По поводу индикаторов было сказано выше. Это могут быть любые семисегментные индикаторы с общим анодом (катодом).

Архив к статье «Таймер на Atmega8 и светодиодные индикаторы»
Описание: Файлы прошивки
Размер файла: 5.58 КБ Количество загрузок: 4 319

Таймер обратного отсчета помогает точно измерить временной интервал в диапазоне от 1 секунды до 24 часов.

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

Исходя из этих соображений, я сделал программу таймера, которая соответствует следующим параметрам:

— компактный дизайн и простая схемотехника;

— оперативное кнопочное управление;

— при управлении кнопками дублирование действий на ЖКИ;

— установка времени с точностью до секунды;

— диапазон счета от 1 секунды до 24 часов;

— запуск функции, пауза;

— функция обнуления обратного отсчета и установки значений времени;

— при достижении значения 00.00.00 включается исполнительное устройство;

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

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

После включения таймера можно выставить нужное нам время. Назначение кнопок можно увидеть на схеме. После установки нажимаем кнопку СТАРТ — начинается обратный отсчет. Максимальное время воздействия 23.59.59.

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

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

Если нажать кнопку ПУСК-ПАУЗА во время работы таймера, таймер прекратит отсчет, нажатие кнопки ПУСК-ПАУЗА дважды возобновит остановленный обратный отсчет.

Для выключения нагрузки после включения необходимо нажать RESET, на таймере будет установлено значение 00.00.01 — нагрузка выключена.Или установите новый период обратного отсчета и дважды нажмите кнопку СТАРТ-пауза.

Отображение символов на ЖКИ! > означает, что нагрузка выключена (PD3), и при однократном нажатии кнопки СТАРТ установленное время будет отсчитываться в обратном порядке.

Внешний кварц 8 МГц, для точности счета.

Для программиста в 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-12V. Если у вас есть блок питания с напряжением 5-6В, можно исключить из схемы стабилизатор напряжения. Зуммер B1 и аноды дисплея W1 управляются транзисторами T1 — T5 (BC556), с перевязкой резисторов R1 — R8 (3,3 кОм), R17 (3,3 кОм) и R18 (3,3 кОм). Резисторы R9 — R16 (330 Ом) ограничивают ток через сегменты дисплея. Разъем Prog и один контакт R используются для подключения программатора. Клавиатура таймера подключается к разъему Sw.

Производство

Изображение печатной платы устройства находится в архиве в конце статьи. Монтаж деталей начинается с пайки двух перемычек. Затем устанавливаются все резисторы и другие элементы в порядке от меньшего к большему. Quartz X1 должен быть «низким» — он умещается под дисплеем, иначе просто не поместится. Зуммер B1 можно припаять к плате, как показано на фотографиях, но позже выяснилось, что после закрытия корпуса звук слишком тихий (несмотря на просверленные отверстия в корпусе).Зуммер лучше приклеить к одной из сторон корпуса (как показано на последнем фото) и подключить к плате. Клавиатура состоит из 5 неблокируемых кнопок размером 12х12 мм прямо на передней части корпуса, так что их кнопки находятся чуть выше поверхности корпуса. Для этого устройства в качестве источника питания хорошо использовать зарядное устройство для телефона, поскольку оно легкое и имеет размер.

Перечень радиоэлементов
Обозначение Тип Номинал Кол. Акций Note Shop My notebook
U1 MK AVR 8-бит

ATmega8A-AU

1 В блокнот
U2 Линейный регулятор

LM7805CT

1 В блокнот
Т1-Т5 Транзистор биполярный

BC556

5 В блокнот
C1, C2 Конденсатор 22 пФ 1 В блокнот
C3 100 мкФ 1 В блокнот
C4 Конденсатор электролитический 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 x 2 символа используется для отображения состояния устройства, программы, меню и времени.ЖК-дисплей работает в 4-битном режиме, поэтому для работы необходимы только 6 контактов ввода / вывода PIC16F628A. Пьезоэлектрический зуммер издает звуковой сигнал, когда таймер запускается и останавливается. Также он издает звуковой сигнал при включении или выключении устройства. Напряжение питания на схему поступает от стабилизатора LM7805. На его вход подается 9 В от сетевого адаптера. Светодиодная подсветка улучшает читаемость ЖК-дисплея в условиях низкой освещенности.

Работа таймера и функции кнопок

Таймер получает команды от 4-х кнопок.Их функции следующие:

Время : позволяет установить время включения и выключения. Когда таймер изначально включен, устройство выключено, а время равно 0. Нажимая эту кнопку, вы можете переключаться между включением и выключением на дисплее.

Выбор : позволяет выбирать между параметрами включения и выключения, а также числами часов и минут. Выбранная цифра увеличивается нажатием кнопки ВКЛ / ВЫКЛ.

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

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

Таймер яиц

с ATmega8

Таймер яиц с ATmega8 Дорожка: Главная => AVR-EN => Приложения => Eggtimer m8 Diese Seite на немецком языке:
Приложения АРН

Eggtimer с ATmega8
Аппаратное обеспечение, монтаж, приложения и программное обеспечение для 8-минутного таймера Eggtimer

  1. Недвижимость
  2. Оборудование
  3. Крепление
  4. Программное обеспечение
  5. Выводы
Здесь описывается таймер, который работает с восемью двойными красными / зелеными светодиодами.Это может быть используется для контроля процесса приготовления яиц. Этот таймер имеет восемь красных / зеленых светодиодов, из которых максимум два активны для экономии аккумулятор. Первый отображает последнюю полную минуту красным цветом, второй — текущая минута зеленого цвета с увеличивающейся красной долей. Когда минута закончилась, он проигрывает программируемую мелодию на динамике.

Как всегда, я предоставляю следующие файлы, относящиеся к этому проекту:

Схема (здесь в формате Libre-Office) показывает, что восемь красно-зеленых двойных светодиодов подключены к портам B и D ATmega8.Два порта управляют одним светодиодом. Резисторы R L ограничивают ток светодиода до менее 10 мА. Их значения зависят от рабочего напряжения, таблица предоставляет значения для большинства возможных рабочих напряжений.

При запуске и через каждую полную минуту проигрывается мелодия. Это делается через динамик, подключенный к контакту порта PC0 через электролитический конденсатор.

Чтобы полностью использовать оба порта B и D для светодиодных выходов, светодиодный контроль и Управление динамиком не связано с выходными контактами таймера.Программа управляет как через подпрограммы обслуживания прерываний. См. Раздел программного обеспечения о том, как это запрограммирован.

Для таймера яйца я разработал плату размером 40 на 50 мм, которая есть в наличии. здесь как gif высокого разрешения с планом размещения компонентов (щелкните правой кнопкой мыши два фотографий).

Все светодиоды должны быть установлены в одном направлении, более длинный вывод светодиода в нижнее отверстие.

Схема односторонняя, с возможностью установки только одного моста. Единственная маленькая линия внутри разъема ISP6 немного рискованно, но с моим лазерным принтером, моим УФ-светодиодом, с разбавленным гидроксидом натрия и хлоридом железа-III он работал нормально.

Тем, кто не хочет программировать ATmega8 внутри платы, разъем ISP6 не нужен.

При рабочем напряжении 3 В таймеру требуются следующие токи питания:

Светодиод зеленый, воспроизводится тон
Фаза Состояние Количество светодиодов Разбрасыватель Ток (мА)
Старт Первый светодиод зеленый, увеличивается доля красного 1 7,4
  • 6
  • 1 X 18
    Работает Один светодиод красный, следующий зеленый с увеличивающейся долей красного 2 13.3
    Девятая минута Воспроизведение единого тона X 8
    Спящий режим Конец, готово, выключено 0,4

    Загрузка программного обеспечения

    Исходный код в формате ассемблера доступен здесь, исходный код в браузере щелкните здесь.

    Сборка работает на любом современном ассемблере AVR.

    Во время программирования заменять предохранители не требуется.

    Сведения о программном обеспечении

    Светодиодный элемент управления
    Управление светодиодами затруднено, потому что предыдущий светодиод должен загореться красным, а следующий — с ШИМ-управлением.

    На рисунке показаны прикрепленные восемь светодиодов к двум портам. О комбинации битов shon соответствующие светодиоды станут красными или зелеными. Строка Hex показывает битовую комбинацию для записи в порты B и D.

    Чтобы предыдущий светодиод также загорелся красным, светодиод с номера 2 должен добавить свои предыдущее красное состояние. Это приводит к шестнадцатеричным кодам для PB и PD. Когда светодиод 5 активен в состоянии ШИМ, комбинации PB и PD не равны нулю.

    Здесь показаны комбинации светодиодов 1–3 и 8, расположенные в SRAM.

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

    Во время работы регистровая пара Y указывает на текущий активный светодиод. Когда По окончании минуты к Y добавляются четыре. Программа использует возможности AVR для временно добавить смещение к Y при доступе к байтам +1, +2 и +3 из текущая комбинация (ldd r, Y + n): при запуске фазы ШИМ записываются Y и Y + 1 в порты B и D, при совпадении сравнения ШИМ Y + 2 и Y + 3 записываются в эти порты.

    Тайм-контроль

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

    Если этот внутренний цикл ШИМ закончен, он повторяется 14 раз.

    После этого выбирается значение следующего сопоставления, и все внутреннее и внешнее Циклы ШИМ повторяются. Если значение сопоставления наконец достигает 256, минута кончено.

    Для достижения этого времени таймер TC2 работает как CTC со значением сопоставления 60. Это обеспечивает идеальную частоту повторения: 1000000/1/61/256 = 64,037 Гц. Это означает 15,616 мс на внешний цикл ШИМ. 256 внешних циклов ШИМ с увеличением сравнение значений совпадения дает почти четыре секунды. Повторение внутреннего цикла ШИМ Теоретически должно быть 15, чтобы достичь одной минуты. Практически я измерял слишком долго раз, поэтому я уменьшил это значение повторения до 14. Обратите внимание, что на других операционных напряжения внутреннего RC имеют разные частоты, поэтому либо увеличивайте, либо уменьшайте это значение.

    Когда ATmega8 запускает таймер / счетчик, запускается TC2: значение сопоставления равно настроен на 60, счетчик повторений в X установлен на 14 и таймер переведен в режим CTC с предварительным делителем, равным 1. Все последующие действия выполняются в ISR этого таймера. ,

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

    Блок-схема синхронизации с OC2-ISR

    Это полная процедура TC2-OC. Начинается со сравнения реестра rPwmCnt со значением сравнения в регистре rPwmCmp . Если оба равны, светодиод горит зеленым.

    Затем увеличивается значение счетчика ШИМ в регистре rPwmCnt . Если это не так дают ноль, ISR возвращается из прерывания.

    Если rPwmCnt достигает нуля, счетчик повторений ШИМ в X уменьшается. Если это не достигает нуля, следующий цикл внутреннего цикла PWM запускается переключение светодиода на красный (перезапустите с Y и Y + 1).

    Если счетчик повторений ШИМ достигает нуля, он перезапускается с 14 и сравните значение совпадения в регистре rPwmCmp увеличивается. Снова следующий цикл начинается с красного светодиода.

    Если регистр сравнения X достигает нуля, указатель Y на SRAM увеличивается. на четыре.Если это не доходит до конца таблицы SRAM, следующая мелодия запущен (см. OC1A-ISR), и цикл снова начинается с красного светодиода, к которому Y сейчас указывает.

    Если достигнут конец таблицы в SRAM, таймер TC2 отключается, вместе с битом разрешения прерывания. Бит OCIE1A остается включенным, чтобы разрешить динамик, чтобы сыграть последнюю мелодию.

    Воспроизведение мелодий

    При воспроизведении мелодий используется 16-битный таймер TC1 в режиме CTC. ISR переключает Выходной контакт динамика PC0 высокий и низкий.

    Для настройки делителя TC1 для определенного тона программное обеспечение удерживает таблица констант за меткой гамма: . Здесь гамма частоты от 27 Гц до 18,794 кГц, более 9 1/2 октавы, присваиваются константам. Для камерного тембра A4 сравнительный матч указано значение 1,136 для сравнения A. Это дает 1,000,000 / 1 / 1,136 / 2 = 440,14 Гц. 2 вытекает из того факта, что полная волна состоит двух циклов, одного максимума и одного минимума.

    Примечательны два «тона»:

    1. cPs : Этот «тон» представляет собой паузу, результирующая частота генерируется, но вывод на вывод динамика подавляется установкой бит bQuiet в регистре флагов rFlag .Этот «тон» распознается по отпечатку пальца LSB, потому что это только один с этим LSB (см. таблицу для этой проверки).
    2. cEnd : Этот «тон» выключает воспроизведение музыки. Следующий Мелодия проигрывается по окончании минуты. Указатель Z указывает на следующий тон после cEnd. cEnd также распознается своим младшим битом, потому что никакие другие тон имеет этот LSB (см. таблицу).
    Потому что каждому тону нужно определенное количество волн для достижения одинаковой продолжительности. (называемая частотой), эти длительности даны для всех тонов как константы с n за этикеткой Продолжительность: .Таким образом, для A4 значение сравнения сопоставления cA4 связан с длительностью nA4 . Все эти продолжительности производятся от четырех секунд (музыканты знают почему). Полные заметки разделены на четыре, половинные ноты на 8, четверти на 16 и шестнадцатые на 32. Умножая те длительности с тремя до деления на восемь также 3/8 продолжительности могут быть запрограммирован. Убедитесь, что ваше деление не достигает нуля, потому что это дает очень длинный тон вместо очень короткого.

    Другой предел касается максимальной частоты, которая может быть сгенерирована.Как вы можете как показано на блок-схеме, OC1A-ISR требуется максимум 40 тактов. Тот ограничит максимальную генерируемую частоту до cX8 тонов. к счастью половина прерываний просто меняет местами выходной контакт и требует всего 18 циклов. На все повторения волны нужно всего 21 цикл, так что времени много. осталось для выполнения OC2-ISR и OC1A-ISR. Есть только ОДИН случай где необходимы 40, поэтому 14 (cE9), 16 (cC9) или даже 17 кГц (cD9) могут хорошо быть сгенерирован. Я никогда не пробовал cE9, поэтому не могу гарантировать, что он работает.И: мой динамик не воспроизводит тоны выше 12 Гц, поэтому я не могу проверить Это.

    С помощью этих констант мелодии могут быть занесены в таблицы во флеш-памяти. Вот таблица Internationale:

     
    Международный:
      ; Фёлькер
      .dw ch4, nh4 * 3/16, cPs, nPs / 16, cA3, nA3 / 16, cPs, nPs / 16
      ; hört die Sig na-le
      .dw cG2, nG2 / 2, cPs, nPs / 16, cD2, nG2 * 3/8, cPs, nPs / 16, ch2, nh2 / 8, cPs, nPs / 16, cE2, nE2 / 2, cPs, nPs / 16, cC2, nC2 / 4, сПс, нПс / 8
      ; Auf zum letz-ten Gefecht!
      .dw cA3, nA3 * 3/16, cPs, nPs / 16, cG2, nG2 / 16, cPs, nPs / 16, cF2, nF2 / 2, cPs, nPs / 16, cE2, nE2 * 3/8, cPs, nPs / 16, cD2, nD2 / 8, cPs, nPs / 16, cD2, nD2 / 2, cPs, nPs / 8
      ; Die In- tio- nale
      .dw cD2, nD2 / 4, cPs, nPs / 16, ch4, nh4 * 3/8, cPs, nPs / 16, ch4, nh4 / 8, cPs, nPs / 16, cA3, nh4 / 4, cPs, nPs / 16, cD2, nD2 / 4, cPs, nPs / 16, cG2, nG2 / 2, cF2, nF2 * 3/8, cPs, nPs / 8
      ; er- kämpft das Men-schen- recht..dw cF2, nF2 * 3/16, cPs, nPs / 16, cE2, nE2 / 8, cPs, nPs / 16, cD2, nD2 / 8, cPs, nPs / 16, cE2, nE2 / 4, cPs, nPs / 16, cA3, nA3 / 4, cPs, nPs / 16, cA3, nA3 / 2
      .dw cEnd
     
     
    Каждая нота состоит из двух слов: первое cXn определяет высоту тона, второй тон длительностью nXn в пакетах по четыре секунды. Если следующий тон должен быть разделен паузой, используйте cPs и nPs для определения продолжительность паузы. С помощью инструментов вы можете закодировать любую мелодию.

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

    cEnd закрывает вывод мелодии. Он перезапускается каждую минуту.

    Справа вы видите полный алгоритм вывода тона.

    Видео таймера для яиц

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

    Ссылка на видео файл ogg и в файл MP4.

    © 2021 Автор: http://www.avr-asm-tutorial.net

    Секундомер с ATmega8

    Секундомер с ATmega8 Дорожка: Главная => AVR-EN => Приложения => Секундомеры с AVR => Секундомер ATmega8 Diese Seite на немецком языке:
    Приложения AVR

    Секундомер с ATmega8 в Ассемблере

    Здесь описывается секундомер со следующими свойствами:
    • Четыре канала можно измерить независимо
    • Временное разрешение при 1 мс
    • Часы Xtal с точностью 50 ppm
    • Управление пуском и остановом, возможны неактивные паузы
    • Четырехстрочный ЖК-дисплей для отображения четырех каналов
    • Специальные звуковые сигналы для всех событий, выбираемые программным обеспечением
    • Простой монтаж
    • Ассемблер с исходным кодом
    • Программное обеспечение, совместимое с 2.0 или 2,048 или 8,0 МГц Xtals
    Эта страница в формате PDF для скачать (18 стр., 677 kB).

    1 Оборудование

    Это полное железо.

    Тактовая частота ATmega8 составляет 2,048 МГц xtal. С участием небольшие изменения программного обеспечения, xtals с 2,0 или 8,0 МГц также можно использовать.

    Блок питания от четырех аккумуляторных батарей 1,2 В так что стандартные ЖК-дисплеи с рабочим напряжением 5 В могут использоваться.

    ЖК-дисплей размером четыре на двадцать подключен к 8-битной шине, а три управляющие контакты на ATmega8 (включая чтение / запись).По умолчанию ЖК-дисплей управляется в режиме флага занятости, но переключается на режим ожидания возможен с небольшим изменением исходного кода.

    Одна клавиша очищает секундомер, одна клавиша запускает и останавливает часы и четыре клавиши (или малоактивные датчики) останавливают четыре каналы.

    Интерфейс ISP позволяет программировать контроллер в работающая система.

    2 Структура программного обеспечения

    2.1 Схема отображения

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

    2.2 Варианты часов

    Тактовая частота в миллисекундах определяется частотой Xtal. следующее. При использовании Xtal 2,0 или 8,0 МГц 8-битный таймер TC2 генерирует тактовую частоту мс через режим CTC и Сравните прерывание Match A. Если по умолчанию 2,048 МГц Xtal используется, этот таймер работает в автономном режиме и генерирует 1 мс с прерыванием переполнения.

    На частотах 2,0 и 2,048 МГц 8-битный таймер TC2 работает с предварительный делитель 8, если используется Xtal 8,0 МГц, предварительный делитель на 64.

    2.3 Программа обслуживания прерывания TC2

    Процедура обслуживания прерывания TC2, запускаемая TC2OVF или вектором TC2CMP, сначала считывается в текущее состояние ключей. Обращение с ключами выполняется вне ISR, запускается флагом bmS.

    Затем проверяется флаг bRun, если измерение времени горит. Если да, счетчик миллисекунд увеличивается. Если счетчик достигает 100, он сбрасывается и bdS установлен флаг. Дальнейший отсчет времени ведется вне ISR.

    2.4 Обработка флага миллисекунды

    Если установлен флаг миллисекунды, все ключи проверяются и, если он активен, выполняются разные действия.

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

    Если нажата кнопка сброса (входной контакт низкий), происходит следующее:

    1. флаг bRun сбрасывается, тем самым останавливая часовое исполнение,
    2. — очистка регистров времени,
    3. все флаги каналов сброшены,
    4. все строки ЖК-дисплея отображают ноль, а.
    5. дальнейшая обработка ключей пропускается.

    Клавиша Start / Stop требует устранения неполадок во избежание короткие импульсы ключа. Для этого дебаунтер регистр, называемый rTgl, установлен на предопределенный номер отсчетов. В случае неактивной клавиши Пуск / Стоп это регистр отсчитывается каждую миллисекунду. Только если этот регистр равен нулю, активный импульс принимается и флаг bRun перевернут. После каждого активного импульс на ключевом вводе, успешный он или нет, перезапускает этот счетчик с постоянной cTgl.cTgl должен быть достаточно большим, чтобы покрыть обычное подпрыгивание время нажатия клавиш (несколько десятков микросекунд).

    После нажатия кнопки Старт / Стоп обработка четырехканального входы проверены. Сначала проверяется, есть ли время равно нулю, на котором нет смысла останавливаться каналы. Если больше нуля, все каналы проверил, нажата ли соответствующая клавиша и канал все еще работает (бит канала в rFlag = 0). В этом случае канал

    1. остановлен (установкой своего флагового бита),
    2. текущее время записывается в SRAM место хранения этого канала,
    3. номер канала хранится в остановке строка в SRAM, и
    4. на этот раз отображается в строке ЖК-дисплея этот канал.
    Если все четыре канала были обработаны, это проверил, все ли четыре канала остановлены. Если это так, список стоп-строк в SRAM используется для отображения отсортированного списка каналов с увеличением времен.

    Обработка 2,5 Децисекунд

    Флаг bdS сигнализирует, что 100 микросекунд более и что децисекунды (и, если необходимо, остальные регистры часов) нуждаются в обновлении.

    Флаг сброшен, а время увеличено. Во всех каналах, которые еще не были остановлены (флаг канала = 0), текущее время отображается (часы, минуты, секунды и децисекунды, но не миллисекунды).

    2,6 Тональный сигнал

    Генерация тона выполняется с 16-битным таймер TC1 в режиме CTC и синхронизируется с предварительным делителем из 8. При тактовой частоте 2,0 МГц между 3,8 Гц и 250 кГц можно воспроизводить на Тактовая частота 8,0 МГц между 15,3 Гц и Возможны 1 МГц.

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

    При каждом совпадении сравнения запускается прерывание. ISR ведет обратный отсчет 16-битного счетчика в R25: R24. Если счетчик достигает нуля, режим OC1A отключен. изменен на чистый, выход тонового сигнала выключен в следующем цикле счета. Следовательно, R25: R24 контролирует продолжительность тонов.

    Частоты тонов и продолжительность тонов определяется в константах cTonexxx (в Гц) и cTonexxxDur (в мс). Из этих констант Сравните значения cCmpXXX для TC1-CTC и значения cCtrXXX для счетчика длительности тона равны рассчитаны и занесены в таблицу под названием ToneTable: (сначала слово длительности, сравните значение слова второе).

    Процедура ToneStart: запускает тон, для которого его номер (0..10) находится в регистре rmp. Сначала считывается и устанавливается значение счетчика, затем сравнить значение.

    Для тонов выбраны разные октавы. Во время включения и для клавиш Reset и Start / Stop выбрана четвертая октава, секунды / минуты / часы на одну октаву ниже, а клавиши четырех каналов на две октавы ниже. Другие сочетания и тона можно выбрать, изменив константы в исходный код.

    2.7 Управление светодиодами

    Управление светодиодами осуществляется с помощью порта PB2. В течение init светодиод горит постоянно. Когда измерение времени горит светодиод мигает через десятые доли секунды для четырех активных каналов (подсчет каналов включены), за которым следует период отключения четырех десятых секунд. Когда все четыре канала остановлены светодиод постоянно выключен.

    2,8 Сортировка по минимальному размеру

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

    Если при сборке переключатель eep был установлен в положение 1 все двадцать байтов данных для времени и четыре байта строки записываются в EEPROM. Можно прочитать содержимое EEPROM.

    3 Программное обеспечение

    Исходный код на ассемблере для секундомера с ATmega8 можно скачать с здесь и просмотрено в браузер здесь. Для сборки ЖК-дисплея подключаемый файл Требуется lcd.inc, который обеспечивает все процедуры ЖК-дисплея.

    Программное обеспечение по умолчанию настроено следующим образом:

    • Xtal частота: 2,048 МГц, часы = 2048000
    • LCD 4×20 8-битная шина данных в режиме занятости
    • EEPROM списать
    При программировании микросхемы необходимо заменить предохранители. на кристалл средней скорости (2,0 или 2,048 МГц) или быстродействующий кристалл (8,0 МГц), в остальном измеренный время и воспроизводимые тоны неверны.

    Хвала, сообщения об ошибках, ругань и спам через страница комментариев мне.

    В начало страницы

    © 2018 http://www.avr-asm-tutorial.net

    avrd :: atmega8 — ржавчина

    Микроконтроллер AVR ATmega8

    Распиновка Mcuage Рабочая температура Рабочее напряжение Макс.скорость
    ATmega8L-8AU TQFPQFN32 TQFP32 -40 ° С — 85 ° С 2,7 В — 5.5 В 8 МГц
    ATmega8L-8PU PDIP28 PDIP28 -40 ° С — 85 ° С 2,7–5,5 В 8 МГц
    ATmega8L-8MU TQFPQFN32 QFN32 -40 ° С — 85 ° С 2,7–5,5 В 8 МГц
    ATmega8-16AU TQFPQFN32 TQFP32 -40 ° С — 85 ° С 4,5–5,5 В 16 МГц
    ATmega8-16PU PDIP28 PDIP28 -40 ° С — 85 ° С 4.5–5,5 В 16 МГц
    ATmega8-16MU TQFPQFN32 QFN32 -40 ° С — 85 ° С 4,5–5,5 В 16 МГц
    ATmega8L-8AN TQFPQFN32 TQFP32 -40 ° С — 105 ° С 2,7–5,5 В 8 МГц
    ATmega8L-8PN PDIP28 PDIP28 -40 ° С — 105 ° С 2,7–5,5 В 8 МГц
    ATmega8L-8MN TQFPQFN32 QFN32 -40 ° С — 105 ° С 2.7–5,5 В 8 МГц
    ATmega8-16AN TQFPQFN32 TQFP32 -40 ° С — 105 ° С 4,5–5,5 В 16 МГц
    ATmega8-16PN PDIP28 PDIP28 -40 ° С — 105 ° С 4,5–5,5 В 16 МГц
    ATmega8-16MN TQFPQFN32 QFN32 -40 ° С — 105 ° С 4,5–5,5 В 16 МГц
    • ПОРТБ
      • PB0 (PB0)
      • PB1 (PB1)
      • ПБ2 (ПБ2)
      • PB3 (PB3)
      • PB4 (PB4)
      • PB5 (PB5)
      • PB6 (PB6)
      • PB7 (PB7)
    • ПОРТК
      • PC0 (PC0)
      • ПК1 (ПК1)
      • ПК2 (ПК2)
      • ПК3 (ПК3)
      • ПК4 (ПК4)
      • ПК5 (ПК5)
      • ПК6 (ПК6)
    • PORTD
      • PD0 (PD0)
      • ПД1 (ПД1)
      • ПД2 (ПД2)
      • ПД3 (ПД3)
      • ПД4 (ПД4)
      • ПД5 (ПД5)
      • ПД6 (ПД6)
      • ПД7 (ПД7)
    • USART
      • ПД4 (ПД4)
      • ПД1 (ПД1)
      • PD0 (PD0)
    • АЦП
      • ПК5 (ПК5)
      • ПК4 (ПК4)
      • ПК3 (ПК3)
      • ПК2 (ПК2)
      • ПК1 (ПК1)
      • PC0 (PC0)
    ACSR

    Регистр управления и состояния аналогового компаратора.

    АЦП

    байтов регистра данных АЦП.

    ADCH

    Байт регистра данных АЦП старший байт.

    ADCL

    Младший байт регистра данных АЦП.

    ADCSRA

    Регистр управления и состояния АЦП.

    ADMUX

    Регистр выбора мультиплексора АЦП.

    АССР

    Регистр асинхронного состояния.

    DDRB

    Регистр направления данных порта B.

    DDRC

    Регистр направления данных порта C.

    DDRD

    Регистр направления данных порта D.

    EEAR

    байтов регистра адреса EEPROM.

    EEARH

    Старший байт регистра адреса EEPROM.

    EEARL

    Младший байт регистра адреса EEPROM.

    EECR

    Регистр управления EEPROM.

    EEDR

    Регистр данных EEPROM.

    GICR

    Общий регистр управления прерываниями.

    GIFR

    Регистр флага прерывания общего назначения.

    ВЫСОКИЙ
    ICR1

    Байт регистра захвата входа таймера / счетчика 1.

    ICR1H

    Таймер / счетчик1 Входные байты регистра захвата, старший байт.

    ICR1L

    Таймер / счетчик1 Входные байты регистра захвата, младший байт.

    ЗАМОК
    НИЗКИЙ
    MCUCR

    Регистр управления MCU.

    MCUCSR

    Регистр управления и состояния MCU.

    OCR2

    Регистр сравнения выходов таймера / счетчика 2.

    OCR1A

    Байт выходного регистра сравнения таймера / счетчика 1.

    OCR1AH ​​

    Байт выходного регистра сравнения таймера / счетчика 1, старший байт.

    OCR1AL

    Байт выходного регистра сравнения таймера / счетчика 1 Младший байт.

    OCR1B

    Байт выходного регистра сравнения таймера / счетчика 1.

    OCR1BH

    Байт выходного регистра сравнения таймера / счетчика 1, старший байт.

    OCR1BL

    Байт выходного регистра сравнения таймера / счетчика 1 Младший байт.

    ОСКАЛ

    Калибровочное значение осциллятора.

    ПИНБ

    Входные контакты порта B.

    PINC

    Входные контакты порта C.

    PIND

    Входные контакты порта D.

    ПОРТБ

    Регистр данных порта B.

    ПОРТК

    Регистр данных порта C.

    ПОРТД

    Регистр данных порта D.

    SFIOR

    Регистр ввода-вывода специальной функции.

    СП

    Указатель стека.

    SPCR

    Регистр управления SPI.

    СПДР

    Регистр данных SPI.

    SPH

    Старший байт указателя стека.

    SPL

    Младший байт указателя стека.

    SPMCR

    Сохранить регистр управления памятью программ.

    СПСР

    Регистр состояния SPI.

    SREG

    Регистр состояния.

    TCCR0

    Регистр управления таймером / счетчиком 0.

    TCCR2

    Регистр управления таймером / счетчиком 2.

    TCCR1A

    Регистр управления таймером / счетчиком 1 A.

    TCCR1B

    Регистр управления таймером / счетчиком 1 B.

    TCNT0

    Таймер счетчика 0.

    TCNT1

    Байт таймера / счетчика 1.

    TCNT2

    Таймер / Счетчик 2.

    TCNT1H

    Таймер / счетчик1, старший байт.

    TCNT1L

    Таймер / счетчик1 Младший байт байтов.

    TIFR

    Регистр флага прерывания таймера / счетчика.

    ТИМСК

    Регистр маски прерывания таймера / счетчика.

    TWAR

    TWI (Slave) Адресный регистр.

    TWBR

    Регистр скорости передачи данных TWI.

    TWCR

    Регистр управления TWI.

    TWDR

    TWI Регистр данных.

    TWSR

    Регистр состояния TWI.

    УБРРХ

    Регистр скорости передачи USART, старший байт.

    УБРРЛ

    Младший байт регистра скорости передачи данных USART.

    UCSRA

    Регистр управления и состояния USART A.

    UCSRB

    Регистр управления и состояния USART B.

    UCSRC Регистр управления и состояния

    USART C.

    UDR

    Регистр данных ввода / вывода USART.

    WDTCR

    Регистр управления сторожевым таймером.

    sump.org: Частотомер и таймер

    В режиме счетчика обеспечивает разрешение 1 Гц до 100 МГц.В режиме таймера максимальное разрешение составляет от 0,0000001 Гц до 1 Гц. Разрешение уменьшается на одну цифру на каждую дополнительную декаду. Множественные обновления частоты в секунду с использованием скользящего окна для расчета.

    Необходимые детали (включая удлинители):

    • 1 * AVR ATmega8 — микроконтроллер
    • 2 * 74HC93 — высокоскоростной 4-битный счетчик cmos
    • 1 * 74HC573 — защелка КМОП высокоскоростная
    • 1 * 74LS47 — открытый коллектор bcd на 7 сегментный декодер
    • 2 * 74LS138 — мультиплексор от 3 до 8
    • Кварцевый генератор 1 * 16 МГц — или 1 или 4 МГц, см. Ниже
    • 8 * BC177 — или любой pnp, подходящий для работы до 7 светодиодов
    • 4 * ODR-204 — (по 2 цифры) или любые 7-сегментные светодиоды с общим анодом
    • 7 * 1N4001 — диод любой другой
    • 8 * 1кОм 1/4 Вт
    • 8 * 220 Ом 1 / 4Вт
    • 4 * 47кОм 1 / 4Вт

    Расширения

    Этот интерфейс коммутатора обеспечивает 7 (8) дополнительных входных битов по цене только одного вывода Mega8.Входы используются для переключателей управления режимами следующим образом:

    • IS1: выбор входа (для компенсации предделителя)
    • IS2: выбор метода (счетчик, авто, таймер)
    • IS3: выбор дисплея (частота или продолжительность)
    • IS4: зарезервировано для будущих расширений

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

    Резисторы в сочетании с емкостью затвора Mega8 создают низкочастотный проход.Это программно компенсируется увеличением времени установления внешнего счетчика.

    Изображения

    На этом рисунке показана тестовая плата со схемой полного счетчика, за исключением 7-сегментных светодиодов. Они уже смонтированы и распаяны на отдельной плате. К нему подключаются провода в правом верхнем углу. (Один разъем для выбора цифры и один для фактического 7-сегментного кода.)

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

    Это последняя плата, которая будет вставлена ​​в устройство.Он имеет разъемы для питания, 7-сегментный код, выбор цифр, схемотехническое программирование и вход сигнала TTL.

    Размер платы определяется корпусом, поэтому BC177 устанавливаются довольно плотно.

    Тестирование на точность.

    3d модель компоновки лицевой панели.

    На данный момент только TTL-вход, но работает. Буква «c» представляет собой запятую в режиме высокоточного таймера.

    Лицензия

    Файлы, находящиеся в загружаемых ниже архивах, выпущены под лицензией GNU GPL.

    Загрузки

    Firmware 0.0.2 Source и Intel Hex

    % 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 п.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *