Бесконтактный тахометр на PIC16F685. Автомобильный тахометр с ЖК дисплеем на PIC16F628 Описание работы тахометра на микроконтроллере PIC16F628

Тахометр предназначен для измерения оборотов практически любого двигателя. Начиная от мопедного 1-целиндрового двухтактного и заканчивая 16-ти целиндровым 4-х тактным двигателем. Индикация на 4-х разрядном цифровом индикаторе, точность имерения 50
оборотов в минуту.

После включения питания - тахометр сразу начинает измерять обороты. Первое нажатие кнопки - вызовет индикацию установленных количества импульсов на 1 оборот (по умолчанию 2 имп на 1 оборот, что соответствует 4-х тактному 4-х целиндровому двигателю). На дислее будет Р-2,0. Повторное нажатие кнопки, вызовет перебор всех допустимых значений - от 0,5 до 8 импульсов на 1 оборот. Пусть кажется немного странно - 0,5 импулсов, но это всего лишь означает что 1 имульс будет за 2 оборота. После установки нужного количества импульсов, через примерно 5 секунд - прибор запишит изменения в энергонезависимой памяти EEPROM (т.е. при повторном включении питания, не требуе вновь устанавливать количество импульсов), и перейдет в режим измерения оборотов с вновь установленными количеством импульсов.

Печатная плата с двух частей

Фото от lawyer

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

Посидев и поразмышляв, придумал следующее:

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

В общем, не буду тянуть кота за..... :)

Был у меня микроконтроллер на тот момент такой - PIC16F88. Вот что получилось.

Схема устройства:

Я не стал заморачиваться с датчиком ИК сигнала. Хотя при желании можно было (и это для любознательных может послужить стимулом для усовершенствования J) воткнуть вместо фотодиода датчик TSOP1736 (который, собственно, был у меня в наличии на тот момент). Подавать на него 36 кГц можно, в принципе, с генератора, собранного на 555 таймере. Запускать генератор можно как раз сигналом, включающим ИК светодиод. Вот так как то… Причем, эксперименты такие я проводил. При подаче света с частотой 36 кГц на TSOP, его выход давал 5 вольт. При закрытии луча света, выход TSOP сбрасывался в ноль. Но, так как стояла задача собрать автономное устройство с минимальным потреблением, то тратить энергию на датчик и генератор я счел расточительным. К тому же, расстояние до измеряемого объекта было не особо критично. Устраивало расстояние даже в сантиметр. В общем, получилось так.

Питание ЖКИ - прямо с порта PIC, так же, как и питание LM358, для уменьшения энергопотребления в режиме sleep.

