Данный тахометр позволяет измерять количество оборотов двигателя в минуту. Измерение основано на подсчете отраженного света от белой метки на валу двигателя.
Аппаратное обеспечение
ИК-светодиод излучает свет, который отражается вращающимся объектом и обнаруживается ИК-фотодиодом. Фотодиод меняет свою проводимость в зависимости от силы отраженного света. Если у вращающегося объекта есть только одна белая полоса, а вся остальная поверхность темная, то фотодиод изменяет свое сопротивление дважды за оборот.
Напряжение в точке соединения фотодиода и резистора сопротивлением 10 кОм поднимается один раз выше и снижается один раз ниже заданного порогового значения, которое задается переменным резистором.
Если вы хотите использовать для питания устройства «таблетку», помните, что в этом случае будет работать только литий-ионные аккумуляторные батареи типа LIR1220. Обычные батарейки CR1220 не смогут обеспечить достаточной мощности.
Программное обеспечение
ИК-фотодиод подключается к положительному входу внутреннего аналогового компаратора ATtiny13, а переменный резистор для калибровки подключается к отрицательному входу.
Прерывание запускается на каждом заднем фронте выхода компаратора, которое сохраняет текущее значение timer0 и перезапускает таймер. 8-битный таймер расширяется до 16-битного с помощью прерывания переполнения таймера.
Сохраненное значение таймера содержит количество отсчетов за один оборот. Количество оборотов рассчитывается с использованием следующего уравнения:
Полученное значение частоты вращения отображается на OLED-дисплее с шиной I²C. Реализация протокола I²C основана на простом методе передачи битов. Метод был специально разработан для ограниченных в ресурсах контроллеров ATtiny13 и ATtiny10.
Функции OLED адаптированы для модуля SSD1306 128×32 OLED, но их можно легко изменить для использования с другими модулями. В целях экономии ресурсов реализованы только основные функции, необходимые для этого устройства.
Компиляция и загрузка
Поскольку на плате нет разъема ICSP, вам необходимо запрограммировать ATtiny13 либо перед пайкой с помощью адаптера SOP, либо после пайки с помощью зажима EEPROM.
При использовании Arduino IDE
- Убедитесь, что вы установили MicroCore .
- Перейдите в Инструменты -> Плата -> MicroCore и выберите ATtiny13.
- Перейдите в Инструменты и установите следующие параметры платы:
- Clock: 1.2 MHz internal osc.
- BOD: BOD 2.7V
- Timing: Micros disabled
- Подключите ваш программатор к компьютеру и к ATtiny13.
- Перейдите в Инструменты -> Программатор и выберите ISP-программатор (например, USBasp ).
- Перейдите в Инструменты -> Записать загрузчик.
- Откройте Tacho.ino и нажмите Загрузить .
Диапазон измерения
Диапазон измерения зависит от:
- разрешения таймера / счетчика (здесь 16 бит)
- тактовой частоты таймера / счетчика (CPU clock / prescaler, здесь: 1,2MHz / 64 = 18,75 кГц)
В результате получается диапазон измерения от 17 до 62500 об/мин. Для увеличения диапазона измерения, с одной стороны, тактовая частота таймера должна быть увеличена путем уменьшения предварительного делителя и / или увеличения тактовой частоты процессора, с другой стороны, переменные счетчика и результата должны быть расширены до 32 бит.
Кроме того, процедура OLED_printW должна быть адаптирована так, чтобы 32-битные значения могли отображаться на OLED дисплее.
Точность измерения
Точность измерения существенно зависит от точности внутреннего RC-генератора ATtiny13. Согласно паспорту это +/- 10% при заводской калибровке. Но это можно улучшить до +/- 2% путем ручной калибровки.
Для получения еще лучших значений необходимо использовать точный внешний тактовый сигнал, но это выходит за рамки этого проекта. При высоких значениях числа оборотов в минуту необходимо также учитывать задержку процедуры обслуживания прерывания.
Резюме
Данное устройство задумывалось скорее как образовательный и развлекательный проект, оно дает правдоподобные показания, особенно с откалиброванным осциллятором.
В отличие от коммерческих продуктов, данный тахометр намного меньше по размеру и значительно дешевле. Если вам не нужны сверхточные значения с высоким разрешением, то это устройство для вас окажется полезным измерительным инструментом.
Скачать файлы проекта (42,5 KiB, скачано: 726)