Купить таймеры кухонные в Тюмени, сравнить цены на таймеры кухонные в Тюмени – BLIZKO

Общее
описание программы

Упрощённый алгоритм работы программы.

  1. При включении производится настройка
    всей периферии, тактирование от
    внутреннего генератора на частоте 2
    МГц. Читаем данные из EEPROM. Сразу переходим
    в спящий режим.

  2. Прибор может находится в одном из
    трёх режимов — Игры, Таймер, Секундомер,
    перебор по долгому нажатию первой
    кнопки. Выбор подрежимов, по обычному
    нажатию первой кнопки. Запуск и остановка
    второй кнопкой.

  3. Индикация

    1. Если прибор в режиме игры — то
      левый сегмент индикация игры — L —
      лото, Б — бомба, Н — игральная кость.
      Остальные два разряда для игры.

    2. В режиме таймера. Таймер запущен
      — мигает точка в такт секундам. Таймер
      остановлен точка не горит. Таймер может
      отображать от 999 минут до 0. На экране
      всегда отображаем значащие разряды,
      точка разделитель секунд и минут.
      Например, 900 минут = 900. , 10 минут 15 секунд
      = 10.1, 1 минута 25 секунд = 1.25.

    3. В режиме секундомера. Запущен —
      мигает точка в такт секундам. Отображение
      как в таймере. При остановке секундомера,
      например на 10 мин 35 сек, показывает
      целую часть 10. 1сек потом дробную часть
      .35 1сек и так попеременно.

  4. Таймер

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

    2. Вторая кнопка старт таймера из
      предустановленного значения. Таймер
      в минутах.

    3. Долгое нажатие второй кнопки
      переходит в режим настройки значения.
      В этом режиме вторая кнопка и первая
      кнопка работают как плюс минус 1 минута.
      Долгое нажатие Второй кнопки записывает
      значение в настройку. Быстрое нажатие
      на кнопки прибавляет по 5 минут.

    4. При достижении конца таймера играем
      мелодию каждые 60с в течение 5 мин. Пока
      не остановим кнопкой.

    5. Когда таймер запущен — вторая
      кнопка долгое нажатие — сброс, первая
      кнопка – пауза

  5. Секундомер

    1. Когда запущен — мигает точка

    2. Вторая кнопка старт/пауза секундомера

    3. Первая кнопка выбор режима — с
      подтверждением или без. Когда выбран
      режим с подтверждением, то горит
      дополнительно первая точка

    4. Вторая кнопка долгое нажатие сброс

  6. Лото

    1. Игра не началась. Отображаем две
      тире

    2. Вторая кнопка следующее значение
      и выдаем звуковой сигнал

    3. Вторая кнопка долгое нажатие начать
      сначала

    4. в конце игры выдаем мелодию переливы
      и начинаем сначала

  7. Бомба

    1. Игра не началась — две тире

    2. Вторая кнопка — начать игру.
      Засекаем случайное время

    3. Игра идет — каждую секунду мигают
      нули и идет звук как часы пикают. Звук
      ускоряется каждые 10% оставшегося
      времени

    4. Когда время вышло — то звучит звук
      низкого тона — взрыв. У кого в руками
      остался прибор — тот проиграл. Игра
      начинается сначала.

  8. Спящий режим

    1. Если ничего не запущено, то через
      30с неактивности — глубокий сон

    2. Если запущен таймер или секундомер
      — то через 30с гасим экран — остаётся
      только точка мигать каждую сек на
      200мс. По кнопке показываем время. Когда
      осталось 30 сек. Кнопки работают как
      обычно. Но сначала будят как бы. То есть
      пробуждение не срабатывает как нажатие
      кнопки. Будить можно любой кнопкой.

    3. Если запущен секундомер, и про него
      забыли, не было активности 3ч, то заснуть
      совсем, а таймер оставить на моменте
      когда заснули.

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

⚡️таймер времени для кухни |

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

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

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

К тому же таймер времени желательно снабдить индикатором, позволяющим судить о времени, оставшемся до окончания выдержки. Предлагаемый вниманию читателей кухонный таймер времени имеет 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, применив надёжную рукоятку из изоляционного материала. Винт, фиксирующий ручку переключателя, должен быть обязательно утоплен вглубь ручки для исключения касания этого винта во время эксплуатации устройства. Для устранения возможности поражения электрическим током при налаживании устройство следует питать через разделительный трансформатор.

Читайте также:  Кухонный процессор: что это, виды, применение

Динамическая индикация

