Исправление JamesHolden, (текущая версия) :
Можешь попробовать так. Сначала по проблеме, как принять от 110 вольт до 3 вольт.
Вариант: сигнал пропускаешь через резистор последовательно, после резистора - диод выпрямительный (или даже 1n4148), на GND (параллельно). Диод надо повернуть так, чтобы сигналом он открывался.
Такая цепочка обрежет любое напряжение до уровня около 0.6 вольт - напряжение отпирания диода. Если 0.6 вольт мало - включи два диода последовательно, 1.2 вольта точно будут восприняты как логическая единица.
Это обрежет +U. Если у тебя еще минусовые -U высокого напряжения, тогда надо ставить параллельно этим диодам, такие же но в обратную сторону.
Как считать импульсы. Проще всего подать сигнал на ножку входа таймера в микроконтроллере. В любом микроконтроллере есть таймеры, у которых есть режим счетчика.
То есть каждый пришедший импульс увеличит на 1 число в регистре таймера. Потом просто читаешь это число, обрабатываешь, записываешь в регистр 0 и ждешь дальше, пока придут новые импульсы.
Время счета - миллисекунда как ты хочешь, тогда надо отсчитывать вторым таймером.
Практически у любых микроконтроллеров несколько аппаратных таймеров имеется.
Исправление JamesHolden, :
Можешь попробовать так. Сначала по проблеме, как принять от 110 вольт до 3 вольт.
Вариант: сигнал пропускаешь через резистор последовательно, после резистора - диод выпрямительный (или даже 1n4148), на GND (параллельно). Диод надо повернуть так, чтобы сигналом он открывался.
Такая цепочка обрежет любое напряжение до уровня около 0.6 вольт - напряжение отпирания диода. Если 0.6 вольт мало - включи два диода последовательно, 1.2 вольта точно будут восприняты как логическая единица.
Это обрежет +U. Если у тебя еще минусовые -U высокого напряжения, тогда надо ставить параллельно этим диодам, такие же но в обратную сторону.
Как считать импульсы. Проще всего подать сигнал на ножку входа таймера в микроконтроллере. В любом микроконтроллере есть таймеры, у которых есть режим счетчика.
То есть каждый пришедший импульс увеличит на 1 число в регистре таймера. Потом просто читаешь это число, обрабатываешь, записываешь в регистр 0 и ждешь дальше, пока придут новые импульсы.
Время счета - миллисекунда как ты хочешь, тогда надо формировать вторым таймером.
Практически у любых микроконтроллеров несколько аппаратных таймеров имеется.
Исходная версия JamesHolden, :
Можешь попробовать так. Сначала по проблеме, как принять от 110 вольт до 3 вольт.
Вариант: сигнал пропускаешь через резистор последовательно, после резистора - диод выпрямительный (или даже 1n4148), на GND (параллельно). Диод надо повернуть так, чтобы сигналом он открывался.
Такая цепочка обрежет любое напряжение до около 0.6 вольт - напряжение отпирания диода. Если 0.6 вольт мало - включи два диода последовательно, 1.2 вольта точно будут восприняты как логическая единица.
Это обрежет +U. Если у тебя еще минусовые -U высокого напряжения, тогда надо ставить параллельно этим диодам, такие же но в обратную сторону.
Как считать импульсы. Проще всего подать сигнал на ножку входа таймера в микроконтроллере. В любом микроконтроллере есть таймеры, у которых есть режим счетчика.
То есть каждый пришедший импульс увеличит на 1 число в регистре таймера. Потом просто читаешь это число, обрабатываешь, записываешь в регистр 0 и ждешь дальше, пока придут новые импульсы.
Время счета - миллисекунда как ты хочешь, тогда надо формировать вторым таймером.
Практически у любых микроконтроллеров несколько аппаратных таймеров имеется.