Обсуждаем цифровые устройства...
Ответить

Бытовой таймер

Пт июн 03, 2022 00:15:37

Статья здесь https://radiokot.ru/artfiles/6647/
Собрал этот таймер, но видимо есть ошибка в программе: в режиме 1 минимальное значение таймера не 1 секунда, а 1 минута.
Если кто разобрался с программой, прошу подсказать.

Re: Бытовой таймер

Пт июн 03, 2022 00:27:36

Не проще ли написать автору в ЛС? Копаться в чужом коде без комментариев и с каким-то невероятным количеством глобальных переменных - неблагодарное дело :( Проще заново переписать.

Re: Бытовой таймер

Пт июн 03, 2022 00:39:53

Не проще ли написать автору в ЛС? Копаться в чужом коде без комментариев и с каким-то невероятным количеством глобальных переменных - неблагодарное дело :( Проще заново переписать.
Согласен, но поиск пользователя tess не дал результата :(
Сейчас по алфавиту поискал, нашёл таки, написал, может ответит.

Re: Бытовой таймер

Пт июн 03, 2022 11:16:42

инструкцию точно выполнял ??????
Изображение

Re: Бытовой таймер

Пт июн 03, 2022 11:56:48

Так у него же - 0 сообщений! Убедился, что фигню запостил - и слинял. Конечно, не дай бог чего...
А таймер - это настолько простая вещь, что годится только как тренировочное задание для вхождения в МК - сразу после перетягивания каната "помигать диодами". Но для этого не копируют проект "от дяди", а сами набивают себе шишки.
Я вот собиралсе тоже себе склепать таймер - не как (см выше), опыта у меня достаточно - а для кухни. Но паяю я медленно, распаял индикатор - и охладел. Купил у Алика 1-баксовый кухонный, и теперь - красота: ставишь необходимую задержку и идёшь заниматься своими делами. И когда из кухни потянет горелым - осознаёшь, что забыл нажать ПУСК :)
ТС, не сочти за офтоп.

Re: Бытовой таймер

Пт июн 03, 2022 12:23:46

Jack_A писал(а):А таймер - это настолько простая вещь, что годится только как тренировочное задание для вхождения в МК
Да, наверное это так и я, не ожидая подвоха, поспешил реализовать эту конструкцию в железе.
Изображение
Есть у меня ещё несколько самодельных таймеров, но этот по описанию, запоминает 8 установок, что было бы удобно, чтобы каждый раз не накручивать выдержку.
Поскольку таймер не заработал как задумано, сначала хотел перекомпилировать прошивку, но получил от WinAVR-2010011 ошибку:
main_tim.c:13:25: fatal error: bits_macros.h: No such file or directory
Нарыл в инете этот макрос bits_macros.h и добавил его в каталог с исходниками, компиляция прошла нормально, но таймер всё равно работает не так, как описано.
Попытки вникнуть в исходник были тщетными, увы, это не моя территория.
Открыл эту ветку, чтобы предостеречь других, а также в надежде на то, что откликнется автор или какой-нибудь скучающий программист :)
И ещё, за время минимальной выдержки 1 минута, таймер отстал секунд на шесть, что многовато. В статье описано, как ввести поправку, но всё равно, тут что-то не так.
Вложения
bits_macros.zip
макрос в архиве
(614 байт) Скачиваний: 84

Re: Бытовой таймер

Пт июн 03, 2022 18:18:51

Имитация функционала К145ИК1901 на основе адуринки (и под ардуиноIDE) заинтересует?
Это часики+секундомер+таймер обратного отсчета+два будильничка (без RTC).
Пока в стадии доработки, но надеюсь в ближайшее время таки допечется.
8)

Re: Бытовой таймер

Пт июн 03, 2022 20:18:54

Сам по себе файл с макросами без исходника - брачная ночь без невесты.

Re: Бытовой таймер

Пт июн 03, 2022 20:50:57

Polf писал(а):видимо есть ошибка в программе: в режиме 1 минимальное значение таймера не 1 секунда, а 1 минута.

а это вы учитываете?
Нажатием на кнопку энкодера можно менять изменяемые величины - в режиме 0 часы и минуты, в режиме 1 минуты или секунды.

Re: Бытовой таймер