Настройка динамической индикации не
очень сложная. Для удобства, необходимо
сделать несколько дефайнов:

  1. #define ON1 GPIO_WriteHigh(GPIOC,GPIO_PIN_3)

  2. #define ON2 GPIO_WriteHigh(GPIOD,GPIO_PIN_5)

  3. #define ON3 GPIO_WriteHigh(GPIOD,GPIO_PIN_6)

  4. #define OFF1 GPIO_WriteLow(GPIOC,GPIO_PIN_3)

  5. #define OFF2 GPIO_WriteLow(GPIOD,GPIO_PIN_5)

  6. #define OFF3 GPIO_WriteLow(GPIOD,GPIO_PIN_6)

  7. #define AON GPIO_WriteLow(GPIOB,GPIO_PIN_4)

  8. #define BON GPIO_WriteLow(GPIOA,GPIO_PIN_1)

  9. #define CON GPIO_WriteLow(GPIOC,GPIO_PIN_6)

  10. #define DON GPIO_WriteLow(GPIOD,GPIO_PIN_3)

  11. #define EON GPIO_WriteLow(GPIOD,GPIO_PIN_2)

  12. #define FON GPIO_WriteLow(GPIOC,GPIO_PIN_4)

  13. #define GON GPIO_WriteLow(GPIOC,GPIO_PIN_5)

  14. #define TON GPIO_WriteLow(GPIOC,GPIO_PIN_7)

  15. #define ALLOFFGPIO_WriteHigh(GPIOC,GPIO_PIN_6|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7);GPIO_WriteHigh(GPIOD,GPIO_PIN_2|GPIO_PIN_3);GPIO_WriteHigh(GPIOA,GPIO_PIN_1|GPIO_PIN_3);GPIO_WriteHigh(GPIOB,GPIO_PIN_4);

ONx.. OFFx — позволяют включить и выключить
1 цифру. AON..TON — один сегмент в цифре.
ALLOFF — выключить все сегменты. Далее,
нам нужна вспомогательная функция —
cifraS(), которая будет отображать в одной
цифре нужный сегмент для выбранного
символа (например буквы L, прочерка и
т. д.).

  1. void cifraS(u8 seg){

  2. u8 j=;

  3. if(seg==) AON;

  4. if(seg==1) BON;

  5. if(seg==2) CON;

  6. if(seg==3) DON;

  7. if(seg==4) EON;

  8. if(seg==5) FON;

  9. if(seg==6) GON;

  10. if(seg==7) TON;

  11. for(j=;j<3;j ){

  12. u8 num;

  13. u8 flag=;

  14. if(seg==7){

  15. if(tchk[j]* tchkmig) flag =1;

  16. }else{

  17. num = ind[j];

  18. if(num==){

  19. //AON;BON;CON;DON;EON;FON;

  20. if(seg==) flag=1;

  21. if(seg==1) flag=1;

  22. if(seg==2) flag=1;

  23. if(seg==3) flag=1;

  24. if(seg==4) flag=1;

  25. if(seg==5) flag=1;

  26. }

  27. if(num==1){

  28. //BON;CON;

  29. if(seg==1) flag=1;

  30. if(seg==2) flag=1;

  31. }

  32. if(num==2){

  33. //AON;BON;GON;EON;DON;

  34. if(seg==) flag=1;

  35. if(seg==1) flag=1;

  36. if(seg==3) flag=1;

  37. if(seg==4) flag=1;

  38. if(seg==6) flag=1;

  39. }

  40. if(num==3){

  41. //AON;BON;CON;DON;GON;

  42. if(seg==) flag=1;

  43. if(seg==1) flag=1;

  44. if(seg==2) flag=1;

  45. if(seg==3) flag=1;

  46. if(seg==6) flag=1;

  47. }

  48. if(num==4){

  49. //FON;GON;BON;CON;

  50. if(seg==1) flag=1;

  51. if(seg==2) flag=1;

  52. if(seg==5) flag=1;

  53. if(seg==6) flag=1;

  54. }

  55. if(num==5){

  56. //AON;FON;GON;CON;DON;

  57. if(seg==) flag=1;

  58. if(seg==2) flag=1;

  59. if(seg==3) flag=1;

  60. if(seg==5) flag=1;

  61. if(seg==6) flag=1;

  62. }

  63. if(num==6){

  64. //AON;EON;FON;GON;CON;DON;

  65. if(seg==) flag=1;

  66. if(seg==2) flag=1;

  67. if(seg==3) flag=1;

  68. if(seg==4) flag=1;

  69. if(seg==5) flag=1;

  70. if(seg==6) flag=1;

  71. }

  72. if(num==7){

  73. //AON;BON;CON;

  74. if(seg==) flag=1;

  75. if(seg==1) flag=1;

  76. if(seg==2) flag=1;

  77. }

  78. if(num==8){

  79. //AON;BON;CON;GON;DON;EON;FON;

  80. if(seg==) flag=1;

  81. if(seg==1) flag=1;

  82. if(seg==2) flag=1;

  83. if(seg==3) flag=1;

  84. if(seg==4) flag=1;

  85. if(seg==5) flag=1;

  86. if(seg==6) flag=1;

  87. }

  88. if(num==9){

  89. //AON;BON;CON;GON;DON;FON;

  90. if(seg==) flag=1;

  91. if(seg==1) flag=1;

  92. if(seg==2) flag=1;

  93. if(seg==3) flag=1;

  94. if(seg==5) flag=1;

  95. if(seg==6) flag=1;

  96. }

  97. if(num==14){

  98. //-

  99. if(seg==6) flag=1;

  100. }

  101. if(num==11){

  102. //L

  103. if(seg==3) flag=1;

  104. if(seg==4) flag=1;

  105. if(seg==5) flag=1;

  106. }

  107. if(num==12){

  108. //K

  109. if(seg==) flag=1;

  110. if(seg==3) flag=1;

  111. if(seg==4) flag=1;

  112. if(seg==5) flag=1;

  113. }

  114. if(num==15){

  115. //K

  116. if(seg==) flag=1;

  117. if(seg==3) flag=1;

  118. if(seg==4) flag=1;

  119. if(seg==5) flag=1;

  120. }

  121. }

  122. if(flag==1&& j==) ON1;

  123. if(flag==1&& j==1) ON2;

  124. if(flag==1&& j==2) ON3;

  125. }

  126. }

