» » Таймер от 1 секунды до 100 часов на микроконтроллере ATMEL AT89C2051

 
 
 
1

Таймер от 1 секунды до 100 часов на микроконтроллере ATMEL AT89C2051

Разместил dedmazay 7 апреля 2014. Просмотров: 11 941


Картинка от Novelty Kitchen Timers

В радиолюбительской практике частенько необходим таймер: засветка фоторезиста, выдержка после накатки, после засветки, варка пельменей, яиц (у меня частенько вся вода выкипает). Варианты из Google мне не подошли. Мне захотелось сделать таймер, в котором было бы 12 кнопок и 4-разрядный LED индикатор — я использовал красный, чтобы не засвечивать фоторезист. Для данной конструкции я применил давно лежащий в закромах микроконтроллер ATMEL AT89C2051. Питание от одного аккумулятора.

И вот конструкция готова. Встречайте: брутальный таймер радиолюбителя с временем выдержки от 1 секунды до 100 минут и шагом в 1 секунду или от 1 минуты до 100 часов с шагом 1 минута.
Около 10 лет назад я разработал таймер на ЖКИ и дешевом микроконтроллере PIC12C508 (журнал Радио № 5, 2004 г.). Всем он хорош, с тех пор даже батарейки не разу не менял. Разве что подсветки нет и кнопки в той конструкции были тактовые, заедают. И решил я не апгрейдить старую разработку, а сделать новую.

Схема таймера, индикатор с общим катодом


Схема таймера, индикатор с общим катодом

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

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

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

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

Таймер можно питать от трёх 1.5-Вольтовых батареек, тогда делитель R17, R18 надо будет пересчитать. В принципе, данный датчик можно вообще отключить, и менять батарейку когда она совсем сядет, тогда резистор R18 и IC3, С6, С7, R16 устанавливать не нужно. В качестве бипера использовал пьезоизлучатель с генератором внутри, ток потребления всего 5 мА.

Схема на кнопках с датчиком Холла, индикатор с общим катодом

Схема на кнопках с датчиками Холла, индикатор с общим катодом

Резисторы «00», используются как перемычки.

Если в наличие нет таких кнопочек с датчиками Холла, то можно использовать механические кнопки или промышленную матричную клавиатуру. В этом случае лучше установить индикатор с общим анодом. Тогда в качестве ключей можно использовать p-n-p транзисторы.

Схема таймера, индикатор с общим анодом


Схема таймера, индикатор с общим анодом

Если будет использована промышленная клавиатура, может понадобиться переопределить коды кнопок в исходном коде.
//Если другая раскладка клавиатуры, то нужно изменить эти define
#define KEY_1 0x18
#define KEY_2 0x28
#define KEY_3 0x48
#define KEY_4 0x14
#define KEY_5 0x24
#define KEY_6 0x44
#define KEY_7 0x12
#define KEY_8 0x22
#define KEY_9 0x42
#define KEY_0 0x21
#define KEY_SET 0x11
#define KEY_START 0x41
//**************************************************************

Схема на механических кнопках, индикатор с общим анодом


Схема не тестировалась в железе.
Клавиатура с механическими кнопками, индикатор с общим анодом

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

Немного о деталях

На микросхеме DA1 собран повышающий преобразователь напряжения. Индуктивность 10 uH на 1.7 А (например, типа SQC575047T-100K-N). Обращаю внимание, что транзистор PBSS4320T — это транзистор с очень низким напряжением насыщения 0.2V при 2А токе коллектора. Если поставить обычный транзистор, от 1.5V может не заработать. В качестве аналога можно использовать FMMT617TA или просто питать от трех батареек, без всяких преобразователей.

Работа прошивки

Когда таймер включаешь — на индикаторе все нули и горит точка посередине. Нажимаем кнопку «SET», все нули начинают мигать, вводим время выдержки, десятки минут, минуты, десятки секунд (максимум 5), секунды. Время можно вводить не полностью. Для выдержки 1 минуты, например, можно ввести 0, 1 и нажать старт, начнётся отсчёт времени.

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


В программе используется прерывание от TIMER0, который включён в режим «2», т.е. в режим 8-битного таймера с автозагрузкой. В прерывании таймера, выключаются катоды индикатора и засылаются данные в последовательный порт, для вывода очередного разряда индикатора.
После того как передача будет окончена, вызывается прерывание последовательного порта, в котором включается соответствующий катод индикатора и происходит опрос клавиатуры.

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

Если при включении таймера держать нажатой кнопку "1", то таймер моргнёт двумя крайними точками и включится в режим отсчёта времени в часах и минутах. Т.е. установка времени 01.00 уже будет означать 1час. Надо только учитывать что при питании от одного аккумулятора, его заряда хватит максимум на 10 часов, из этого следует что для длительных выдержек надо питать таймер или от более мощных аккумуляторов или от сети.

