Тахометр своими руками на дизель
Тахометр своими руками на дизель
Тахометр ТХ193 на дизель
Здравствуйте!
Собирая панель приборов, добрался наконец до тахометра. Изначально мой двигатель 1KZ был без "мозгов", так что как-то сразу решил, что буду ставить жигулевский. Он и выглядит прилично, и монтируется просто замечательно. Да и остальные приборы у меня тоже советские. Сразу скажу, что на генераторе НЕТ выхода под тахометр (чтобы избежать лишнего флуда).
Пошукав по инету, обнаружил на одном форуме автомобилистов решение одного умельца. Если коротко, то он использовал штатную систему зажигания от 2109 (катушку, коммутатор), а в качестве датчика использовал датчик Холла от девятки же, закрепленный над шкивом. На шкив приклеил 2 магнита. Все просто, все работает.
Но! Есть мнение (и обоснованное), что вся эта городьба с катушкой и коммутатором не нужна, и только занимает место. Достаточно перед входом тахометра поставить усилитель тока (сигнал с Холла слабый) — и тах заработает и так.
Схема предложена элементарная на КТ315г.
Я ее вчера опробовал. Для пробы взял моторчик от насоса на 12В (к крыльчатке приклеил 2 магнита). Правда, питал не от аккума, а от БП на 12В 1,4А. Опыт не удался тах не ожил.
Собственно, вопрос:
Можно ли вообще подключить тах от жиги к дизелю без катушки с коммутатором? Может, есть более простая схема?
Может, кто-то уже это проходил?
#2 ARN
- Из: VLADIVOSTOK
Здравствуйте!
Собирая панель приборов, добрался наконец до тахометра. Изначально мой двигатель 1KZ был без "мозгов", так что как-то сразу решил, что буду ставить жигулевский. Он и выглядит прилично, и монтируется просто замечательно. Да и остальные приборы у меня тоже советские. Сразу скажу, что на генераторе НЕТ выхода под тахометр (чтобы избежать лишнего флуда).
Пошукав по инету, обнаружил на одном форуме автомобилистов решение одного умельца. Если коротко, то он использовал штатную систему зажигания от 2109 (катушку, коммутатор), а в качестве датчика использовал датчик Холла от девятки же, закрепленный над шкивом. На шкив приклеил 2 магнита. Все просто, все работает.
Но! Есть мнение (и обоснованное), что вся эта городьба с катушкой и коммутатором не нужна, и только занимает место. Достаточно перед входом тахометра поставить усилитель тока (сигнал с Холла слабый) — и тах заработает и так.
Схема предложена элементарная на КТ315г.
Я ее вчера опробовал. Для пробы взял моторчик от насоса на 12В (к крыльчатке приклеил 2 магнита). Правда, питал не от аккума, а от БП на 12В 1,4А. Опыт не удался тах не ожил.
Собственно, вопрос:
Можно ли вообще подключить тах от жиги к дизелю без катушки с коммутатором? Может, есть более простая схема?
Может, кто-то уже это проходил?
#3 nvc
- Из: Black Sea coast
- Судно: Leisure17+Seal 36
Собственно, вопрос:
Можно ли вообще подключить тах от жиги к дизелю без катушки с коммутатором?
Может, есть более простая схема?
#4 Йети
- Из: Усть-Каменогорск
- Судно: катер
- Название: Qween Mary 3
Все получилось, тах заработал!
Схема на простейшем усилителе (кт819г), в качестве катушки — обмотка любого 12В реле.
Единственное, что пожалуй стоит транзистор закрепить на радиаторе, тк греется. Правда, он и должен греться. Но с другой стороны, я и продолжительных испытаний не проводил, так только, по 5-30 сек.
Таким образом, можно мерить обороты с помощью ТХ193 от ВаЗ 2106 практически на любом месте, главное, питание 12В, и место для крепления магнитов.
Отдельное спасибо Николаю Бурдо
Прикрепленные изображения
#5 vladkant
- Из: Астрахань
- Судно: полутонник
- Название: АРГО
#6 Йети
- Из: Усть-Каменогорск
- Судно: катер
- Название: Qween Mary 3
#7 anchutka
- Из: Домодедово
#8 катерщик
- Из: Ростов на Дону
- Судно: катер
#9 УМКА
Рулевой 3-го класса
- Из: Moskva
- Судно: Прогресс-4
Все получилось, тах заработал!
Схема на простейшем усилителе (кт819г), в качестве катушки — обмотка любого 12В реле.
Единственное, что пожалуй стоит транзистор закрепить на радиаторе, тк греется. Правда, он и должен греться. Но с другой стороны, я и продолжительных испытаний не проводил, так только, по 5-30 сек.
Таким образом, можно мерить обороты с помощью ТХ193 от ВаЗ 2106 практически на любом месте, главное, питание 12В, и место для крепления магнитов.
Отдельное спасибо Николаю Бурдо
#10 kaa39518
- Из: ______________
- Судно: _____________
А зачем магниты? Датчику Х. нужна металлическая шторка
Сообщение отредактировал kaa39518: 04 сентября 2009 — 00:07
#11 Йети
- Из: Усть-Каменогорск
- Судно: катер
- Название: Qween Mary 3
#12 pivo2006
- Из: Харьков
- Судно: Мотодельта
А кто может скинуть схемку на трахометр ваз 2106 на дизель от генератора да и вообще схема на кт 818 или на 819 с уважением Валерий (anchutka 6531)
#13 SKR
- Из: Москва
- Судно: нет
Здравствуйте!
Собирая панель приборов, добрался наконец до тахометра. Изначально мой двигатель 1KZ был без "мозгов", так что как-то сразу решил, что буду ставить жигулевский. Он и выглядит прилично, и монтируется просто замечательно. Да и остальные приборы у меня тоже советские. Сразу скажу, что на генераторе НЕТ выхода под тахометр (чтобы избежать лишнего флуда).
Пошукав по инету, обнаружил на одном форуме автомобилистов решение одного умельца. Если коротко, то он использовал штатную систему зажигания от 2109 (катушку, коммутатор), а в качестве датчика использовал датчик Холла от девятки же, закрепленный над шкивом. На шкив приклеил 2 магнита. Все просто, все работает.
Но! Есть мнение (и обоснованное), что вся эта городьба с катушкой и коммутатором не нужна, и только занимает место. Достаточно перед входом тахометра поставить усилитель тока (сигнал с Холла слабый) — и тах заработает и так.
Схема предложена элементарная на КТ315г.
Я ее вчера опробовал. Для пробы взял моторчик от насоса на 12В (к крыльчатке приклеил 2 магнита). Правда, питал не от аккума, а от БП на 12В 1,4А. Опыт не удался тах не ожил.
Собственно, вопрос:
Можно ли вообще подключить тах от жиги к дизелю без катушки с коммутатором? Может, есть более простая схема?
Может, кто-то уже это проходил?
Тахометр для дизельного двигателя – выбираем себе помощника
В отличие от других устройств, устанавливаемых на автомобили, тахометр для дизельного двигателя подключается через генератор. Сам прибор предназначен для определения, с какой частотой вращается коленчатый вал. Иначе говоря, тахометр показывает число оборотов за определенный промежуток времени.
Тахометр для дизельного двигателя – принцип работы
Видеть показания тахометра можно прямо во время движения, он располагается возле спидометра на панели приборов. Для снятия показаний используются различные типы датчиков, в зависимости от этого способ измерения может быть бесконтактный или контактный. Тахометры используются не только в автомобилях, но и в других устройствах, где требуется контроль над скоростью вращения.
Тем не менее, именно в авто этот прибор нашел самое широкое применение. Ни одна современная машина не обходится без этого устройства, позволяющего контролировать работу двигателя и своевременно осуществлять переключение передач. Все это помогает увеличить срок службы, способствует экономии топлива, обеспечивает безопасность движения.
Существует очень много разновидностей этих устройств, которые применяются в определенных случаях. Они могут быть стационарными и портативными, а также электрическими, магнитно-индукционными, центробежными и электронными. Самый первый тахометр был центробежным, где энергия, поступающая от механизма, передается через ось. Воздействие на стрелку в каждом случае производится по-разному, в зависимости от конструкции прибора.
Тахометр для двухтактного двигателя – сферы применения и выбор
Следует отдельно рассмотреть электронный тахометр для двухтактного двигателя. Одной из разновидностей такого прибора является водонепроницаемый вариант, применяемый в мотоциклах, скутерах, снегоходах и прочих ТС, где стоят двухтактные моторы. Практически, это то же самое, что и тахометр для одноцилиндрового двигателя, определяющий срок его службы, а также периодичность технического обслуживания, такого как регулировка клапанов, замена масла, свечей зажигания и прочее.
Установка такого прибора на механизм очень проста. Здесь не требуется отдельная батарея, благодаря встроенному аккумулятору. Подключение производится напрямую к проводу одной из свечей зажигания. Разрешение такого прибора составляет 0,1 часа, он может считать максимально до 10 тысяч часов, а затем производится сброс.
Циферблаты тахометров отличаются размерами. Например, прибор диаметром 125 миллиметров чаще всего используется в спортивных автомобилях, где пилот должен постоянно контролировать режимы работы двигателя и особенно величину его крутящего момента. При достижении определенного количества оборотов срабатывает специальная лампа-вспышка, после чего следует переключение на очередную передачу. Такие большие тахометры занимают много места и частично закрывают обзор.
У более удобных устройств размеры несколько меньше и составляют уже 95 мм. Наиболее распространенным является размер в 52 мм, который позволяет устанавливать прибор в любом месте на панели тех машин, где собственный тахометр не предусмотрен конструкцией.
Шкала тахометра и его дополнительные возможности
Конструкция каждого тахометра в авто предусматривает работу с конкретным числом цилиндров. Основная масса этих устройств работает с двигателями на четыре цилиндра. В отдельных моделях существует возможность переключения на необходимое количество цилиндров. В зависимости от числа оборотов двигателя градуировка шкалы имеет разное значение и может достигать от 8 до 11 тысяч оборотов в минуту.
Отдельные виды тахометров, оборудованные вспышкой, могут запоминать наибольшее количество оборотов двигателя. В состав тахометра могут быть дополнительно включены и другие приборы, отображающие работу мотора. Такие устройства называются мультиприборами. Таким образом, тахометр является очень нужным и полезным устройством, от которого во многом зависит стабильная работа двигателя и общие показатели эксплуатации автомобиля.
Установка тахометра своими руками: доступная инструкция
Тюнинг
Водитель, который заботится о своей машине, должен иметь тахометр среди других устройств, которые помогают в правильной работе автомобиля. Если нет обычного устройства, вы должны их установить. Статья дает свои типы, инструктирует, как правильно подключить тахометр к дизелю и бензиновому двигателю.
Разновидности тахометров
Тахометр указывает количество вращения коленчатого вала, помогая определить наилучший крутящий момент для сдвига. Это позволяет продлить срок службы приводного блока и его компетентную операцию, поскольку свойства мощности и тяговки двигателя зависят от количества коленчатого вала. Кроме того, его можно использовать для точно отрегулирования карбюратора и других важных устройств холостого хода.
Этот счетчик может быть аналоговым или табло со стрелками и цифрами. Когда стрелка приближается к красной линии, водитель должен изменить зубчатую передачу на более высокую. На цифровом устройстве небольшой экран отображает информацию для драйвера (видео автор — Armadil).
Условно, эти устройства могут быть разделены на два типа:
- Обычно. Они устанавливаются на фабрике, который производит транспортное средство. Поместите его на торпеду.
- Руководство по эксплуатации. Это альтернативный вариант, если заводского устройства нет. Удаленные устройства имеют более точные показания, поэтому их можно использовать для проверки правильности обычных показаний. Иногда они устанавливаются как тюнинг.
Сборка тахометра может осуществляться как на бензиновом двигателе, так и на дизельном устройстве.
Подключение на бензиновый двигатель
Подключение устройства отличается на двигателе с инжектором и карбюратором. Инжектор подключен к контроллеру ECU. В этом случае мы берем «массу» в организм, и мы подключаем положительный кабель к клипе поршня.
Устройство имеет два выхода: человек переходит на датчик положения коленвала, а другой к ECU. Таким образом, он читает количество оборотов от контроля блока управления. Ниже приведены распределительную диаграмму тахометра из BSZ.
Ниже приведены инструкции для подключения электронного тахометра к бензиновому двигателю:
- Прежде всего, в зависимости от типа устройства, вы должны установить их в то место, где это будет.
- Затем подключите установленный тахометр. Минус кабель обычно черный и соединен с массой.
- Красный кабель должен быть подключен к плюсу переключателя зажигания, к которому напряжение 12 В поставляется во время системы зажигания (NW).
- Третий провод может быть любым цветом — это вход устройства. Это связано в зависимости от SP. Если SPZ контакт, устройство подключается к трамвайной вилке, в случае бесконтактного корпуса SPZ, он должен быть подключен к переключанию напряжения.
- Если автомобиль оснащен огнями, устройство должно быть подключено к коммутатору парковки в автомобиле.
Подключение прибора к дизелю
Владельцы дизеля должны знать, как установить тахометр на дизель, потому что его соединение имеет нюансы. С этой целью следует понимать принцип его операции. Он читает, в случае бензинового привода импульсов, достигающих катушки зажигания, а в случае дизеля — от штифта «в генераторе».
В случае дизельных двигателей лучше установить устройство, поместив машину на контрольный канал или на лифте. Подключение электронного тахометра происходит в шагах. На первом этапе снимите защитный чехол, избегаяпопадание грязи.
Затем найдите клемму, помеченную буквой «W» на генераторе, и подсоедините провод тахометра к этой клемме. Если вы не можете найти зажим, вам придется разобрать генератор.
После демонтажа подключите один из трех проводов от обмотки к встроенному выпрямителю к заранее подготовленному проводу. Изолируйте точку подключения и выведите кабель наружу. Затем соберите генератор в обратном порядке. Кабель, идущий от генератора, следует подключить к счетчику.
Для точного чтения замкните контакт масляного насоса.
Тахометр легко установить благодаря приведенным выше инструкциям.
Проверка работоспособности тахометра
С приведенными выше советами по сборке тахометра все понятно. Осталось найти причины неисправности счетчика. Иногда водители могут наблюдать ситуацию, когда стрелка начинает раскачиваться из стороны в сторону.
Причин неисправности может быть несколько:
- Когда двигатель работает в течение длительного времени, возникающие вибрации могут повредить датчик;
- Неисправности в проводке: клеммы могут отсоединиться, контакты могут окислиться, может быть повреждена изоляция.
Эти повреждения можно обнаружить при визуальном осмотре и отремонтировать. Если датчик поврежден, его необходимо заменить.
Как подключить автомобильный тахометр своими руками?
Главная функция тахометра в машине – это определение правильной передачи, что положительно влияет на срок службы двигателя. В большинство автомобилей при сборке встраивают аналоговый тахометр. Водитель смотрит на приближающуюся к красной черте стрелке и знает, когда необходимо переключиться на повышенную передачу. Не во всех автомобилях есть удовлетворяющий владельца тип прибора, поэтому просто необходимо разобраться в вопросе какие есть и как подключить тахометр.
Виды тахометров Как подключить тахометр через ЭБУСхема подключения тахометра на бензиновый двигательКак подключить тахометр к дизелюКак проверить тахометр на работоспособность
Знаете ли вы? Термин «тахометр» произошёл от греческого τάχος — скорость и μέτρον– мера.
Есть два вида тахометров: цифровой и аналоговый.
Первый выглядит как маленький экран, на котором водитель может видеть все необходимые ему данные во время движения.
Второй проще и выглядит, как табло со стрелками и значениями.
Выносной тахометр устанавливают на передней панели автомобиля. Для большего удобства размещения, у такого устройства имеется ножка для закрепления на панели. Выносные цифровые тахометры хороши для контроля оборотов холостого хода. Их показания имеют меньше погрешностей, поэтому с помощью такого прибора можно проверять работу штатного тахометра. Кроме того их стильный вид придаёт машине элегантности.
Штатный тахометр встраивается в приборную панель автомобиля. Этот прибор более удобен, так как водителю проще воспринимать движение одной стрелки, а не нескольких показателей во время движения. Штатный тахометр чаще используется в автомобилях, а производители электронных приборов выпускают наборы для самостоятельной комплектации машин.
Важно! Измерительные приборы выпускаются соответственно марке автомобиля. Показания не родного механизма будут не верными.
Как подключить тахометр через ЭБУ
Если у вашей машины не карбюраторный двигатель, а инжектор тахометр подсоединяется не к зажиганию. В этом случае вам нужно подключать к контролёру блока управления двигателем. Схема подключения тахометра проста: отведите массу на кузов (землю), плюс от прибора подведите к плюсу зажигания. Тахометр имеет два входа: первый идёт на блок управления, второй — на датчик положения коленвала. Прибор, подключённый к ЭБУ, будет считывать импульсы непосредственно с контролёра блока управления.
Схема подключения тахометра на бензиновый двигатель
Перед установкой тахометра на карбюраторный двигатель, изучите инструкцию, прилагаемую к прибору. Если её нет, осуществляйте установку согласно следующим действиям:
Закрепите механизм на его месте (место расположения определяется видом устройства).Чёрный провод подсоедините к массе (кузову) автомобиля.Провод красного цвета соедините с клеммой замка зажигания, подающей напряжение 12 Вт во время работы системы зажигания.Третий провод может быть любого цвета. Поскольку система зажигания есть контактная и бесконтактная, рассмотрим, куда подключать тахометр в обеих. При контактной системе – прибор подключается к прерывателю трамблёра. Во второй системе – к коммутатору напряжения.
Если в машине предусмотрена подсветка дисплея, тахометр подключается к имеющейся для этого клемме в замке зажигания.
Как подключить тахометр к дизелю
Прежде чем подключать, разберёмся, от чего работает тахометр на дизеле. Принцип работы электронного прибора — это считывание показаний импульсов, посылаемых клеммой, которая располагается в генераторе.
Поскольку процесс трудоёмкий, проводить его нужно на смотровой яме. Первый пункт работы – демонтаж защитного кожуха генератора, старайтесь избежать попадания грязи. Вторым этапом идёт подключение тахометра к генератору на дизеле. Для этого на корпусе генератора найдите клемму обозначенную буквой «W» и подключите к ней выход прибора.
Внимание! Обязательно нужно замкнуть контакт, отходящий от маслонасоса. Если этого не сделать тахометр может «врать».
Случается, что выше обозначенную клемму найти невозможно. В этом случае произведите разборку генератора. Один проводов, соединяющих обмотку и выпрямитель, соедините с кабелем тахометра. Заизолируйте провода и соберите генератор в обратном порядке.
Установка измерительного прибора большой сложности не представляет, но без каких либо знаний, как устроен дизель, как работает тахометр на дизеле, без малейших понятий о ремонте автомобиля, лучше обратиться к профессионалам.
Как проверить тахометр на работоспособность
Мы разобрались, как подключить тахометр на дизельный и карбюраторный двигатель. Теперь рассмотрим причины поломок устройства.
Вы заметили проблемы в работе измерительного прибора, например прыгающую в разные стороны стрелку. Может быть несколько причин поломки. При длительной работе двигателя возникает вибрация, которая может привести к поломке дисплея. Следующей причиной может быть окисление контактной группы электропроводки, повреждение её изоляции или отсоединение от наконечников. Всё это видимые причины, которые необходимо сразу же устранить. Если поломан сам датчик – нужна замена. В случае, когда самостоятельная диагностика не выявила причин, стоит обратиться в автомастерскую.
Автомобильный стрелочный тахометр для новичка или немного шаманства с фиксированной точкой на AVR
Всем привет! Хотелось бы поделиться с сообществом своей историей модернизации тахометра ТХ-193
Неделю назад обратился ко мне один человек с довольно нестандартным заданием — нужно было обеспечить работу древнего тахометра ТХ-193(ВАЗ 2106) с современным двигателем ВАЗ21126(Приора), имеющем систему зажигания с индивидуальными катушками на каждый цилиндр, а значит просто подключить ТХ-193 к катушке зажигания уже не получится. К тому-же заказчик хотел повысить эксплуатационные качества прибора, оставив не тронутым его внешний вид и дизайн. В общем дело кончилось тем, что я взялся выпотрошить электронную начинку прибора и разработать свою, с блэкджеком и шлюхами. Информацию о частоте вращения коленчатого вала тахометр теперь будет получать от ЭБУ Январь 7.2, для чего в последнем имеется специальный вывод.
Под катом фото, видео, схема, исходники и много текста, повествующего о логарифмах и о том как правильно масштабировать данные и отделаться от запятой.
Хард
Начнем с устройства ТХ-193. Механическая часть прибора представляет из себя миллиамперметр классической конструкции, с постоянным магнитом и подвижной катушкой, приводящей в движение стрелку.
Для разработки схемы по сути достаточно было знать о миллиамперметре лишь то, что при токе порядка 10мА стрелка отклоняется до предела, а сопротивление обмотки равно примерно 180Ом. В качестве мозга был выбрал контроллер ATtiny2313A славной фирмы Atmel, тактируемый от внешнего кварцевого резонатора на 16МГц. Питание прибора осуществляется от бортовой сети автомобиля, а значит по ГОСТу он должен выдерживать «бороду» до 100В и стабильно работать в диапазоне от 9-15В. Ввиду незначительного потребления(несколько десятков миллиампер) было принято решение использовать линейный стабилизатор 7805 с индуктивным фильтром и сапрессором для защиты от импульсных помех. Прибор собирался из того, что было под рукой, поэтому в готовом изделии применяется мощная версия 7805, хотя вполне хватило бы и 78L05 на 100мА.
Миллиамперметром контроллер управляет, естественно, используя ШИМ. Для чего был задействован 16ти разрядный таймер в режиме Phase and Frequency Correct PWM.
Информация о частоте вращения коленчатого вала передается от ЭБУ в виде импульсов от 0 — 12В. Активный уровень низкий. 2 импульса за 1 оборот коленчатого вала. Для захвата этих импульсов используется внешнее прерывание INT0 и соответствующая цепочка из RC фильтра, подтяжек и защитных диодов. В общем и целом схемотехника устройства довольно типична и я с удивлением обнаружил, что только что так много написал о ней. Но да не судите строго, первая статья всё-таки.
Собранный прибор без циферблата теперь выглядит так:
Софт
На самом деле ещё до вычерчивания схемы я оперативно собрал всё это дело на макетке, взяв контроллер в DIP корпусе и сразу же принялся махать стрелкой))
В общем то софт оказался немного интереснее харда.
Начнем с общей архитектуры:
Таймер 0 тикает с частотой 250кГц, а значит период тика = 4мкс прерывание по переполнению происходит с частотой 250кГц / 256 = 0.976кГц
а значит прерывание происходит один раз в 1024мкс. Можно было заморочиться и подогнать это дело ближе к одной миллисекунде путем обновления счетчика таймера в прерывании, но в данной задаче это не к чему. Т.е. мы можем измерять время с точностью 4мкс, что вполне достаточно для заданной точности прибора.
Таймер 0 у нас не только отсчитывает время, но ещё и выставляет флажки для запуска тех или иных задач с определенной периодичностью.
Задачи у нас две. Давать отмашку прерыванию INT0 на измерение периода импульсов на входе и изменять положение стрелки.
Таймер 1 тикает с частотой 16мГц, но т.к. он 16ти битный и используется режим Phase and Frequency Correct PWM — итоговая частота ШИМ оказывается очень небольшой и составляет что-то около 122Гц. Это потому, что таймер тикает сначала вверх, а потом вниз. Зато имеем тру 16битный ШИМ и можем очень точно рулить стрелкой! В даташите найдутся все подробности.
Механика, к слову сказать, оказалась отвратительного качества, плавно двигать стрелку было не реально из-за повышенного трения в механизме, который пришлось для начала хотя-бы смазать трансмиссионным маслом. Но это уже детали.
Была составлена таблица соответствия показаний прибора с соответствующим значением регистра таймера в ШИМ попугаях.
В исходниках это дело называется GAUGE_TABLE и вынесено по привычке в отдельный файл.
Далее было обнаружено, что если просто одним махом изменить ток в цепи амперметра для того, чтобы к примеру передвинуть стрелку на 1000 вперед, то она совершит два-три-четыре колебания в районе целевой отметки, что было совершенно неприемлемо и на что заказчик обращал особое внимание. Дело в том, что эти тахометры изначально имеют такую проблему и несколько раз газанув в такт колебаниям можно заставить стрелку раскачиваться со значительной амплитудой(более половины шкалы!).
С этим нужно было что-то делать. Идея моя заключалась в том, чтобы подводить стрелку к отметке серией более мелких шагов, постепенно приближаясь к цели. Собственно говоря эта часть и является самой интересной и полезной для новичков, т.к. требует некоторой сноровки. Ведь имея дело с микроконтроллером вызов log2() в цикле является, мягко говоря, не самой удачной идеей. К тому-же 8битная архитектура накладывает ещё больше ограничений. Ну а про «плавучку» (floating point) и вовсе нужно забыть. Но все эти трудности, как всегда, приводят лишь к более глубокому пониманию процессов и расчётов, производимых процессором.
Текста почему-то получается всё больше, но не остановиться более подробно на этом моменте я просто не могу!
Итак, понятно, что нам нужна логарифмическая прогрессия. Шаг изменения тока в цепи миллиамперметра должен уменьшаться по мере приближения к целевой отметке. Ресурсы на вес золота, а значит только табличный метод. Точек тоже по возможности минимум.
Начнем с построения логарифмической таблицы.
Всё очень просто: запускаем excel и несколькими взмахами мыши получаем 50 значений логарифма по основанию 2 для последовательности от 1 до 50. Для наглядности строим красивый график.
Прекрасно! То, что нужно! Но во-первых — точек аж 50, а во вторых все числа с плавающей точкой. Это нам никак не подходит!
Поэтому отбираем из имеющегося массива 5 точек с шагом 10. Получаем что-то вроде этого:
Уже лучше. Последовательное приближение к цели всё ещё сохраняется, но точек в 10 раз меньше.
Дальше нужно нормировать полученный набор. Т.е. сделать так, чтобы все значения находились в диапазоне от 0 до 1. Для этого просто разделим каждый элемент на 5,64385618977472 (максимальное значение нашего массива).
Таким образом получаем всё ту-же логарифмическую зависимость, но уже в на много более удобном для дальнейших вычислений виде. Такую таблицу уже можно довольно легко применять, если бы не точка после нуля. Но с этим мы тоже довольно легко разберемся.
Теперь я хочу, чтобы мы приняли красивое значение 1024 за единицу и снова пересчитали нашу таблицу. Получаем
Как видим, форма графика не изменилась, но цифры теперь укладываются в 16битный диапазон и нет никаких дробей.
В исходниках полученный массив называется logtable[]
Масштабирующий коэффициент(если можно его так назвать) 1024 появился здесь не случайно и нужно очень хорошо понимать почему именно 1024.
Во-первых это степень двойки и выбрана она потому, что дорогие операции деления и умножения на степень двойки можно заменить дешевым сдвигом влево/вправо и было-бы глупо не использовать такую возможность.
Во-вторых коэффициент должен выбираться и исходя из масштабов тех данных, к которым он будет применяться. В нашем случае это значения регистра 16ти разрядного таймера, который управляет заполнением ШИМа. Экспериментально было выявлено, что неудовлетворительные колебания стрелки обнаруживаются даже при её резком смещении на 200 об/мин. Т.е. если нужно двинуть стрелку на более чем
200 об/мин — потребуется сглаживание. Из таблицы GAUGE_TABLE видно, что соседние ячейки в среднем отличаются на 4000 ШИМ попугаев, что соответствует примерно 500 об/мин на шкале прибора. Не трудно прикинуть, что в цифрах смещение стрелки на 200об будет 4000 / 2,5 = 1600 ШИМ попугаев.
Следовательно масштабирующий коэффициент нужно выбрать таким образом, чтобы во-первых он был как можно бОльшим, потому что иначе мы теряем разряды и точность, а во-вторых как можно меньшим, чтобы не заставлять нас переходить от 16ти разрядных переменных к 32х разрядным и не расходовать ресурсы понапрасну. В итоге выбираем наименьшую степень двойки, которая меньше 1600 и обеспечивает достаточную точность. Это и будет 1024.
Этот момент очень важен. Я сам до сих пор порою испытываю трудности с выбором правильных коэффициентов и размеров переменных.
Ну а дальше уж пошло-поехало. Находим в коде реализацию display_rpm() и видим, что для определения конкретного значения в ШИМ попугаях используется таблица GAUGE_TABLE[] и предположение, что между соседними отметками шкала линейна. Для организации изменения тока по логарифмическому закону введен массив на 5 точек pwm_cuve[] в котором содержится набор значений, который нужно последовательно отнять или прибавить(в зависимости от направления движения стрелки) от pwm_ocr1a_cur_val чтобы заставить стрелку двигаться плавно и чётко.
каждый шаг формируется путем умножения значения pwm_delta на коэффициент из нашей таблицы logtable[];
Перед умножением значение предварительно масштабируется путем деления на 1024.
Конечный расчётный пункт назначения стрелки target_pwm записывается в pwm_cuve[] как есть, потому что из-за проблем с округлением и из-за ограничения размерности переменных 16битами точное значение в результате расчётов будет там образовываться весьма не часто, поэтому приходится обеспечить гарантию того, что стрелка окончит свой путь в заданной точке.
В общем то всё вышесказанное по сути заключено в одной строке
pwm_cuve[ table_i ] = pwm_ocr1a_cur_val + (pwm_delta / LOG_TABLE_MAX * logtable[ table_i ]);
Далее главный цикл по сигналу от таймера0 раз в PWM_UPD_PERIOD выгребает значения из pwm_cuve и присваивает их переменной pwm_ocr1a_cur_val, значение которой в прерывании будет присвоено регистру OCR1A, что немедленно приведет к изменению заполнения ШИМа и изменению тока в цепи миллиамперметра.
Вот, собственно и почти все хитрости, за исключением перевода периода, представленного в тиках таймера в частоту вращения коленчатого вала, которая измеряется в об/мин.
Сократилось всё это до engine_rpm = (uint16_t)(15000000UL / (uint32_t)rot_time);
О том как получилась эта цифра мы можем поговорить или не поговорить в следующий раз, потому что и без того текста получилось не мало и явно не многие дочитают даже до этого места.
Честно гвооря в коде применено ещё несколько «хитростей», которые могут показаться новичкам не совсем очевидными. Если кому-то захочется подробнее разобраться — вэлкам в каменты и лс.
Немного видео, как и обещал
На точность показаний не обращайте внимание, стрелка нормально не одета + циферблат не закручен.
Движение стрелки с шагом 1000об/мин одним скачком.
Дело ясное, что в реальности скачков в 1000об/мин не будет и те незначительные перелеты стрелки, которые всё-же можно наблюдать на видео не станут проблемой. Просто если устранить и их — то можно здорово потерять в быстродействии прибора и его показания будут отставать от реальности.