Схема таймера обратного отсчета на 6 месяцев

Мне нужно разработать схему синхронизации. По истечении 6 месяцев должен загореться светодиод. Затем светодиод можно выключить нажатием кнопки, и отсчет 6 месяцев должен начаться снова. Кто-нибудь знает, с чего мне начать? Способен ли таймер 555 что-то делать в течение такого времени или мне нужно что-то еще? Любая помощь будет принята с благодарностью.

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

Должен ли он быть портативным, или он будет подключен к сети переменного тока? Если это так, вы можете посчитать пересечения 60 (или 50) Гц, которые очень точны в долгосрочной перспективе.
Не пытайтесь использовать источник переменного тока — вы не можете рассчитывать на то, что питание будет работать в течение 6 месяцев подряд, не принимая чрезвычайных мер.
Я видел, как это приложение используется в фильтрах для воды, чтобы предупредить вас, когда фильтр необходимо заменить. Они могут работать много лет без замены батареи, поэтому я предполагаю, что они могут сделать это очень легко.
@ Винсент Конлон: Какая точность вам нужна? В примере с фильтром для воды я уверен, что точность ужасна, но я не думаю, что кого-то волнует, получите ли вы предупреждение на неделю раньше или позже.

Ответы (6)

Основываясь на этом ответе , я думаю, что 555 не сработает. Вам понадобится массивный конденсатор и огромный резистор, и точность будет ужасной.