С дефайнами она выглядит симпатично.
Активируем нужный сегмент и проверем
в каких из трех цифр он активен. Там где
активен — включаем общий анод. Если вам
нужны другие символы на индикаторе, то
надо добавить еще условия, например,
(num==11) — вывести на индикатор L.

Для того, чтобы вывести что-то на
индикатор, достаточно положить в массивы
ind[] и tchk[] нужные нам значения, остальное
будет сделано в прерываниях. Вот так
можно вывести число от 0 до 999.

  1. void shownumber(u16 num){

  2. ind[]=num/100;

  3. ind[1]=num/10-ind[]*10;

  4. ind[2]=num - ind[]*100- ind[1]*10;

  5. }

Теперь, собственно сам вывод на
индикатор. Вся работа ведётся в обработчике
прерывания TIM2. Введём переменную numind,
которая будет обозначать, какой сегмент
показывать в данный вызов прерывания.

  1. INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler,13)

  2. {

  3. TIM2_ClearITPendingBit(TIM2_IT_UPDATE);

  4. OFF1;

  5. OFF2;

  6. OFF3;

  7. ALLOFF

  8. if(numind<8){

  9. cifraS(numind);

  10. }

  11. numind ;

  12. if(numind==16) numind=;

  13. }

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

Первый Сегмент, Второй Сегмент, Третий
Сегмент, Ничего не горит …. Ничего не
горит, Первый сегмент и т.д….

и так, очень быстро. Чем больше мы
выводим пустых разрядов — тем более
тускло светится индикатор, и меньше
тратит энергии.

Инициализация, прерывания

Первоначальная инициализация довольно
простая.

  1. CLK->PCKENR1 = CLK_PCKENR1_TIM4 CLK_PCKENR1_TIM2;

  2. CLK->PCKENR2 =0b01110111;

  3. CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);

Выключаем лишнюю периферию, оставляем
только таймер 4 и 2. Тактирование от
внутреннего генератора 16 МГц, с делителем
8, для пониженного энергопотребления.
В итоге, работаем на частоте 2 МГц. При
тактировании от внутреннего генератора,
периферия работает на частоте центрального
процессора — то есть таймеры будут
работать тоже на частоте 2Мгц, имейте
это ввиду при настройке счетчиков
таймеров.

  1. TIM4_TimeBaseInit(TIM4_PRESCALER_8,249);

  2. TIM4_ClearFlag(TIM4_FLAG_UPDATE);

  3. TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

  4. TIM4->IER |=(uint8_t)TIM4_IT_UPDATE;

  5. TIM2_TimeBaseInit(TIM2_PRESCALER_32,50);

  6. TIM2_ClearFlag(TIM2_FLAG_UPDATE);

  7. TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);

  8. TIM2->IER |=(uint8_t)TIM2_IT_UPDATE;

