Тахометр на шаговом двигателе

Тахометр на шаговом двигателе

Начнем с определений. Что такое тахометр в автомобиле? Это прибор, фиксирующий частоту вращения коленчатого вала в автомобиле.

Разумеется, его применение не ограничено только автотранспортом. Определение количества оборотов в минуту необходимо при работе с различными механизмами:

  • турбина самолета
  • вал корабельной силовой установки
  • генераторы электростанций
  • фрезерные и токарные станки высокой точности
  • буровые установки
  • приборы учета электроэнергии и воды.

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

  1. Датчик вращения снимает показания с вала – объекта измерения
  2. Сигнальное устройство либо подает команду на управляющую схему механизма, либо просто выводит данные на стрелочный прибор (цифровое табло).

Принцип работы тахометра достаточно простой

Есть несколько разновидностей конструкции:

Электрическая схема импульсная


На вал, частота которого измеряется, устанавливается метка, излучающая любое поле. Чаще всего это маленький магнит.

Рядом с валом размещается считывающее устройство – датчик. На нем формируются импульсы, соответствующие скорости вращения вала.

Электронная схема принимает сигналы, и выводит их на устройство отображения. Вместо пары магнит-датчик иногда применяется фото и светодиод.

Тогда на вал устанавливается диск с отверстием, и считывание происходит по вспышкам света.

Преимущество схемы – идеальная точность. Фактически, это цифровое устройство, работающее без погрешностей. Кроме того, такая схема не отбирает мощность у двигателя.

Недостаток – требуется электропитание. Это исключает применение прибора в чисто механических агрегатах.

Электрическая схема генераторного типа

Вал механизма соединен с компактным генератором. В зависимости от скорости вращения, меняется величина вырабатываемого напряжения.

Показания снимаются прибором, работающим по принципу вольтметра. Иное название – тахометр постоянного тока. Главное преимущество – нет необходимости в источнике питания.

Индукционный тахометр

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

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

Механический тахометр

Система автономная, для работы не требуется ни питания, ни управляющих схем.

На валу (5) жестко закреплен постоянный магнит (4). При вращении магнита возникает вихревое поле, которое увлекает за собой чашу (3) из магнитного материала.

Вращению чаши препятствует спиральная пружина (2). Чем выше скорость вращения, тем сильнее отклоняется вал со стрелкой.

Главное достоинство прибора – простота конструкции и отсутствие необходимости в электропитании. Недостатков два: высокая погрешность и сдвинутый нижний предел измерений. При малых оборотах стрелка не отклоняется.

Мы рассмотрим самое востребованное применение тахометров – автомобиль.

Любой механизм вращения (в нашем случае – коленчатый вал автомобиля) имеет предел нагрузки. То есть, силовая структура и подшипники могут выдержать определенную скорость.

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

Поэтому установка прибора контроля обязательна для любого современного ДВС. Исключение составляют лишь маломощные моторы для мотоциклов и мопедов.

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

Изготовление тахометра своими руками на базе Arduino, подробное видео.

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

Если ваш прибор перестал подавать признаки жизни, необходима диагностика. Как проверить тахометр в домашних условиях?

В автомобилях, оснащенных интерфейсом OBD II, проверка осуществляется с помощью сканера. Также электронный тахометр можно проверить с помощью любого генератора импульсов. В качестве эталона используем осциллограф, частотомер, или заведомо исправный прибор.

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

Ремонт тахометра не такая сложная задача, если это не модуль электросхемы. После локализации неисправности, меняется неисправный компонент.

Проводка, контакты датчика, сам датчик, оторванный магнитик на коленвале. Как правило, причина поломки именно в этих деталях.

С механикой еще проще. Надо просто заменить изношенный узел на новый, либо приобретенный на авторынке.

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

Как сделать тахометр своими руками?

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

Видео простейшего тахометра собранного своими руками из вольтметра, двигателя от старого принтера и диодного моста.

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

Если есть отверстие – устанавливаем фото-пару и подключаем ее к электронному тахометру.

Схему можно купить в виде готового KIT набора (на китайских сайтах электроники), либо собрать на доступной элементной базе.

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

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