Я бы рекомендовал использовать самые простые 8-битные микроконтроллеры. Вам нужно будет осторожно обращаться с числами, но PIC16F84A (или Arduino или множество других подобных устройств) может это сделать. Я мог бы установить таймер на 1 секунду, а затем подсчитать 15778463 истечения таймера, сохранив счетчик в 32-битной переменной. (Для 32-битных переменных Arduino см. http://www.arduino.cc/en/Reference/Double )

Эм... double? Неправильный. Вы имеете в виду long, или предпочтительно int32_t.
АХ, ты прав. Грубо, но правильно.
Эм... int32_t? Неправильный. Вы имеете в виду uint32_t, если только вы не ожидаете, что время пойдет назад.
Да, вы можете удвоить свой диапазон, используя беззнаковые типы, но этого следует по возможности избегать. Арифметика с беззнаковыми типами может вызвать раздражающие ошибки из-за продвижения типов, которое делает C.
@Nick, хотя технически это верно, большинство реализаций C на 8-битных микроконтроллерах не следуют продвижению определенного типа. Они часто просто используют самый большой тип в выражении.
Имейте в виду, что без RTC или внешнего генератора точность здесь будет довольно ужасной, особенно в течение такого длительного периода времени. И не забывайте периодически записывать текущий счет в EEPROM!

Как и в случае с pingswept, я бы порекомендовал дешевый микроконтроллер. TI Launchpad MSP430 поставляется с кристаллом 32,768 кГц и поддерживает работу с очень низким энергопотреблением.

Этот проект недалеко от того, что вы хотите: http://kennethfinnegan.blogspot.com/2010/08/msp430-bicolor-led-clock.html

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

повестка дня

В любом случае, давайте сделаем это в электронном виде, просто для удовольствия. Кажется, вам не нужна очень высокая точность; не имеет значения, будет ли заменен фильтр на день раньше или позже (точность дня в 6 месяцев составляет 0,5%). Я отмечаю, что он должен работать от батареи, поэтому он должен быть очень маломощным.

Начну с изменения требований . Вам нужен светодиод в качестве индикатора, но ваше устройство должно быть довольно заметным в гостиной, если вы хотите видеть горящий светодиод, даже когда он мигает. (Обратите внимание, что перепрошивка может быть необходима, чтобы избежать разряда батареи до того, как светодиод будет замечен; в конце концов, светодиод может загореться сразу после того, как вы легли спать.)
Я бы использовал зуммер вместо светодиода . А чтобы зуммер не звучал посреди ночи, нам понадобится точный хронометраж, который также подскажет нам время суток. Это означает, что 555 отсутствует, и нам придется полагаться на микроконтроллер .. Небольшой микроконтроллер стоит менее 50 центов, а работа на кристалле 32,768 кГц потребляет не так уж много (в одном проекте я использовал MSP430F1101 , который потреблял менее 4 мю A), и имеет точность минут в течение месяцев.
Но это означало бы, что вы должны быть осторожны с моментом запуска таймера, а это не очень удобно для пользователя.
Войдите в приемник атомных часов . DCF77 в Европе и WWVB в Северной Америке время вещания в виде 1-секундных импульсов. Микроконтроллер может работать с внутренними часами RC (не обязательно такими точными) и поддерживать время на основе полученного временного кода. Чтобы сэкономить энергию, вы можете заставить приемник атомных часов будить микроконтроллер каждые 1 секунду, чтобы контроллер мог обновлять время и дату и снова переходить в спящий режим. Например, вы можете запрограммировать микроконтроллер на подачу сигнала в 14:00 в первую субботу после тайм-аута.

Тогда есть блок питания . Для микроконтроллерного решения требуется всего несколько мю A, поэтому литиевый элемент CR3032 (хорошо для 500 мАч) может прослужить несколько лет. Но время между событиями настолько велико, что в конце концов батарея сядет на полпути за 6-месячный срок, и срок замены фильтра пройдет незаметно.
Я бы предложил устройство с питанием от сети с небольшим трансформатором; У меня есть куча трансформаторов на 6 В, 0,35 ВА для таких мелких изделий. Поскольку длительный период, например, 6 месяцев, не гарантирует отсутствие отключения электроэнергии, вам понадобится резервная батарея/конденсатор . Здесь, в Бельгии, у нас в среднем менее 1 отключения электроэнергии за 2 года, самое продолжительное, с которым я столкнулся, длилось 2 часа. Я бы не стал использовать батарею, по крайней мере, первичную ячейку. Подойдет перезаряжаемый, но давайте вместо него воспользуемся суперкапом . А 0. мю Устройство работает более 24 часов. Микроконтроллер может контролировать питание в сети, так что, если 6-месячный тайм-аут произойдет во время отключения питания, микроконтроллер может отложить сигнал до восстановления питания.

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


редактировать (относительно комментария Бена)
В прошлом я использовал эти небольшие приемные модули DCF77 от Conrad .

модуль dcf77

Я живу в Европе, поэтому DCF77, для WWVB (Северная Америка) существуют аналогичные модули .
Соединения представляют собой просто источник питания (от 1,2 В до 15 В) и 2 выхода DCF77, один неинвертированный, один инвертированный. Выходы имеют открытый коллектор, поэтому при правильном подтягивании подходит для любого напряжения, на котором работает микроконтроллер.


Дальнейшее чтение:

Хороший подход, но есть огромное вопиющее упущение, когда речь заходит об оборудовании, которое вы будете использовать для получения широковещательных меток времени.
@ Бен - достаточно честно. Добавлено к моему ответу.
Ваша ссылка на "похожие модули" мертва. Не могли бы вы указать номер модели и/или обновить ссылку?

Arduino (или другой микроконтроллер) со сверхточной микросхемой часов реального времени DS3231 . Когда кнопка нажата, время и дата сохраняются в памяти — MCU может циклически проверять дату и время и выключаться, когда будет готов; или при нажатии кнопки он перезагружается и т. д.

+1 RTC точно. DS3234, если вы предпочитаете использовать SPI вместо I2C.
Это отличный чип. Пусть он отслеживает весь утомительный подсчет и время для вас. Гораздо проще, чем считать импульсы и выполнять все преобразования в реальном времени.
2 ppm конечно хорошо, но перебор. Здесь подойдет стандартный кристалл на 20 частей на миллион: я не думаю, что точная минута для замены фильтра для воды важна (если это не посреди ночи).

Сложной частью будет точность на таком большом интервале времени.

Возможно, вы захотите рассмотреть кварцевый генератор в сочетании с каскадом двоичных счетчиков. Примеры см . в техническом описании 4060 .

Я думаю, вы должны использовать таймер 555 для отсчета 16-минутных интервалов, а затем подать его в какую-то схему счетчика, чтобы разделить его. 14-битный счетчик сделает интервал около 6,06 месяца.

Вы не должны использовать 555 с периодом 16 минут; лучше каскадировать два счетчика и запускать 555 на более разумной частоте (кГц или около того). Лучше вообще не использовать 555, если вам важна переносимость.
CMOS 555 легко работает часами. ОП, казалось, предполагал, что точность не является проблемой.
Даже если бы точность не была проблемой, 555, работающие в течение такого длительного промежутка времени, будут настолько неточными, что сделают его по существу произвольным временем. Мне больше нравится решение MSP430, оно дешевое, и поставляемый кристалл будет достаточно точным в течение требуемого промежутка времени.