TIM4 будем использовать для миллисекундного
отсчета, а TIM2 для динамической индикации.
Для TIM2 частота нужна повыше, чтобы не
было заметно мерцания, также она не
должна быть пропорциональна 50 Гц (частота
мерцания лампочек в сети 220В). С другой
стороны слишком высокая частота будет
больше тратить энергии.

  1. EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOA,EXTI_SENSITIVITY_FALL_ONLY);

  2. EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB,EXTI_SENSITIVITY_RISE_ONLY);

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

  1. GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_IN_PU_IT);//кнопки

  2. GPIO_Init(GPIOB,GPIO_PIN_5,GPIO_MODE_IN_FL_IT);//кнопки

  3. GPIO_Init(GPIOD,GPIO_PIN_4,GPIO_MODE_OUT_PP_LOW_SLOW);//пищалка

  4. GPIO_Init(GPIOD,GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_5|GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_SLOW);//индикатор

  5. GPIO_Init(GPIOA,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_SLOW);//

  6. GPIO_Init(GPIOB,GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_SLOW);//

  7. GPIO_Init(GPIOC,GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_MODE_OUT_PP_HIGH_SLOW);

  8. halt();

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

Камрад, рассмотри датагорские рекомендации

Итак что нам нужно:1. 7805;2. Два лед индикатора с общим катодом Rl-D5613 (хотя я рекомендую переразвести плату под индикаторы Rl-D5611);3. 1 бипер на 5 Вольт с внутренним генератором;4. 5 резисторов на 10 кОм;5. 1 резистор на 100 Ом;6.

3 резистора на 100 кОм;7. микроконтроллер pic16f84;8. 12 кнопок (такого типа как стоят в мышках, только с длинными кнопками);9. Кварц на 4 мГц;10. 2 конденсатора на 33пФ;11. 1 конденсатор на 0,33мФ;12. 1 конденсатор на 0,1мФ;13.

Переводим печатную плату на текстолит методом ЛУТ и травим (после травления часть дорожек были оборваны, потому устройство сразу не заработало, после исправление разрывов, устройство заработало).Прошиваем микроконтроллер. В программе ICprog выставляем фьюзы все на “снятые” и в выпадающем списке на “HS”.

Собираем устройство по схеме:

14 нога плюс. 5 нога минус. К 4 ноге резистор на 10кОм и к плюсу питания. К 15-16 ноге кварц и конденсаторы и на минус. Далее монтируем в корпус, вырезаем окошко и клеем оргстекло, также вырезаем отверстия под кнопки.

Вид готового устройства.

Минусы устройства:• В данной реализации не продумана защита ПП от грязи, стоит поставить или накладки (шляпки) на кнопки, или купить готовую клавиатуру. • Также стоит добавить выключатель на батарейку так как при 9В он потребляет до 50 мкА, а при севшей батарейки до 5В всего 15 мкА.

Плюсы: • Низкое энергопотребление, на одной батарейке до 40 часов. • Небольшие размеры. • Простота реализации. Мало деталей. • Не нуждается в настройке. • Полноценная клавиатура (не нужно жене объяснять сколько раз куда тыкать). • Наличие часов.

Прикрепляю прошивку и ПП устройства. 🎁tajmer.zip 824.35 Kb ⇣ 125

Удачи!

Обработка кнопок

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

Для настройки процедуры обработки
кнопок есть несколько дефайнов:

  1. #define KNNUM 2 //колво кнопок

  2. #define KNONE 4 //обычное нажатие

  3. #define KNLONG 5 //долгое

  4. #define KNTWO 6 //двойное

  5. #define KNDTIME 50 //время в мс дребезга контактов

  6. #define KNTIMETWO 300 //время в мс двойногонажатия

  7. #define KNTIMELONG 1000 //время в мс долгогонажатия

Количество кнопок, значения, которые
возвращает функция определения кнопок,
время необходимое для устранения
дребезга, время в течение которого
должно произойти двойное нажатие, время
фиксации долгого нажатия. Для хранения
обработанных данных используется массив
kn[], для хранения предыдущего состояния
кнопок массив knstatus[], времени, прошедшего
с начала нажатия первой кнопки —
kntime[]. При инициализации МК, необходимо
очистить все эти массивы.

Читайте также:  Купить готовые шторы в Чебоксарах недорого – цены от 410 руб., фото, большой каталог, заказать шторы в интернет магазине ТОМДОМ