Пт июн 03, 2022 22:14:22

Здравствуйте. Только что проверил - в режиме 1 у меня секунды. Попробуйте записать режим в EEPROM.
Для этого перейдите в пункт меню Pr. Установите энкодером цифру 1. Нажмите и удерживайте кнопку энкодера до появления на
дисплее символов "--:--". Данные запишутся в EEPROM. Выключите и включите таймер. Попробуйте, как работает.
По поводу точности. Контроллер тактируется от кварцевого генератора. Проверьте, что фьюзы у вас настроены для работы
именно от кварцевого резонатора, а не от внутреннего генератора.

Re: Бытовой таймер

Сб июн 04, 2022 03:08:51

><8> писал(а):а это вы учитываете?
Цитата:
Нажатием на кнопку энкодера можно менять изменяемые величины - в режиме 0 часы и минуты, в режиме 1 минуты или секунды.
Да, конечно. Устанавливаю режим 1, в меню это отображается, как Pr.-1, затем вращением энкодера выбираю число минут - максимальное 99, нажимаю на энкодер и устанавливаю число секунд - максимальное 59.
tess писал(а):Попробуйте записать режим в EEPROM.
Для этого перейдите в пункт меню Pr. Установите энкодером цифру 1. Нажмите и удерживайте кнопку энкодера до появления на
дисплее символов "--:--". Данные запишутся в EEPROM. Выключите и включите таймер. Попробуйте, как работает.
По поводу точности. Контроллер тактируется от кварцевого генератора. Проверьте, что фьюзы у вас настроены для работы
именно от кварцевого резонатора, а не от внутреннего генератора.
Всё делаю так, как вы написали. Фьюзы верные Low: 0xAF High: 0xC1. Проверил, генератор работает на частоте 8 МГц, это просто сделать с помощью радиоприёмника настроенного на эту частоту, делал так неоднократно. Меню листается нормально, яркость выбирается, кнопки работают. Устанавливаю в режиме 1 00.01, нажимаю ENT, загорается светодиод (двоеточия в моём дисплее нет). Примерно через минуту таймер срабатывает и выдаёт адекватный звуковой сигнал с переливом.
В режиме 0, после запуска через минуту ничего не происходит. Запутаться вроде не в чем, уже и кварц менял из другой партии и контроллер тоже.
Проверьте пожалуйста идентичны ли *.hex и *.eep, которые в архиве к статье, тем, что у вас прошиты.
Прилагаю свой вариант схемы на ATMEGA8 DIP28 и плату.
Вложения
Бытовой таймер_плата.zip
(35.55 KiB) Скачиваний: 82
Бытовой таймер_схема.pdf
(71.46 KiB) Скачиваний: 99

Re: Бытовой таймер

Сб июн 04, 2022 11:43:06

. Проверил, генератор работает на частоте 8 МГц, это просто сделать с помощью радиоприёмника настроенного на эту частоту

Я в ауте... Приёмник в роли частотомера с 10^-6... Приёмник может ловить гармонику, а не основную частоту, это ничего?

Re: Бытовой таймер

Сб июн 04, 2022 12:43:44

Раз пошла такая пьянка... :)) ради спортивного интереса и я решил написать программу таймера для ATmega8A, дисплей взял семисегментнный восьмиразрядный на базе max7219 (такой есть под рукой)… :) прикручу тоже энкодер в место кнопок… посмотрю что будет выходить… если всё пойдёт нормуль, то подключу ещё и модуль часов на базе DS3231. :beer:

Re: Бытовой таймер

Сб июн 04, 2022 12:45:19

Jack_A писал(а):Я в ауте... Приёмник в роли частотомера с 10^-6... Приёмник может ловить гармонику, а не основную частоту, это ничего?
Гармоника, по определению, частота кратная основной, в данном случае 16, 24 и т.д. МГц. Потом я не пытаюсь измерить частоту, для меня важно, что генератор работает. Антенну приёмника, настроенного на 8 МГц подношу к кварцу, помехи подавляются, отчётливо принимается несущая, при выключении таймера она пропадает и принимается шум. Любая попытка подключиться к кварцу вносит дополнительную ёмкость и генерация срывается, нужен высокоомный щуп с малой ёмкостью.

Re: Бытовой таймер

