Главная » Измерение и контроль, Микроконтроллеры » Тахометр — простой измеритель оборотов на базе микроконтроллера ATtiny13A

Тахометр — простой измеритель оборотов на базе микроконтроллера ATtiny13A

Данный тахометр позволяет измерять количество оборотов двигателя в минуту. Измерение основано на подсчете отраженного света от белой метки на валу двигателя.

Аппаратное обеспечение

ИК-светодиод излучает свет, который отражается вращающимся объектом и обнаруживается ИК-фотодиодом. Фотодиод меняет свою проводимость в зависимости от силы отраженного света. Если у вращающегося объекта есть только одна белая полоса, а вся остальная поверхность темная, то фотодиод изменяет свое сопротивление дважды за оборот.

Напряжение в точке соединения фотодиода и резистора сопротивлением 10 кОм поднимается один раз выше и снижается один раз ниже заданного порогового значения, которое задается переменным резистором.

Тахометр - простой измеритель оборотов на базе микроконтроллера ATtiny13A

Если вы хотите использовать для питания устройства «таблетку», помните, что в этом случае будет работать только литий-ионные аккумуляторные батареи типа LIR1220. Обычные батарейки CR1220 не смогут обеспечить достаточной мощности.

Тахометр - фото

Программное обеспечение

ИК-фотодиод подключается к положительному входу внутреннего аналогового компаратора ATtiny13, а переменный резистор для калибровки подключается к отрицательному входу.

Прерывание запускается на каждом заднем фронте выхода компаратора, которое сохраняет текущее значение timer0 и перезапускает таймер. 8-битный таймер расширяется до 16-битного с помощью прерывания переполнения таймера.

Сохраненное значение таймера содержит количество отсчетов за один оборот. Количество оборотов рассчитывается с использованием следующего уравнения:

формула расчета

Полученное значение частоты вращения отображается на OLED-дисплее с шиной I²C. Реализация протокола I²C основана на простом методе передачи битов. Метод был специально разработан для ограниченных в ресурсах контроллеров ATtiny13 и ATtiny10.

Функции OLED адаптированы для модуля SSD1306 128×32 OLED, но их можно легко изменить для использования с другими модулями. В целях экономии ресурсов реализованы только основные функции, необходимые для этого устройства.

Компиляция и загрузка

Поскольку на плате нет разъема ICSP, вам необходимо запрограммировать ATtiny13 либо перед пайкой с помощью адаптера SOP, либо после пайки с помощью зажима EEPROM.

При использовании Arduino IDE

  1. Убедитесь, что вы установили MicroCore .
  2. Перейдите в Инструменты -> Плата -> MicroCore и выберите ATtiny13.
  3. Перейдите в Инструменты и установите следующие параметры платы:
  • Clock: 1.2 MHz internal osc.
  • BOD: BOD 2.7V
  • Timing: Micros disabled
  1. Подключите ваш программатор к компьютеру и к ATtiny13.
  2. Перейдите в Инструменты -> Программатор и выберите ISP-программатор (например, USBasp ).
  3. Перейдите в Инструменты -> Записать загрузчик.
  4. Откройте 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)




Добавить комментарий


.