Микроконтроллеры своими руками таймеры
Универсальный таймер на микроконтроллере.
Автор: ARV
Опубликовано 01.01.1970
Поздравляю Вас, уважаемый Кот, с днем рождения! Разрешите в качестве скромного подарка предложить вашему вниманию следующую конструкцию.
Это ни что иное, как таймер, который позволит задать до 100 различных временных интервалов в течение суток, когда какая-либо нагрузка должна быть включена. Схема на рисунке 1 показывает лишь главное: три основных элемента, составляющих основу — микроконтроллер U1 типа Atmega8, интегральные часы U2 типа DS1307 и жидкокристаллический индикатор LCD1 любого типа, лишь бы он поддерживал 2 строки и не менее 16 символов в строке. Остальные элементы схемы, хотя и нужны, но не заслуживают отдельного рассказа, кроме пары слов: R1. R3 — любые резисторы сопротивлением 5,1К; RV1 — так же любой подстроечный (уточните номинал по документации на индикатор); кнопки — любые тактовые.
На схеме показана линия OUT, которая никуда не идет. Но на самом деле она должна идти к исполнительному элементу: транзисторному ключу, нагруженному на реле; оптореле; сирене; тиристору и т.п., — в общем, к любому исполнительному элементу с током потребления не более 40 мА. Я надеюсь, что прикошачить одну из многих сотен готовых схем, которые могли бы быть исполнительными для этой схемы — не проблема для любого самодельщика. Так же и той же причине на схеме не показан источник питания. Надеюсь, подобные упрощения мне будут прощены.
Несколько слов о DS1307. Эта микросхема требует особой аккуратности при разводке кварцевого резонатора X1 (т.н. часовой кварц). Рекомендации в общем просты: надо стремиться подключить его как можно более короткими проводниками к выводам микросхемы, и по мере возможности все свободное пространство под ней и вокруг нее залить площадкой меди, соединенной с общим проводом схемы. Батарейка BAT1 — любая литиевая 3В, она обеспечит верный ход часов при отключении питания прочей схемы. Т.е. если питание случайно пропадет, а потом снова появится, корректность работы таймера не будет нарушена. Если по каким-либо причинам батарейку решено не использовать, то 3-й вывод микросхемы часов надо соединить с общим проводом, иначе часы не «запустятся».
Конечно, главное в данной конструкции — программа микроконтроллера. Она разработана так, чтобы не нужно было программировать знаменитые фьюзы, т.е. верно работает с теми значениями, которые «прошиты» в микроконтроллере при изготовлении. Если используется не новый МК, то придется задать ему работу от встроенного генератора 1 МГц, т.е. запрограммировать CKSEL=0001. Все прочие фьюзы некритичны.
Управление всеми функциями осуществляется при помощи 4-х кнопок, условно обозначенных символами:
[*] [#] [>] и [ ] и [
Источник
Таймер своими руками | Программирование микроконтроллеров AVR
Рассмотрим, как сделать таймер своими руками на микроконтроллере ATmega8, хотя код довольно просто адаптировать и для МК AVR других серий. Электронный таймер нужное устройство во всех областях, где требуется выполнение определенных действий через конкретный промежуток времени.
Чтобы не повторяться схему подключения четырехразрядной динамической индикации и основу кода мы возьмем из предыдущей статьи, в которой подробно описаны все элементы кода и принцип работы динамической индикации.
Управление таймера состоит всего из четырех кнопок:
– увеличение значения числа;
– уменьшение значения числа;
В качестве индикатора срабатывания таймера применяется генератор звуковой частоты с динамиком. Генератор будет запускаться с помощью транзисторного ключа Q5, который в свою очередь открывается положительным потенциалом, поступающим из порта PC2 микроконтроллера.
Упрощенно таймер работает следующим образом. Кнопками «+» и «-» устанавливается требуемое количество секунд; кнопкой «старт» запускается таймер. Когда таймер отсчитает до нуля, на выводе PC2 микроконтроллера ATmega8 появится высокий потенциал, который откроет транзисторный ключ Q5. Далее транзисторный ключ запустит генератор и раздастся звук в динамике. Сброс таймера осуществляется при нажатии кнопки «сброс». Генератор звуковой частоты собран на двух транзисторах Q6 и Q7 разный полупроводниковых структур. С принципом работы и описанием схемы подобных генераторов можно ознакомиться, перейдя по ссылке.
Алгоритм работы таймера на микроконтроллере
Наш таймер будет отсчитывать обратное время ровно по одной секунде, хотя можно задать и любое другое время, например минуты, часы, сотые секунды и т.п.
Для формирования интервала времени в одну секунду мы воспользуемся первым таймер-счетчиком микроконтроллера ATmega8. Все его настройки мы определим в функцию start. Сначала разделим рабочую частоту микроконтроллера 1000000 Гц на 64 и получим новую частоту 15625 Гц. За это отвечают бит CS10, CS11 и CS12 регистра TCCR1B. Далее разрешаем прерывание по совпадению и в регистр сравнения (старший и младший) записываем двоичное число равное десятичному 15625. Затем обнуляем счетный регистр TCNT1 и устанавливаем в единицу бит WGM12 регистра TCCR1B, что вызывает сброс счетного регистра при совпадении текущего его значения с числом, записанным в регистры сравнения.
void start (void)
OCR1AL = 0b000001001; // регистр сравнения 15625
Когда таймер отсчитает ровно одну секунду – вызовется прерывание. В теле функции прерывания мы будем снижать значение переменной на единицу. При достижении нуля на второй выход порта C микроконтроллера появится высокий потенциал, который откроет транзисторный ключ и запустит генератор, в результате чего мы услышим звук в динамике.
Источник
Таймер на PIC для управления электроприборами
Электронный таймер предназначен для программного управления бытовыми приборами, освещением и другими приборами. Таймер можно использовать для аквариумного и другого оборудования. Использование таймера позволит экономить электроэнергию, не понижая уровень комфорта.
Вариант 1
В состав данного устройства входит три таймера. Таймер 1.1 и таймер 1.2 каждый из них позволяет задавать время включения и выключения нагрузки, которая подключается к реле KV1. Таймер 2.1 и таймер 2.2 также позволяет задавать время включения и выключения нагрузки, которая подключается к общему реле KV2. Таймер 3 представляет собой обратный таймер, который управляет нагрузкой через KV3.
В данном устройстве применен микроконтроллер PIC16F628A. Элементы С1, С2, ZQ1 являются внешними частотозадающими элементами внутреннего тактового генератора. Для отображения информации используется индикатор HG1 с контроллером KS0066. Индикатор может отображать две строки по шестнадцать символов. Подстроечным резистором R4 можно регулировать контрастность изображения. Помощью SB1-SB5 происходит управление режимами работы и индикации, а так же настройка таймера. Через выводы 1,17,18 микроконтроллера происходит управление транзисторами VT1-VT3 и далее реле KV1-KV3, которые включают либо отключают нагрузку. При использовании реле с током катушки более 100 мА, то транзисторы КТ315В следует заменить на транзисторы максимально допустимый ток коллектора, которых больше тока катушки реле.
Режим отображения текущего времени.
Назначение клавиш управления в этом режиме:
SB5 — вход/выход в режим настройки текущего времени.
SB3, SB4 – перемещение курсора влево либо вправо при настройке.
SB1, SB2 – уменьшение либо увеличение значений времени при настройке.
Режим отображения таймера 1.1.
Если время включения установлено равным времени выключения то считается не используемым.
Назначение клавиш и управление ими такое же, как и в режиме текущего времени.
Таймеры 1.2, 2.1 и 2.2 по индикации и управлению аналогичны таймеру 1.1.
Режим отображения таймера 3
Таймер 3 — это обратный таймер.
Для входа в режим настройки таймера 3 необходимо нажать и удерживать, до появления мигающего курсора, кнопку SB5. В режиме настройки перемещение курсора осуществляется кнопками SB3 и SB4, а изменение значений кнопками SB1 и SB2. При отсчете времени остановить таймер 3 можно нажав SB5. После повторного нажатия SB5 таймер продолжит отсчет времени и когда его значение будет равно нулю, нагрузка отключится.
Переключение между режимами отображения осуществляется кнопками SB1 и SB2.
Биты конфигурации микроконтроллера.
Вариант 2
Режим отображения текущего времени
Назначение клавиш управления в этом режиме:
SB5 — вход/выход в режим настройки текущего времени.
SB3, SB4 – перемещение курсора влево либо вправо при настройке.
SB1, SB2 – уменьшение либо увеличение значений времени при настройке.
Режим отображения таймера
Источник
Таймер на микроконтроллере atmega8
Хочу предложить мастерам Самоделкина для рассмотрения и возможного повторения, очень простую схему, очень хорошего таймера. С удобной навигацией по меню, с жидкокристаллическом LCD дисплеем , с часами реального времени, с минимально возможным количеством деталей и при всем этом можно запрограммировать целых сто временных отрезков в течении суток.
Видео проверки таймера
Сердцем данного таймера является очень популярный и уже не дорогой микроконтроллер Atmega8. Вы можете сказать, что для прошивки нам потребуется программатор которого нет, но это не так, для прошивки Atmega достаточно всего пять коротких 10-15 см. проводков подключенных через резисторы 150-200 Ом. напрямую к LPT порту по этой схеме.
Вот по этой причине, эти микроконтроллеры стали самыми популярными у радиолюбителей.
На этом рисунке Вы видите: Схему распиновки ножек МК для подключения и прошивки.
Пункт 1. Подготовим все необходимое для изготовления таймера.
Самые обязательные радиодетали схемы, остальное обычно можно подобрать у себя дома, самая маленькая микросхема, это часы DS1307.
Нам потребуются такие радиоэлементы:
• Микроконтроллер Atmega8
• Интегральные часы DS1307
• LCD жидкокристаллический индикатор
• Стабилизатор 7805
• Конденсатор 500-1000 Мф — 16 вольт.
• Реле или электронный ключ (в зависимости от нагрузки которая планируется подключаться).
• Резисторы сопротивлением 5,1ком — 3 шт., резистор переменный (по мануалу LCD дисплея).
• Кварц часовой 32768 Гц.
• Кнопки без фиксации — 4 шт.
• Батарейка таблетка на 3 вольта.
• Текстолит для платы.
• Небольшой трансформатор
6-12в.
• Коробка распаечная для корпуса.
+ Для программатора: резисторы 150-200 Ом. — 4 шт., разъем LPT порта (для удобства, не обязателен).
Обязательные инструменты каждого радиолюбителя:
• Паяльник для пайки микросхем, паяльник для пайки пассивных радиодеталей и проводов.
• Тестер для прозвонки дорожек и проверки радиодеталей.
• Олово, канифоль.
+ Принтер лазерный (для изготовления платы или другой способ).
Пункт 2. Приступим к изготовлению.
Таймер будем делать по этой главной схеме.
Как видите на ней отсутствует схема блока питания и выходного исполнительного устройства, это потому, что возможно вы решите использовать выносной стабилизированный БП, а также не известно какую нагрузку вы планируете подключать, поэтому, каждый должен сам выбрать исполнительное устройство под свои технические требования.
Лично я своем таймере применил вот такую схему БП и исполнительное устройство на транзисторе и реле.
Они более компактные (без радиатора), но менее мощные, чем простое реле.
В соответствии с главной принципиальной схемой + БП + ИУ и анализом монтажных габаритов вашей коробки для корпуса, а также размеров подобранных радио элементов, проектируем форму, размер и рисунок дорожек на плате. Для этого удобно пользоваться программой Sprint Layout.
Для моего устройства получилась вот такая простая плата.
400C вместо обычных
200С, я кстати когда-то по глупости купил этот принтер именно для ЛУТ :(., поэтому в результате моя плата рисована маркером.
Нанесенный на медь рисунок вытравливаем в ванночке с хлорным железом или любым другим специальным раствором.
На готовую плату припаиваем детали согласно схеме, особое внимание обращаем при монтаже и пайке микросхемы часов и кварцевого элемента. Длина дорожек между ними должна быть минимальной, а лучше использовать микро кварц из наручных часов и припаять его непосредственно к ножкам МС часов. Все свободное пространство рядом с МС часов и кварца заполняем площадками корпуса (GND). Батарея необходима для поддержания часов в рабочем состоянии во время отключения от сети. Если по какой-то причине вы не стали устанавливать эту батарейку, то посадите плюсовой провод на корпус, иначе часы просто не пойдут.
Микроконтроллер прошиваем программатором или с помощью 5 проводков.
Автор прошивки специально для удобства (за что ему спасибо) и не стал изменять заводские фьюзы, что очень сильно облегчает, без заморочки, прошивку для начинающего радиолюбителя. Если МК еще не использовался, новый из магазина, то просто заливаете прошивку и все, но если уже есть изменения в фьюзах, то надо выставить их так CKSEL=0001. Все остальное просто и не нуждается в пояснении.
Для корпуса очень удобно использовать распаечные коробки из пластмассы, они бывают разных размеров и форм.
Управление меню осуществляется четырьмя кнопками.
Меню состоит из трех пунктов, СLOCK -установка часов, TIMЕ — установка таймеров и RESET -сброс всех установленных таймеров.
Сначала заходим (*) в меню часов и выставляем точное время.
Подсказка по управляющим кнопкам в нижней строке дисплея, в каждом меню разное, поэтому описывать кнопки нет необходимости.
Теперь все готово чтобы корректно задавать временные записи таймера, после нажатия решетки, программа записывается в постоянную память МК.
На видео в начале статьи можно посмотреть подробнее о меню.
Я применяю этот таймер для полива гидропоники.
Источник