Принципиальная электрическая схема тахометра на микроконтроллере. Простой универсальный тахометр на микроконтроллере ATtiny2313
Предлагаю вариант тахометра на AVR микроконтроллере с большими цифрами на символьном дисплее. Цифры выстраиваются из отдельных сегментов на всю высоту дисплея, что делает показания прибора более читабельными. Рассчитывался на диапазон измерения от 300 до 9999 оборотов в минуту. Но получилось так, что при более высоких (от 10000) об/мин, младший разряд сдвигается за пределы экрана и прибор показывает количество оборотов в минуту, делённое на 10, что тоже неплохо.
Схема построена на микроконтроллере ATmega8. Для вывода показаний тахометра используется распространённый дисплей WH1602 на базе контроллера HD44780 (KS0066).
Для более точного подсчета частоты вращения коленчатого вала, микроконтроллер тактируется от внешнего кварцевого резонатора на 8 MHz. Фьюзы выставляются соответствующие:
Если высокая точность измерения не сильно важна, то можно обойтись без внешнего кварца, при этом фьюзы нужно будет выставить на тактирование от внутреннего RC генератора на 8 МГц. Так как печатная плата разведена для МК в корпусе TQFP-32, на ней, для удобства, предусмотрен ISP разъём для внутрисхемного программирования. В прикрепленном архиве находятся несколько прошивок с различными временными интервалами обновления показаний тахометра на дисплее: 50, 100, 150, 200, 250, 333 и 500 мс (период указан в имени файла прошивки), а также для сигналов входа 1 импульс на оборот и 2 импульса на оборот. Также в архиве находятся файл печатной платы и проект Proteus. После сборки схемы и прошивки микроконтроллера получается такое вот устройство:
На видео показана работа тахометра с прошивкой 1 импульс на оборот и периодом обновления показаний дисплея 50 мс
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8A-AU | 1 | В блокнот | ||
U2 | Линейный регулятор | L7805AB | 1 | L7805AB2T | В блокнот | |
D1 | Стабилитрон | BZV55C4V7 | 1 | BZV55C5V1 | В блокнот | |
D2 | Выпрямительный диод | 1N4001 | 1 | В блокнот | ||
LCD1 | LCD-дисплей | WH1602 | 1 | С подсветкой | В блокнот | |
X1 | Кварцевый резонатор | 8МГц | 1 | В блокнот | ||
RV1 | Подстроечный резистор | 10 кОм | 1 | В блокнот | ||
R1 | Резистор | 20 кОм | 1 | SMD 1206 | В блокнот | |
R2 | Резистор | 100 кОм | 1 | SMD 1206 | В блокнот | |
R3 | Резистор | 10 кОм | 1 | SMD 1206 | В блокнот | |
R4 | Резистор | 47 Ом | 1 | SMD 1206 (47-100 Ом) | В блокнот | |
C1-C2 | Конденсатор | 22 пФ | 2 | SMD 0805 | В блокнот | |
C3-C5 | Конденсатор | 0.1 мкФ | 3 | SMD 0805 | В блокнот | |
C6 | 470мкФ x 16В | 1 | В блокнот | |||
C7 | Электролитический конденсатор | 100мкФ x 10B | 1 |
Тахометр измеряет частоту вращения деталей, механизмов и других агрегатах автомобиля. Тахометр состоит из 2-х основных частей — из датчика, который измеряет скорость вращения и из дисплея, где будет показать значения. Во основном тахометр градуируется в оборотах в минуту.
Сделать такой прибор самостоятельно конечно же можно, предлагаю схему с микроконтроллером AVR Attiny2313. С таким микроконтроллером можно получить 100 — 9990 об /мин. , точность измерения составляет +/-3 оборотов в минуту.
Характеристики микроконтроллера ATtiny2313
EEPROM | 1 Кб |
Аналоговые входы (АЦП) | 0 |
Входное напряжение (предельное) | 5,5 Вольт |
Входное напряжение (рекомендуемое) | 4,5-5 Вольт |
ОЗУ | 128 байт |
Тактовая частота | 20 МГц |
Flash-память | 2кБ |
На выводе 11 установлен резистор с номиналом 4.7 кОм, не изменяйте номинал, а то датчик начнет работать нестабильно при включение по однопроводной схеме.
В отличие других схем, тут использовались 4 транзистора и 4 резистора, таким образом схему упростили.
Схема имеет 8 сегмента в каждом символе, по 5 мА каждый, общая сумма будет 40 мА, следовательно на порты нет большой нагрузки. Посмотрим графики работы устройства.
Из графики можно заметить что ток может достигнуть от 60мА до 80мА на выход пин. Для точной настройки нужно подбирать ограничительные резисторы с номиналом 470 оМ.
Выбор дисплея не критичен, выбирайте любой светодиодный индикатор на четыре цифры, либо собирайте из отдельных светодиодов. Используйте красный индикатор, чтобы на солнце было все хорошо видно. Тахометр питается от 12 вольт.
Кварцевый резистор выбран на частоту 8МHz, для точного и стабильного измерения. Входной фильтр используется для подключения к выводу катушки зажигания.
В прошивке в 17-й строке найдите следующее.
17. #define byBladeCnt 2 //1- две катушки, 2 — одна катушка, 4 — мотоцикл…
Этот параметр нужно менять, если у вас советский автомобиль то поставьте 2, если мотоцикл то 4, а если автомобиль с системой зажигания с двумя катушками то 1.
Ibrahim Kamal (IKALOGIC)
Рассматриваемый бесконтактный тахометр - это компактное устройство на микроконтроллере ATMega48 производства компании , позволяющее измерять высокие скорости вращения бесконтактным способом. Для измерения используется ИК сенсор (оптопара, ИК светодиод и ИК фотодиод в одном корпусе). Вывод данных осуществляется на двухстрочный символьный ЖК дисплей на базе контроллера HD44780 .
Принцип работы
ИК сенсор (оптопара), представляющий собой миниатюрный компонент с ИК светодиодом и фотодиодом в одном корпусе, посылает ИК излучение на вращающийся механизм (вал, ротор двигателя), на котором должна быть небольшая отражающая наклейка.
Благодаря этой наклейке, каждый оборот вала вызывает появление отраженного импульса ИК излучения. Используемый сенсор производства компании имеет маркировку .
Данный сенсор был выбран после тестирования эквивалентных продуктов, так как его корпус обеспечивал оптическую изоляцию передающей и приемной части, а ИК светодиод выдерживает большие токи, что позволяет проводить измерения на больших расстояниях.
Таким образом, используя оптопару мы можем подсчитать время полного оборота вала, а далее, зная время (обозначим это время T в секундах), мы можем вычислит количество оборотов в минуту, используя простое выражение 60/T .
Получение данных от сенсора
Для снижения стоимости устройства и сложности сборки, а также для повышения гибкости системы, мы непосредственно подключим ИК сенсор к микроконтроллеру и программно реализуем всю обработку получаемого сигнала. Сразу стоит заметить, что это не так просто, так как получаемый с ИК фотодиода сигнал содержит шумы, а внешнее освещение постоянно оказывает на него влияние. Таким образом, проблема состоит в том, чтобы разработать устройство с автоматической адаптацией к внешней освещенности и расстоянию до объекта измерения.
На рисунке ниже изображена диаграмма аналогового сигнала от ИК сенсора (фотодиода)
Так как сигнал имеет шумы, при каждом определении наличия и отсутствия импульса (наличие импульса говорит о том, что вал вращается и сенсор «видит» отражающую наклейку), большое количество колебаний «вводит в заблуждение» микроконтроллер. Кроме того, эти факторы не позволяют использовать встроенный в микроконтроллер аналоговый компаратор, и нам необходимо ввести обработку аналогового сигнала перед каждой процедурой подсчета циклов.
Решение было найдено в оценке средней интенсивности, основанную на максимальном и минимальном значении интенсивности сигнала от сенсора, и включением гистерезиса в районе средней интенсивности. Гистерезис используется для предотвращения многократного счета циклов зашумленных импульсов. Рисунок ниже поясняет работу такого алгоритма.
Когда сигнал нарастает от низкого состояния (отсутствует отражение от наклейки на валу) к высокому (отражение ИК импульса), алгоритм возьмет в расчет этот импульс высокого уровня лишь после того, как он пересечет «возрастающий уровень» гистерезиса, и примет в расчет низкий уровень лишь после того, как сигнал пересечет «спадающий уровень» гистерезиса. Такой алгоритм позволяет избежать ошибок вычислений, вызываемых шумным сигналом.
Принципиальная схема устройства
Схемотехническое решение очень простое и компактное (благодаря использованию миниатюрного сенсора), не содержит дорогостоящих компонентов. Питание устройства осуществляется от трех батарей типа AAA.
Как вы, наверное, заметили, отсутствует потенциометр регулировки контрастности дисплея (что также позволяет уменьшить размер устройства). Это возможно благодаря программной реализации алгоритма автоматической подстройки контрастности в зависимости от уровня напряжения питания с применением ШИМ и фильтра низких частот на элементах R3, R4 и C2. Пользователи могут ознакомиться с текстом алгоритма в исходном коде ПО микроконтроллера во второй части статьи.
Разъем JP1 предназначен для внутрисхемного программирования микроконтроллера. Разъем JP2 предназначен для подключения дополнительного пользовательского датчика.
Список примененных компонентов
Обозначение в схеме |
Наименование, номинал |
IC1 | Микроконтроллер ATmega48 |
Q1, Q2 | Транзистор BCW66G |
C1, C2 | 10 нФ |
C4, C5 | 33 пФ |
X1 | Кварцевый резонатор 20 МГц |
R1, R2, R7 | 470 Ом |
R3 | 1 кОм |
R4 | 1.5 кОм |
R5 | 1 МОм |
R6 | 110 Ом |
R8 | 70 Ом |
LED3 | Светодиод |
IR1 | Оптопара TCND-5000 |
B1 | Кнопка |
B2 | Выключатель питания |
JP1 | Разъем внутрисхемного программирования |
JP2 | Разъем расширения |
Демонстрация работы бесконтактного тахометра на микроконтроллере AVR
- где взять прошивку для тахометра
- Прошивка - во второй части статьи (в конце описания ссылка на архив с исходником и HEX)
- большое спасибо
- А разводка печатной платы есть?:confused:
- К сожалению, рисунка печатной платы нет. Я думаю, что не составит много труда ее разработать. Компонентов не много и это несколько транзисторов, диодов, конденсаторов и резисторов.
- Вы не думали сделать в месте с тахометром ещё и спидометр, что-бы использовать авто-мото технике. Схем отдельно тахометров и отдельно спидометров много, а вот сдвоенного аппарата нет ни одного. Если бы у вас получилось, то создали бы очень востребованую конструкцию! Как думаете?
- Возможно, но это не много не тот тахометр. Соглашусь, что такая конструкция будет востребована. Сейчас я в сети встречал разработки по типу бортовых компьютеров, считывание данных по CAN/LIN с бортового компа и предоставление ее в наглядной форме в реальном времени на ЖК дисплеи в автомобиле. Что-то типа этого...
- Печатка здесь http://radioparty.ru/forums/viewtopic.php?f=2&t=39
- хтонибудь пробовал собрать в протеусе
В качестве калибровочной кривой была принята квадратичная зависимость:
y = a \cdot x^2 + b \cdot x +c
где у - обороты теоретические, х - измеренные обороты, а, b, c - коэффициенты в результате регрессии. Графики были выполнены в программе Gnuplot, и поправочные коэффициенты постоянные для двух областей работы системы представлены ниже:
Для диапазона 60-480 об/мин: a= 1.88622104239405e-006 b= 0.999905059864626 c= 0.189869882714651 Для диапазона 480-42000 об/мин: a= 2.54573967680295e-007 b= 0.996905226980814 c= 1.00037985789872
После вставки параметров устройство становится измерителем, а не только индикатором оборотов. В таблице ниже приведены результаты измерений частот генерируемых прибором в зависимости от набора на дисплее. Частота генерируется с ошибкой, равной доли процента от желаемого:
Печатные платы и внешний вид прибора
Программирование fuse-битов микроконтроллера