Сигнал для счетчика оборотов берем от разъема «W» генератора. Подключение штатное, так работают многие модели заводских тахометров.

Если есть сомнения в правильности — посмотрите электрическую схему вашего авто, надо найти проводник от генератора к прибору.

Итог
Изготовить самодельный тахометр достаточно просто, если есть элементарные навыки в электротехнике. При наличии паяльника и готовой схемы – это вопрос пары выходных.

Читайте также:  Можно ли читать удаленные сообщения в контакте

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

Пример самодельного тахометра из компьютерной мышки. Все подробности в видео материале.

Для чего он нужен? Если сломался штатный тахометр – ответ очевиден. Если с вашей приборной доской все в порядке – можно добавить стильный элемент к интерьеру автомобиля. Цифровое табло легче считывается, а светодиодная индикация добавит наглядности.

Всем привет! Хотелось бы поделиться с сообществом своей историей модернизации тахометра ТХ-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об/мин не будет и те незначительные перелеты стрелки, которые всё-же можно наблюдать на видео не станут проблемой. Просто если устранить и их — то можно здорово потерять в быстродействии прибора и его показания будут отставать от реальности.

P.S. Не сказать, что в архиве совсем говнокод, но да, местами можно было сделать красивее. Да, я знаю, что магические числа это плохо и да, я мог бы лучше. С другой стороны потеряться в исходнике в 200строк довольно сложно, поэтому кое-где я позволил себе немного на халтурить.
Просто зарегаться на хабре хотелось уже давно, а написать сколько-нибудь подробную статью по прошествии времени после реализации проекта становится всё сложнее, поэтому я решил, что сегодня будут «вести с полей».
Так что реальный код с реального устройства, собранного за реальный срок в 7 вечеров, которое завтра будет установлено на славный автомобиль ВАЗ 2108 с двигателем 21126 и надеюсь будет ещё долго радовать владельца, согласившегося выложить за мои труды аж 100 вечнозеленых.
Но мы то с вами знаем, что проделал я весь этот путь не только и не столько ради денег. Ведь так приятно, когда ты создал что-то и оно даже работает!

Читайте также:  Холодильник самсунг не включается после отключения света

В архиве проект Atmel studio и схема+плата в Altium designer. Изготавливалась плата методом ЛУТ.
UPD: Архив был выложен на бесплатный файлообменник и потому скоропостижно скончался. Для хранения архива на habrastorage я встроил его в фото тахометра без циферблата(оно в верхней части статьи). В общем jpg нужно сохранить себе и открыть винраром. Можно ещё просто изменить расширение на zip.
UPD2: Схема и плата переработаны, картинки обновлены, архив по прежнему в картинке.
UPD3 Архив в картинки теперь не вставляется. Пишите в ЛС тут или найдете меня vk.com/trotskyi

До новых встреч!

Проверка прибора на автомобиле

Клиент очень доволен!
А когда увидел эту статью и все исходники, включая некоторые фото самого процесса изготовления платы — сказал, что его мозг взорван!

9zip.ru Радиотехника, электроника и схемы своими руками Простой универсальный тахометр на микроконтроллере ATtiny2313

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

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

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


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

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

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


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


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

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

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

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

Страница автора проекта: http://hardlock.org.ua/viewtopic.php?f=9&t=16

Исходник написан на языке 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);

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

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

Понравилась статья? Похвастайся друзьям:

Хочешь почитать ещё про схемы своими руками? Вот что наиболее популярно на этой неделе:
Регулируемый блок питания из блока питания компьютера ATX
Зарядное устройство на UC3842/UC3843 с регулировкой напряжения и тока
Схемы и печатные платы блоков питания на микросхемах UC3842 и UC3843
Екатерина одобряет.

НСТ 27 дек 2018 16:13
Сергей 29 мар 2017 23:29
Iggis 23 авг 2015 11:05

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

Главная 9zip.ru База знаний радиолюбителя Контакты

Девять кучек хлама:

Дайджест
радиосхем

Новые схемы интернета — в одном месте!


Новые видео:

Ссылка на основную публикацию
Adblock detector