Сб июн 04, 2022 14:41:06

Ну если МК будет работать и на 1 МГц, то 8-й гармоникой будет душить шумы.
Если есть осцилл, поднеся щуп близко к кварцу, даже без контакта - частоту можно посмотреть. Или через делитель 1:10. Только к Clk out.

Re: Бытовой таймер

Сб июн 04, 2022 17:40:08

Jack_A писал(а):Если есть осцилл, поднеся щуп близко к кварцу, даже без контакта - частоту можно посмотреть.
Попробовал, как вы советуете, без контакта не получилось, но на шкале 500 mV, коснувшись одного из выводов кварца, получил Vrms=2,7V Freq=8.000MHz, осцил RIGOL DS1102E, развёртка 50.00ns.

Re: Бытовой таймер

Вс июн 05, 2022 10:29:58

Жаль только, что осцилл - не тот дивайс, которым 0,0000% частоты замерить можно. Но уже есть уверенность, что работает именно кварц. А такая большая погрешность с чего? Х.з. Легко исправляется настройкой таймера (если таковой используется - вместо, извините, обычных тупых delay) .

Re: Бытовой таймер

Вс июн 05, 2022 15:06:33

Тестовая прошивка таймера…
Timer.hex
(10.72 KiB) Скачиваний: 83

МК мега8А, тактируется на частоте 8 МГц. Индикатор на базе max7219, энкодер с кнопкой PEC12R-4225F-S0024, тумблер или кнопка с фиксацией, буззер HCM1206A.
Схема:
СпойлерИзображение


Описание:
Индикатор с лева на право: Режим отсчёта секунд: Две цифры минут с точкой, далее две цифры секунд с точкой (Режим отсчёта минут: Две цифры часов с точкой, далее две цифры минут с точкой), далее символ c точкой указывающий выбранный режим (L. – отсчёт секунд; Н. – отсчёт минут), далее символ (А) который высвечивается при входе в режим установки времени таймера, далее символ (t) – таймер и далее его порядковый номер (от 1 до 8 ).
Итак в тестовом варианте имеем 8 таймеров для отсчёта секунд и 8 таймеров для отсчёта минут. Установленные интервалы времени всех 16 таймеров находятся в EEPROM и при отключении питания не сбрасываются. При первом включении во все таймера записывается число 59:59. После подачи питания на индикаторе выбран всегда таймер №1. Режим отсчёта (секунд/минут) выбирается тумблером (или кнопкой с фиксацией) подключенной к выводу РС3. Если вывод не замкнут на GND, то выбран первый режим (L.) – отсчёт секунд; если вывод замкнуть на GND, то выбран второй режим (Н.) – отсчёт минут. В дежурном режиме индикатор имеет минимальную яркость. При вращении в дежурном режиме энкодера в право или лево изменяется порядковый номер выбранного таймера и высвечивается его временное значение. При коротком нажатии на кнопку энкодера производится пуск выбранного таймера. При этом яркость индикатора повышается (в тестовом режиме установлено 50%). В режиме (L.) на индикаторе виден отсчёт убывания секунд, то есть визуально видно как таймер работает. Но в режиме (Н.) производится отсчёт минут и визуализации как бы нет, потому было решено хоть как-то визуализировать данный отсчёт. Выбор пал на использования свечение точки после символа Н. в импульсном режиме при запуске отсчёта таймера.
Отключить таймер во время его отсчёта можно повторным нажатием на кнопку энкодера. После завершении отсчёта таймера управление отключается, а зуммер включается (Пиик-пиик), сигнализируя об окончании отсчёта таймера. Возврат в дежурный режим осуществляется нажатием на кнопку энкодера. В режиме отсчёта таймера блокируется всё режимы управление, кроме кнопки энкодера.

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

Re: Бытовой таймер

Вс июн 05, 2022 19:27:58

Нечасто встретишь таймер с энкодером. Мне обычно 3 кнопок хватало даже в часах: ГРУБО / ТОЧНО / СБРОС или РЕЖИМ / + / - . Может, эта тема побудит меня преодолеть лень и сделать энкодер на переменном резисторе. :) Идея созрела, но не проклюнулась ишшо :(

Re: Бытовой таймер

Вс июн 05, 2022 19:37:56

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