Сама процедура обработки кнопок
вызывается из миллисекундного таймера
каждые 50 мс (время нужное для устранения
дребезга), так сразу решается проблема
с дребезгом контактов.

  1. u8 i,pd;

  2. if(kndtime) kndtime--;

  3. if(kndtime==){

  4. //опрос кнопок редко для избежаниядребезга

  5. kndtime = KNDTIME;

  6. pa = GPIOA->IDR;//GPIO_ReadInputData(GPIOA);

  7. pb = ~(GPIOB->IDR);//_ReadInputData(GPIOB);

  8. knint(, pa, GPIO_PIN_2);

  9. knint(1, pb, GPIO_PIN_5);

  10. }

  11. for(i=;i<KNNUM;i )if(kntime[i]) kntime[i]--;

Предварительно считываем состояние
порта, на котором висят кнопки. Далее,
передаем это значение, номер кнопки,
номер вывода кнопки в функцию, в которой
будет вся обработка — knint(). Так как
кнопка на порту B нажата когда там будет
значение 0, то используем операцию
инверсии битов.

В конце уменьшаем на единицу переменные
таймеры кнопок.

Рассмотрим саму функцию обработки
кнопок.

  1. if(knstatus[knum]&&((zn&pin)==)){//кнопкунажали

  2. knstatus[knum]= zn&pin;

  3. if(kn[knum]>=KNONE)return;//еще не обработалипредыдущее нажатие в основном циклепропустим это нажатие

  4. kn[knum] ;//колво нажатий плюс один

  5. if(kn[knum]==1) kntime[knum]= KNTIMELONG;//первый разначнм замер времени

  6. if(kn[knum]==2){

  7. if(kntime[knum]>(KNTIMELONG-KNTIMETWO)) kn[knum]=KNTWO;

  8. else kn[knum]= KNONE;

  9. }

  10. }

  11. if((kn[knum]==1)&&(kntime[knum]==)) kn[knum]=KNLONG;

  12. if((kn[knum]==1)&&(kntime[knum]<(KNTIMELONG-KNTIMETWO))&& zn&pin)kn[knum]=KNONE;

  13. knstatus[knum]= zn&pin;

Чтобы определить, что мы нажали кнопку,
сравним предыдущее состояние кнопки и
состояние вывода. Если кнопка нажата,
но мы еще не обработали в основном цикле
значение кнопки, то делать ничего не
будем. Каждое нажатие увеличиваем на
один счётчик нажатий, он будет у нас
хранится в элементе массива результата
кнопки kn[].

Таким образом, пока мы не
знаем точно, какой вид нажатия, то будем
там хранить количество нажатий. Если
это первое нажатие, то засекаем время
определения долгого нажатия. Если это
второе нажатие, то проверим уложились
ли мы во время двойного нажатия — если
да, то фиксируем двойное нажатие, если
нет — то обычное.

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

Все! Так несложно можно определить
все нужные нам виды нажатия. В основном
цикле вы можете обработать их

  1. if(kn[]== KNONE){

  2. secundomer =;

  3. sleeptime=30;

  4. kn[]=;

  5. }

  6. if(kn[]== KNTWO){

  7. secundomer =100;

  8. sleeptime=30;

  9. kn[]=;

  10. }

  11. if(kn[]== KNLONG){

  12. secundomer =200;

  13. sleeptime=30;

  14. kn[]=;

  15. }

После обработки, необходимо очистить
элемента массива kn[], для фиксирования
нового нажатия. Вы можете использовать
этот код в своих проектах, добавить
количество кнопок, поменять время
обработки различных ситуаций.

Начало положено, остальной код программы
мы не приводим, так как это ваше творчество!

Радиокот :: программируемый кухонный таймер

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Программируемый кухонный таймер

Данное устройство представлет собой программируемый таймер, выполненный на микроконтроллере ATTINY2313 и снабженный светодиодным семисегментным индикатором.

(А внутре у ней неонка и думатель) 🙂

Я старался сделать управление как можно простым и удобным.

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

Назначение клавишам предустановленных значений, позволяет одним нажатием установить время больше 9 минут, а так же одним нажатием переустановить таймер на новое значение. Такие операции гораздо быстрее, чем многократное нажатие на клавиши ” ” “-” или кручение ручкой (особенно если надо переустановить таймер на то же время).

