Мне нужна помощь в разработке очень простого таймера

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

Мой конечный результат состоит в том, чтобы иметь устройство с питанием от USB 5 В, которое горит зеленым светодиодом в течение 25 минут, а затем снова и снова переключается на красный светодиод на 5 минут. Это вовсе не обязательно должно быть точным...+/- 5-7% меня не убьют. В идеале, это должно быть достаточно маленькое устройство, вроде одной из маленьких баночек Altoid, чтобы незаметно сидеть на моем столе. Хотя у таймера обратного отсчета трубки Nixie, управляемого Arduino, есть свое очарование…

Я нашел и перечитал этот q&a для начала, но есть так много вариантов, что я не уверен, с чего мне нужно начать.

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

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

Может ли кто-нибудь указать мне хорошее начальное направление или, возможно, порекомендовать, какая схема на приведенной выше странице будет наиболее подходящей для моих целей, если таковая имеется?

Ответы (4)

Это очень просто сделать для маленького микроконтроллера. Даже самый маленький из них, PIC 10F200, легко справится с этой задачей. Он имеет внутренний генератор, который полностью соответствует вашим требованиям к точности. В противном случае ему нужно будет управлять только двумя выходами, и это нормально, поскольку у него их три.

Хорошая вещь о микро заключается в том, что вы можете немного настроить вещи. Например, через некоторое время вы можете понять, что не всегда замечаете, когда свет меняет цвет. Было бы легко заставить микро мигать новым состоянием с частотой 2 Гц в течение первых 5 секунд или около того.

Итак, если бы я выбрал что-то вроде PIC10F200 или PIC12F675, упомянутых @Leon Heller, как их запрограммировать? Я собираюсь задать отдельный вопрос для этого. :)
и я только что спросил это: electronics.stackexchange.com/questions/64187/…

Подходящий MCU был бы гораздо лучшим решением - меньшее энергопотребление, лучшая точность, более простая конструкция и более простое оборудование. Что-то вроде PIC12F675 было бы идеальным (у него есть заводской калиброванный 1% генератор). Также может быть встроен пьезо-зуммер.

25 минут, вероятно, слишком много для простой схемы 555 из-за токов утечки и тому подобного. Гораздо проще было бы использовать небольшой Arduino (Micro, Nano), особенно потому, что вам не нужно никакого дополнительного оборудования для его программирования. Для Arduino Mini требуется только последовательный USB-интерфейс, их довольно часто можно получить. В противном случае почти любой микроконтроллер может выполнить эту работу, но для этого требуется программист.

Если вы немного посерфуете, вы можете получить довольно хорошие цены на Arduino или совместимые.

http://arduino.cc/en/Main/Продукты

У меня есть Arduino в качестве резервного плана, но я хотел сделать что-то намного меньше или, по крайней мере, с меньшим количеством неиспользуемых контактов. Конечно, есть кривая обучения чему-то другому, кроме Processing и отличного интерфейса plug & play Arduino... выбор, выбор...

Если вы хотите, чтобы он управлялся через USB, самый простой способ — купить один из этих супердешевых преобразователей USB в последовательный порт. При установке преобразователя будет установлен драйвер виртуального COM-порта. Затем вы можете использовать линии управления потоком данных DTR или RTS для переключения светодиода. Этими линиями можно управлять либо из Win32 API, либо из класса SerialPort в .NET.

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