esr 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Здравствуйте, подскажите как попроще сделать счётчик числа замыканий контактов? Количество замыканий нужно сохранять внутри схемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 42 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Здравствуйте, подскажите как попроще сделать счётчик числа замыканий контактов? Количество замыканий нужно сохранять внутри схемы. Вот вариант: Берем МК, какой подешевле (например, тиньку какую-нибудь), присоединяем ключ замыкания между пином, который у МК способен вызывать прерывание (например, INT0 или INT1), и землей. Все остальное делается программно. В программе, программируем тот пин на режим чтения и устаналиваем ему подтяжку к высокому уровню. Разрешаем соответствующее прерывание (например, INT0 или INT1) от изменения уровня на этом пине. Если есть возможность, то устанавливаем "полярность", при которой должно происходить прерывание (например, при нисходящем фронте). Теперь при разомкнутом ключе МК сам поддерживает на своем пине высокий уровень, а когда ключ замыкается, но уровень падает до нуля и вызвает срабатывание прерывания. На обработчик этого предывания вешаем процедуру, которая инкрементирует счетчик (прибавляет к нему единичку). Вот и всё. Осталось только решить, должна ли "система" сохранять значение счетчика при отключенном питании. Если должна, то в счетчик придется заводить в EEPROM (энергонезависимой памяти), помня о том, что от каждой записи та необратимо снашивается. Ну и не забыть про индикацию или опрос счетчика. МК в этом деле тоже хороший помощник - может сообщать значение счетчика по кому-нибудь интерфейсу связи по запросу или в момент изменения счетчика. Или на какой-нибудь дисплей то значение постоянно выводить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Все остальное делается программно. А в этой программе еще нужно дребезг контактов устранять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakub_EZ 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Вариантов реализации очень много. Вполне возможно что делать ничего не придётся, а воспользоваться чем то готовым. Обычно такие штучки ставят на фасовочное/весовое оборудование. Это, если медленный вариант счета где думать почти не придётся. Если всё же хотите сваять нечто свое, новое, вариант микроконтоллера с записью в EEPROM пожалуй будет самым простым в реализации Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esr 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Вот вариант: Берем МК, какой подешевле (например, тиньку какую-нибудь), присоединяем ключ замыкания между пином, который у МК способен вызывать прерывание (например, INT0 или INT1), и землей. Все остальное делается программно. В программе, программируем тот пин на режим чтения и устаналиваем ему подтяжку к высокому уровню... Спасибо! У меня вот PIC18F2320 имеется. В нем есть EEPROM, т.е . я наверное на нём смогу сделать? А подтяжка к высокому уровню - это как сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Спасибо! У меня вот PIC18F2320 имеется. В нем есть EEPROM, т.е . я наверное на нём смогу сделать? А подтяжка к высокому уровню - это как сделать? Можете, конечно. Подтяжку можно сделать резистором к питанию - внешним или внутренним. Ну, а потом нужно какое-то устройство соорудить, не один же PIC будет. Он то все посчитает, а результат как будете смотреть? Нужно куда-то выводить его. Питание устройства организовать и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба А подтяжка к высокому уровню - это как сделать? Можно программно - внутренним, а можно и наружным резистором. Помехоустойчивость будет зависеть от величины резистора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esr 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Можете, конечно. Подтяжку можно сделать резистором к питанию - внешним или внутренним. Ну, а потом нужно какое-то устройство соорудить, не один же PIC будет. Но то все посчитает, а результат как будете смотреть? Нужно куда-то выводить его. Питание устройства организовать и т.д. А резистор какой нужно поставить ? А внутренний резистор - это что ? Ну с индикацией вроде проблем не должно быть - там 3 порта имеются, подключу к одному светодтоды, и получу индикатор в двоичнов коде - так ? А вот с питанием - действительно вопрос. Может от батарейки литиевой запитать ? На сколько хватит только? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 42 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба У меня вот PIC18F2320 имеется. В нем есть EEPROM, т.е . я наверное на нём смогу сделать? Наверное можете, только в ПИКах я не разбраюсь, т.к. я - АВРошница :). А подтяжка к высокому уровню - это как сделать? На платформе AVR это делается путем такого парадоксального действия, как посылание единички (высокого уровня) в порт, сконфигурированный не на выдачу, а на прием. Такая ситуация приводит к возникновению подтяжки к питанию (где-то порядка 50 кОм). Но такую подтяжку ничего не стоит сделать самим, т.к. лишний резистор в такой схеме - не проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба А резистор какой нужно поставить ? А внутренний резистор - это что ? Внутренний резистор описан в даташите. Ну с индикацией вроде проблем не должно быть - там 3 порта имеются, подключу к одному светодтоды, и получу индикатор в двоичнов коде - так ? Можете и другие индикаторы поставить... если не хотите тренироваться в преобразовании двоичного кода в уме. А вот с питанием - действительно вопрос. Может от батарейки литиевой запитать ? На сколько хватит только? От частоты зависит. А еще можно в энергосберегающие режимы уходить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба А резистор какой нужно поставить ? А внутренний резистор - это что? Номинал не очень критичен. Выбирайте от 1кОм - до 20кОм. Про внутренние подтягивающие резисторы написано в даташите. Там где описания портов ввода-вывода Ну с индикацией вроде проблем не должно быть - там 3 порта имеются, подключу к одному светодтоды, и получу индикатор в двоичнов коде - так ? Можно и так. А вот с питанием - действительно вопрос. Может от батарейки литиевой запитать ? На сколько хватит только? Зависит от емкости батарейки и потребления устройства. Лучше возмите готовый адаптер питания от 220В, с выходом 5В, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esr 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Наверное можете, только в ПИКах я не разбраюсь, т.к. я - АВРошница :). Ксения, а поскажите - существует ли для этой задачи AVR с маленьким напряжением питания и энергопотребления - 2 вольтf примерно ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 42 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Ксения, а поскажите - существует ли для этой задачи AVR с маленьким напряжением питания и энергопотребления - 2 вольта примерно ? Да, очень многие работают, начиная с 1.8 вольта, только тогда кварц должен быть не быстрее 4 МГц. Например, ATtiny20 (свежачок): Low Power Consumption – Active Mode: • 200 μA at 1 MHz and 1.8V – Idle Mode: • 25 μA at 1 MHz and 1.8V Тут токопотребление даже не миллиамперы, а микро! Один ваш светодиод сожрет тока на несколько порядков больше. И это, наверное, не предел, т.к. я этот даташит наобум открыла. Вот еще ATtiny13A: Low Power Consumption – Active Mode: • 190 μA at 1.8 V and 1 MHz – Idle Mode: • 24 μA at 1.8 V and 1 MHz ATtiny2313A: Low Power Consumption – Active Mode • 190 μA at 1.8V and 1MHz – Idle Mode • 24 μA at 1.8V and 1MHz ATtiny24A: Low Power Consumption – Active Mode: • 210 μA at 1.8V and 1MHz – Idle Mode: • 33 μA at 1.8V and 1MHz И т.д. Похоже, что с буковкой "A" на конце они почти все такие... Короче говоря, смотрите сюда - http://atmel.com/dyn/products/devices.asp?family_id=607#791 и выбирайте из них те, что "picoPower" и поменьше памяти (так дешевле выйдет, а для вашей задачи много памяти не надо). ========================================== P.S. Если грамотно запрограммировать на спящий режим, то будет просыпаться только на момент срабатывания ключа, инкрементировать счетчик и снова засыпать. Тогда среднее токопотребление снизится до уровня "Idle Mode", а при таком токе литиевой батарейки хватит на тот же срок, как если бы она нераспечатанная в упаковке лежала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esr 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Да, очень многие работают, начиная с 1.8 вольта, только тогда кварц должен быть не быстрее 4 МГц. P.S. Если грамотно запрограммировать на спящий режим, то будет просыпаться только на момент срабатывания ключа, инкрементировать счетчик и снова засыпать. Тогда среднее токопотребление снизится до уровня "Idle Mode", а при таком токе литиевой батарейки хватит на тот же срок, как если бы она нераспечатанная в упаковке лежала. Спасибо,попробую сделать! Если что - еще поспрашиваю тут :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 16 сентября, 2010 Опубликовано 16 сентября, 2010 · Жалоба Да, очень многие работают, начиная с 1.8 вольта, только тогда кварц должен быть не быстрее 4 МГц. А в EEPROM они писать могут при таком напряжении питания? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться