Доброго времени суток читающим!
Собираю счетчик импульсов на Arduino pro-mini на 328 атмеге, а точнее измеритель скорости вращения вентилятора. Для опытов взял обычный 4х пиновый куллер от компьютера на датчике холла.
Задача: просто фиксировать каждое срабатывание датчика холла в куллере.
Подключил его на пин D3 ардуины и настроил на этом пине прерывание по ниспадающему фронту, включил подтяжку к плюсу на пине.
Обработчик в прерывании минимален, просто прибавляет единицу к переменной.
Вопрос дребезга контактов решен фильтром RC, та и нет его в датчике холла.
Так же подключил библиотеку GyverPower.h для организации сна Ардуины. Режим сна глубокий "POWERDOWN_SLEEP"
Период сна задал 1025 мс (~1 сек), разрешение сна для библиотеки задал 16 мс.
Логика следующая: Ардуина спит ~1 сек. и в это время фиксирует импульсы датчика в куллере. Затем Ардуина просыпается, выполняет какие-то действия, в том числе вывод в монитор количества импульсов и обнуляет переменную этих импульсов по прерыванию от куллера. Затем опять уходит в сон на ~1 сек.
И вот столкнулся с проблемой, в активном режиме (НЕ в режиме сна) Ардуина считает большее количество импульсов чем в режиме сна, то есть пока нет сна количество импульсов похоже на реальное количество оборотов, но в режиме сна теряется где-то 20% импульсов, причем глубокий или легкий режим сна на это не влияет.
Помогите понять почему и что с этим делать?
Спасибо.
Собираю счетчик импульсов на Arduino pro-mini на 328 атмеге, а точнее измеритель скорости вращения вентилятора. Для опытов взял обычный 4х пиновый куллер от компьютера на датчике холла.
Задача: просто фиксировать каждое срабатывание датчика холла в куллере.
Подключил его на пин D3 ардуины и настроил на этом пине прерывание по ниспадающему фронту, включил подтяжку к плюсу на пине.
Обработчик в прерывании минимален, просто прибавляет единицу к переменной.
Вопрос дребезга контактов решен фильтром RC, та и нет его в датчике холла.
Так же подключил библиотеку GyverPower.h для организации сна Ардуины. Режим сна глубокий "POWERDOWN_SLEEP"
Период сна задал 1025 мс (~1 сек), разрешение сна для библиотеки задал 16 мс.
Логика следующая: Ардуина спит ~1 сек. и в это время фиксирует импульсы датчика в куллере. Затем Ардуина просыпается, выполняет какие-то действия, в том числе вывод в монитор количества импульсов и обнуляет переменную этих импульсов по прерыванию от куллера. Затем опять уходит в сон на ~1 сек.
И вот столкнулся с проблемой, в активном режиме (НЕ в режиме сна) Ардуина считает большее количество импульсов чем в режиме сна, то есть пока нет сна количество импульсов похоже на реальное количество оборотов, но в режиме сна теряется где-то 20% импульсов, причем глубокий или легкий режим сна на это не влияет.
Помогите понять почему и что с этим делать?
Спасибо.