Главная » Проблемы с управлением » Автомобильный тахометр с ЖК дисплеем на PIC16F628. Простой универсальный тахометр на микроконтроллере ATtiny2313

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

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

Описание работы тахометра на микроконтроллере PIC16F628

После подачи напряжения питания цифровой тахометр немедленно начинает заверять количество оборотов. Кнопкой «SELECT» производится выбор одного из девяти режимов замера оборотов, в зависимости от типа датчика автомобиля.

Первое нажатие «SELECT» вызовет показ текущего значения количества импульсов, которые выдает датчик за один оборот маховика. Изначально установлено 2 импульса за один оборот. Соответственно на индикаторе отобразится Р-2,0. Каждое последующее нажатие «SELECT» приведет к перебору всех имеющихся значений (0,5; 1; 2; 3; 4; 5; 6; 7; 8 имп./оборот)

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

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

В обновленной версии прошивки (tacho_univ_new), добавлена функция 2 секундного теста индикаторов, чтобы выявить возможную их неисправность.

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

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

Предлагаемый вниманию тахометр предназначен для измерения частоты вращения в пределах от 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" Электронная почта

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Тахометр измеряет частоту вращения деталей, механизмов и других агрегатах автомобиля. Тахометр состоит из 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.



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

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

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

Фото от lawyer



Предыдущая статья: Следующая статья:

© 2015 .
О сайте | Контакты
| Карта сайта