Сборка таймера

Таймер собран на двух платах и помещён в стандартный корпус G1168B от «Гаинты».
На одной плате сам таймер и излучатель (установлен со стороны проводников), на второй — кнопки, аккумулятор и преобразователь питания.

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


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

Фото собранного таймера.
Вид сверху

Вид сбоку


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


Видео

Небольшое видео, на нём индикатор всячески перемигивает — это биение развертки фотоаппарата и динамической индикации, глазами это не видно, время обновления индикатора 20 ms.
Видео с таким разрешением, потому что дом загородом и Интернет 3G.


Файлы

Исходный текст в среде KEIL и файл прошивки для индикаторов с общим катодом и общим анодом.
Source.zip | Файл 7,15 Kb загружен 20 раз.

Печатки и схемы в EAGLE
Eagle.zip | Файл 244,46 Kb загружен 18 раз.

Спасибо за внимание!
Алексей Ермаков (dedmazay)
Нижний Новгород
Профиль dedmazay
С паяльником с 5 класса.
Спаял много, две конструкции опубликованы в журнале Радио:
прибор IR-master для анализа сигналов пультов ИК диапазона
опубликован в Радио №8 за 2008 год и экономичный таймер №5 за 2004 год.
Пришёл пообщаться.
 

Понравилось? Палец вверх!

  • всего лайков: 31

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Фото-реле на микроконтроллере ATTiny13... Привет датагорцам! Я затеял ремонтные работы дома, и мне понадобилась система автоматического...
Схема на Датагоре. Новая статья Установка для УФ-засветки фоторезиста с таймером отключения... Светит незнакомая звезда, снова мы оторваны от дома, травим мы «печатки» до утра… Одна старая...
Схема на Датагоре. Новая статья Стрелочный частотомер 5 Гц – 30 мГц на микроконтроллере PIC16F628A... Этот частотомер не требует цифрового индикатора и, из-за отсутствии динамической индикации, намного...
Схема на Датагоре. Новая статья Простой модульный вольтметр переменного напряжения на PIC16F676... Простой вольтметр переменного напряжения с частотой 50 Гц, выполнен в виде встраиваемого модуля,...
Схема на Датагоре. Новая статья PIC16F876: таймер вытяжного вентилятора в ванной и электронный термометр... Я недавно делал капитальный ремонт ванной комнаты и возник вопрос, как управлять вентилятором...
Схема на Датагоре. Новая статья Программа ForMC в помощь программисту микроконтроллеров... Программа называется ForMC, изначально предназначалась для МК AVR. В ней объединены несколько...
Схема на Датагоре. Новая статья Кодовый замок на микроконтроллере AVR ATTINY2313... Работаю я электромонтером в районе Крайнего Севера. Зимой у нас всегда возникала проблема,...
Схема на Датагоре. Новая статья PIC16F873: универсальный таймер на 99 минут 59 секунд по мотивам блондинко-таймера Насти... Когда-то, в прошлом веке фотолюбители пользовались пленочными фотоаппаратами, которые заправлялись...
Схема на Датагоре. Новая статья Электронная замена механическому таймеру СВЧ-печи... У знакомого по работе, сломался механический таймер СВЧ печки. Попросил помощи, но через три дня...
Схема на Датагоре. Новая статья Простой кухонный таймер на PIC16F84. Моя реализация... Добрый день. Моя первая статья. На авторство не претендую, просто делюсь опытом сборки. Это...
Схема на Датагоре. Новая статья Датчик угла поворота. Сельсин-датчик и приёмник на микроконтроллере.... Схема сельсин-датчика и программа микроконтроллера практически полностью взяты из журнала Радио №4...
Схема на Датагоре. Новая статья Радиолюбительские конструкции на PIC микроконтроллерах, Кн.1, Н.И. Заец... Радиолюбительские конструкции на PIC микроконтроллерах, Солон-Пресс, 2003г. Автор: Н.И. Заец В...
<
  • Гражданин
28 апреля 2014 23:53

Алексей Ермаков / dedmazay

Цитата
  • С нами с 8.10.2009
  • Ушёл в реал Пользователь offline
  • 17 комментариев
  • 5 публикаций
 
  • 0
В варианте с механической клавиатурой, можно добавить диоды типа 1N4148, КД521, КД522 на линии S_R1, S_R2, S_R3, S_R4. Они защитят от некорректного отображения цифр на индикаторе во время случайного нажатии нескольких кнопок одновременно. Что то я про них забыл...
Диоды надо подключать катодами к микроконтроллеру, анодами к клавиатуре.

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.