Живой платы первого опытного образца, к сожалению не осталось:(. Это была плата без усиления сигнала с фотоприемника. Сигнал поступал сразу в МК.

Выглядела плата так:

Так как уровня сигнала с фотоприемника не всегда хватало микроконтроллеру, то пришлось дополнять схему. Я собрал усилитель на LM358. Теперь схема выглядит именно так, как выглядит.

Подобрав корпус, и адаптировав под него плату, было собрано такое симпатичное устройство:


Принцип работы такой:

На исследуемый объект наносится метка обычным канцелярским корректором. Около 5-7 мм в диаметре. Либо приклеивается метка из белой бумаги.

При включении питания в первый раз, PIC начинает считать длительность периода между импульсами, которые, отражаясь от метки, приходят на фотоприемник. Если импульсов нет в течение примерно 4 секунд, показания сбрасываются на ноль. Если импульсы отсутствуют примерно 20 секунд, прибор переходит в режим пониженного потребления. Выключается индикатор. Для следующего измерения нужно нажать кнопку, подключенную к порту RB0. и прибор "просыпается". Цикл начинается сначала.

Точность показаний - отличная, но не на всем диапазоне. На высоких оборотах показания "плавают”, но незначительно, не критично.

Единственный минус этого прибора - не очень большая дальность. Около сантиметра. Но это решаемо, как я писал выше, с помощью фотоприемника типа TSOP1736 или TSOP1738 и генератора на 555 таймере. Надобность в LM358 в этом случае отпадает.

Еще одно уточнение - материал исследуемого объекта должен быть темным.

Архив с файлом протеуса и исходник лежит .

Вот кстати, нашел старый исходник, в котором реализован принцип подсчета импульсов с помощью модуля захвата, но индикатор там светодиодный. Но под LCD нетрудно переделать, проще будет

Нередко в радиолюбительской практике требуется определить частоту вращения валов различных устройств. Примерами тому служат контроль вращения вентиляторов (в частности, компьютерных), автомобильные приложения, измерение параметров моторов в робототехнике и пр. В большинстве случаев неудобно иметь механическое соединение с измеряемым аппаратом для подключения датчика вращения. Соответственно, бесконтактные измерители имеют несомненное преимущество.

Промышленные бесконтактные тахометры соответствуют требованиям к подобным измерителям, гарантируют достаточную точность измерений и удобство пользования. Однако высокая цена, как правило, является препятствием их использования в любительских условиях. В статье приводится описание тахометра, не уступающего по своим параметрам промышленным образцам и в то же время простого и доступного для повторения и не требующего никакой настройки.

Предлагаемый вниманию тахометр предназначен для измерения частоты вращения в пределах от 50 до 9999 оборотов в минуту. Показания высвечиваются на 4-значном 7-сегментном светодиодном индикаторе. Для связи с вращающимся объектом используется инфракрасный луч, излучаемый соответствующим светодиодом. Регистрация отраженного луча производится инфракрасным фототранзистором.

Для измерений необходимо прерывать луч синхронно с вращением объекта. Для этого на вращающийся объект следует наклеить бумажный датчик, поделенный на черную и белую области. Например, вращающийся вал можно обернуть полоской самоклеющейся белой бумаги, используемой для печати адреса на конвертах или посылках. Половину длины полоски следует закрасить в черный цвет. Если сам вал недоступен, на торец вала можно наклеить картонный кружок, половина которого закрашена в черный цвет. Чередование черных и белых областей при вращении приведет к прерыванию отраженного луча с частотой вращения. Чувствительность прибора достаточна для проведения измерений при удалении фотодатчика от вращающегося объекта до 5 см.

Принцип работы

Тахометр состоит из трех функциональных блоков: инфракрасного излучателя и приемника; усилителя-формирователя принимаемых импульсов и цифрового обработчика сигналов, выполненного на микроконтроллере и имеющего выход на 7-сегментный индикатор. В качестве излучателя/приемника могут быть использованы практически любые инфракрасные светодиоды и фототранзисторы. Нами применены детали в круглых корпусах типа Т1 (диаметр 5 мм) Для исключения влияния излучателя на приемник, оба они заключены в отрезки черной полихлорвиниловой трубки длиной около 2 см. Так как инфракрасный фототранзистор также чувствителен и к видимому свету, трубка на нем в значительной мере препятствует попаданию в него прямых лучей от посторонних источников. В любом случае следует избегать измерений при ярком солнечном или ламповом свете на пути следования луча, так как это может помешать нормальной работе прибора.

Для повышения чувствительности фотодатчика сопротивление в коллекторной цепи транзистора VT1 выбрано достаточно большим, что потребовало применение усилителя с высоким входным сопротивлением. Усилитель выполнен на левом (на схеме) операционном усилителе (ОУ) DA1A, коэффициент усиления которого определяется отношением сопротивлений резисторов R4/R3. Конденсатор С2 в цепи обратной связи DA1A предотвращает самовозбуждение усилителя.

Оба входа DA1A подключены к резистивному делителю R6R7, обеспечивающему половину напряжения питания в общей точке. Выход усилителя DA1A подключен к компаратору DA1B, существенно улучшающему форму выходных сигналов и приближающему их к практически прямоугольной.

Резистор R8 увеличивает гистерезис компаратора, что способствует уменьшению влияния помех на выходе датчика. Работоспособность усилителя-формирователя во многом зависит от параметров ОУ. Он должен обеспечивать полный размах сигнала на выходе при питании напряжением ±2,5 В. Примененный нами ОУ типа TLV2372 , выпускаемый фирмой Техаs Instruments, идеально соответствует поставленной цели.

Сигнал с выхода усилителя-формирователя поступает на аналоговый вход микроконтроллера DD1. Следует отметить, что
микроконтроллер также имеет встроенный компаратор, но нам не удалось добиться его устойчивой работы без самовозбуждения вблизи точки переключения. Вход DD1 сконфигурирован для использования совместно со встроенным в него модулем ССР1. Этот модуль используется для измерения периода входного импульса в единицах эталонной частоты. В качестве последней использована тактовая частота микроконтроллера 2,5 МГц.

Очевидно, частота вращения F связана с периодом вращения Т посредством формулы:

Fоб/мин=(10^6/Тмкс)х60

Если за время измерения периода вращения будет зарегистрировано N периодов эталонной частоты 2,5 МГц, то Tмкс=N/2,5. Таким образом, мы приходим к окончательной формуле:

Fоб/мин=(2,5x10^6/N)x60=15x10^7/N

Это значение вычисляется микроконтроллером и высвечивается на индикаторе, состоящем из четырех 7-сегментных модулей для индикации одной цифры. Нами применены широко распространенные индикаторы SC36-11 фирмы Kingbright, имеющие общие катоды. Соответствующие аноды индикаторов соединены параллельно и подключены к микроконтроллеру через токоограничительные резисторы R10-R16, которые определяют яркость свечения сегментов. Следует отметить, что максимальный по паспорту ток через сегмент, который может обеспечить микроконтроллер, составляет 25 мА, что при падении напряжения на сегменте порядка 2,5 В, определяет минимальную величину резисторов в 100 Ом.

Мультиплексное управление индикаторами обеспечивается микроконтроллером через ключевые полевые транзисторы VT2-VT5. Использование полевых ключевых транзисторов имеет несомненное преимущество перед биполярными - отпадает надобность в базовых резисторах и обеспечивается пренебрежимо малое падение напряжения на ключах. К тому же маломощные полевые транзисторы сейчас не дороже соответствующих биполярных.

Каждый сегмент индикатора высвечивается в течение 4 мс при мультиплексировании, что соответствует частоте обновления всего дисплея порядка 65 Гц, чем полностью исключается его мерцание.

При указанных на схеме сопротивлениях резисторов R10-R16, тахометр потребляет ток порядка 80 мА. Это позволяет питать всю схему через стандартный маломощный регулятор напряжения типа 78L05 с фиксированным выходным напряжением 5 В. На вход устройства можно подавать напряжение порядка 7,5...9 В, например, от любого имеющегося в распоряжении практически каждого пользователя стандартного малогабаритного блока питания, выполненного в сетевом штепселе.

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

Программа микроконтроллера написана на языке Ассемблер и предназначена для компиляции в среде MPLAB, бесплатно предоставляемой фирмой Microchip на ее веб-сайте. Программа достаточно полно прокомментирована для возможной ее модификации, поэтому здесь мы ограничимся лишь ее общим и кратким описанием.

После необходимой конфигурации регистров микроконтроллера программа переходит в основной цикл. Цикл начинается с высвечивания текущего значения частоты вращения, цифра за цифрой, начиная с левого разряда. Незначащие нули слева от первого действительного разряда (при частоте вращения менее 1000 об/ мин) не высвечиваются. Частота обновления показаний дисплея определяется переменной SPEED и при указанном в программе значении составляет около 160 мс. Этим предотвращается быстрое мелькание цифр на дисплее, затрудняющее чтение показаний. В течение этого времени тахометр высвечивает прежнее значение частоты вращения независимо от наличия новых данных измерений.

По истечении контрольного времени индикации старых показаний программа переходит в одно из трех состояний. В первом состоянии производится запрос на новое измерение периода вращения. При этом активизируется ССР1 модуль микроконтроллера и разрешаются прерывания от таймера TMR1, считающего периоды эталонной частоты FOSC/4 Поступление первого импульса от датчика скорости вращения ожидается в течение 0,8 с. В случае не поступления импульса производится повторный запрос, и показания дисплея обнуляются.

После поступления первого импульса от датчика вращения, программа переходит во второе состояние, которое длится до получения второго импульса от датчика В этом состоянии обрабатывается соответствующее прерывание от модуля ССР1 и начинается подсчет числа импульсов эталонной частоты таймером TMR1. Каждое переполнение таймера вызывает аппаратное прерывание, производящее подсчет числа переполнений. Как только это число превзойдет 255 (что соответствует остановке вала или слишком медленному его вращению), на дисплее высвечиваются символы «_ _ _ _», сигнализирующие об ошибке. В этом случае программа переходит в состояние 1, и показания дисплея обнуляются.

Class="eliadunit">

Получение второго импульса от датчика переводит устройство в третье состояние. В этом состоянии происходит вычисление частоты вращения по формуле, проведенной выше. Если полученное значение оказывается меньше 50, высвечивается код ошибки «_ _ _ _». Если же полученное значение больше 10000, кратковременно высвечивается «- - - -». В любом случае, программа переходит в режим 1 с последующим обнулением дисплея

Новое измерение частоты вращения усредняется с последними тремя измерениями перед индикацией (скользящее среднее). Как показывает практика, частота вращения редко остается постоянной и всегда изменяется в небольших пределах. Усреднение способствует уменьшению диапазона отклонений последовательных измерений и облегчению.

Архив для статьи "Бесконтактный тахометр на PIC16F685" Электронная почта

Простой универсальный тахометр на микроконтроллере ATtiny2313

Этот простой тахометр на ATtiny2313 умеет считать количество оборотов любых двигателей, будь то многофазные, многотактные и т.п. Он может быть полезен в авто- мототехнике, для отображения оборотов двигателя. При этом совершенно не имеет значения, сколько тактов или цилиндров имеет двигатель. Его также можно использовать совместно с электронными контроллерами электродвигателей, будь то одно- или трёхфазные.

Схема тахометра очень простая - один микроконтроллер ATtiny2313 и четырёхсимвольный светодиодный индикатор. Транзисторные ключи в целях упрощения отсутствуют. Индикатор можно использовать как с общим катодом, так и с общим анодом - это выбирается в исходнике. Тахометр может подсчитывать обороты как в секунду, так и в минуту, что делает его полностью универсальным.

Дополнительно устройство имеет возможность программного управления яркостью: обычная и пониженная. Если джампер открыт, то устанавливается обычная яркость. При замыкании контактов яркость уменьшается.


Нажмите для увеличения
Перейдём непосредственно к схеме. Если устройство подключается непосредственно к контроллеру двигателя с TTL-уровнями, то импульсы можно подавать просто на вывод 6 микроконтроллера. В противном случае следует выполнить простейший преобразователь уровня на транзисторе.

Для получения и стабилизации напряжения питания +5 вольт применён линейный стабилизатор 1117 с низким падением напряжения для большей экономичности.

В качестве светодиодного индикатора применён индикатор от микроволновки с общим анодом. Так как он уже содержит в себе резисторы на 220 Ом, то на печатной плате они не предусмотрены.


На верхней стороне печатной платы имеются аж 10 перемычек, но они весьма легко устанавливаются.


С обратной стороны установлены SMD-компоненты: это два конденсатора по 22 пФ для кварцевого резонатора, микросхема стабилизатора и фильтрующие конденсаторы.

Кварцевый резонатор для микроконтроллера ATtiny2313 можно устанавливать на 8 или 4МГц, это задаётся в исходнике и управляет прескалером.

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

При прошивке микроконтроллера необходимо установить фьюзы:

CKSEL1=0
BODLEVEL0=0
BODLEVER1=0
SPMEN=0

Исходник написан на языке C в Codevision AVR. Он был позаимствован из другого проекта - тахометра для трёхлопастного вертолёта.

Коротко о настройке: необходимо заранее определить, какое количество импульсов за 1 оборот будет подаваться на вход тахометра. Например, если их источником будет контроллер трёхфазного мотора на LB11880 , то он выдаёт по три импульса на каждый оборот шпинделя. Поэтому в исходном коде следует указать это значение.

Выбор индикатора - с общим анодом или с общим катодом (ненужное значение - закомментировать):

//#define Anode
#define Cathode

Количество тахометрических импульсов на 1 оборот вала:

#define byBladeCnt 2

Выбор частоты кварцевого резонатора - 0x00 для 4МГц, 0x01 - для 8МГц:

#define Prescaler 0x01

Выбор отображения оборотов в минуту:

lTmp = (62500L * 60L * (long)wFlashCnt);

Для отображения количества оборотов в секунду необходимо убрать умножение на 60:

lTmp = (62500L * (long)wFlashCnt);

Для того, чтобы отключить округление значений, нужно закомментировать следующие строки:

If (byDisplay > 4)
{
wRpm++;
R += 10;
}

Так как в этой конкретной конструкции применён весьма специфический индикатор, то разводка печатной платы не прикладывается.

Этот цифровой тахометр пригоден для подсчета количества оборотов практически любого типа двигателя внутреннего сгорания. Погрешность измерения тахометра составляет всего 50 оборотов/минуту. Для показа результата используется четырехразрядное светодиодное табло.
Для настройки режима работы необходимо использовать кнопку «Select». Первое нажатие выводит на табло текущий режим работы. Режимом работы по умолчанию является третий, когда датчик выдает два импульса за оборот маховика. Соответственно, на табло появится надпись Р-2,0.

Каждое последующее нажатие кнопки переключает режим работы тахометра на следующий. Всего их девять: 0.5, 1, 2, 3, 4, 5, 6, 7, 8 имп./оборот соответственно, они устанавливают количество импульсов выдаваемых датчиком за один оборот маховика. Чем выше количество импульсов, тем точнее производится измерение.

После выбора режима работы необходимо подождать 5-10 секунд. За это время тахометр произведет запись режима работы в память микроконтроллера и перейдет в рабочий режим. В дальнейшее тахометр будет сразу при подаче питания переходить в рабочий режим. Если возникает необходимость перенастроить тахометр, то надо нажать кнопку «Select» и произвести настройку тахометра еще раз.

Стоит обратить внимание на параметры и устройство входной цепи. Для конкретного типа зажигания возможны некоторые корректировки номиналов, из-за разных устройств зажигания в различных видах авто. Это необходимо, чтобы тахометр хорошо работал с основными гармониками и не реагировал на высшие гармоники. Без такой корректировки точная работа тахометра невозможна.

Обновленная версия прошивки включает в себя функцию проверки индикаторов. Это необходимо для проведения двухсекундного теста выявления неисправности датчиков.

Прикрепленные файлы:

Прошивка

Простой автоусилитель моноблок на TDA1560Q Автомобильный бездроссельный БП на IRS2153 для ноутбуков и мобильников Внешний USB-разъем в автомагнитоле