Например пельмешки варятся 7 минут, яйца 10, а блинчики надо переворачивать через 2 минуты. Можно настроить эти таймеры на кнопки 1, 2 и 3 и после включения сутройства, например, просто нажать 2, чтобы влючить таймер для варки яиц.

Если вы решили, что с сегодняшнего дня яца будете варить 11 минут, ничего страшного, можете тут же перепрограммировать кнопку 2 на 11 минут.

Схема достаточно проста:

  Купить таймеры кухонные в Тюмени, сравнить цены на таймеры кухонные в Тюмени - BLIZKO

Диапазон отсчета от 1 до 99 минут.
Кнопками * и # можно в любой момент изменять текущее значение таймера.

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

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

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

Нажатия на кнопки и операция записи сопровождаются звуковой индикацией.

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

Работает устройство от 2 батареек AA.

В качестве корпуса мне попалась нерабочий пульт сигнализации  с очень подходящей клавиатурой:

Купить таймеры кухонные в Тюмени, сравнить цены на таймеры кухонные в Тюмени - BLIZKO

Программа написана для компилятора gcc, поэтому в Windows используется пакет WinAVR.
В Linux пакет avr-gcc.
В архиве имеется готовая версия прошивки.

Программа позволяет настраивать частоту и длительность звучания для звука клавиш и звука окончания отсчета. Можно даже составить простенькую мелодию.

Так же настраивается время реакции на кнопи (встроенный антидребезг контактов).

Сборка программы осуществляется командой
make build.

Фьюзы установленны по умолчанию:
Low 0x64; High 0xdf; Extended 0xff.
Поэтому на новом контроллере их можно не трогать.
Ключи для прошивки фьюзов программы avrdude:
-U lfuse:w:0x64:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

На страничке https://www.engbedded.com/fusecalc можно посомтреть более подробную расшифровку значений
Так же есть файл fuses.png в каталоге проекта.

Компилятор для Windows можно взять здесь:
https://sourceforge.net/projects/winavr/

Какие пакеты нужны для сборки в Linux можно почитать здесь:
https://avr.ru/tools/linux/dev

Для прошивки я использовал программу avrdude.
Пример команды для прошивки:
avrdude -p t2313 -c usbasp -U flash:w:kt.hex
Если в Makefile все параметры указаны верно, можно запустить прошивку командой
make program

Для прошивки я использовал программу avrdude.
При сборке создается файл с раширенийем eep. Его можно залить в eeprom контроллера, чтобы сбросить все установленные
значения таймера.

Таймер выполнен на микроконтроллере ATTINY2313, причем задействованы все возможные выводы контроллера.

Тактуется внутренним генератором, частота работы 1МГц.

В качестве индикатора выбран двухсимвольный светодиодый индикатор с общим АНОДОМ. Для схемы подойдет любая модель, главное,
чтобы был общий АНОД.

Транзисторы обычные маломощные n-p-n структуры. Я взял КТ315. Можно любой аналог.
Базовые резисторы R1 – R3 номиналом 1кОм, мощность 0,125Вт.

Для вывода звука, можно применять небольшой динамик сопротивлением 8 Ом и мощностью 0,25Вт.
Или  можно использовать пьезоизлучатель. В этом случае для получения максимальной громкости
надо настроить частоту звука окончания счета на резонансную частоту излучателя (ее можно
посмотреть в документации на излучатель). Так же можно подобрать излучатель с максимальной
громкостью. Поэтому я считаю применение излучателей более практично.

Выводы контроллера, управляющие сегментами (с 12 по 18) подключены напрямую т.к. питание низкое и вдобавок
динамическое управление дают небольшой ток. Если питать от 5В источника питания то необходимо
эти ножки подключать  через резисторы примерно на 68Ом.

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

Все схемы нарисованы в программе kicad.

Скачть программу можно здесь:
https://www.kicad-pcb.org/display/KICAD/Download

Для того, чтобы размещать несколько плат на печатном листе я использовал пакет Latex.
Makefile для этого дела размещен в каталоге scheme.

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

Скачать проект

Если у вас установлен Mercurial, можно просто клонировать проект:
hg clone https://bitbucket.org/kostya13/kitchen-timer

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

Все вопросы в
Форум.


Таймеры кухонные – купить в тюмени по выгодной цене

тип: таймер, цвет: белый, подсветка: нет”>Таймер REXANT 11-6010 с таймером, 16 А, с заземлением, белый тип: таймер, цвет: белый, подсветка: нет

1266 руб.
Доставка: Тюмень
Подробнее

§

§

§

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

Ваш адрес email не будет опубликован.

Adblock
detector