Тахометр из шагового двигателя своими руками
В последнее время стала очень актуальна проблема контроля оборотов двигателя автомобиля. Ранее предложенные схемы имеют ряд недостатков, связанных с большим количеством элементов, большим потребляемым током и возможностью контроля оборотов двигателя только в цифровой форме.
2 0 [0]
Тахометр-2 или Тахометр своими руками
Предлагаемый ниже тахометр вы можете собрать своими руками, прибор весьма прост по схеме, но обладает хорошими техническими характеристиками, собран на доступных компонентах. Тахометр может оказаться очень полезным при регулировочных операциях с электронными блоками зажигания двигателя автомобиля, при точной установке порогов срабатывания экономайзера и др.
Автор: Бирюков А.
0 0 [0]
Тахометр-3
Предлагаю простой, но надежно работающий на моем автомобиле "Форд-Эскорт" электронный тахометр. Прибор имеет двухразрядный цифровой индикатор, показывающий число тысяч и .сотен оборотов в минуту. Питается тахометр от бортовой сети автомобиля и потребляет ток 0,45А.
2 0 [0]
Электронный тахометр для автомобиля
Водителю иногда интересно знать, какое число оборотов развивает двигатель автомашины. Определить это можно с помощью несложного электронного тахометра (рис. 1), измерительного прибора, шкала которого градуирована в числах оборотов двигателя. Его удобно расположить поблизости от рулевого управления.
1 0 [0]
Электронный тахометр для мотоцикла
Во многих мотоциклах, мопедах, мотонартах и другой мототехиике отсутствует такой важный прибор как тахометр. Предлагаю простой и надежный электронный тахометр. Он рассчитан на работу с одноцилиндровым двухтактным двигателем внутреннего сгорания с контактной или бесконтактной системой зажигания и позволяет измерять частоту вращения коленчатого вала до 10000 об/мин.
2 0 [0]
2012 г.
Тахометр на Arduino
Тахометр - это полезный инструмент для подсчета RPM (оборотов в минуту) колеса или всего, что крутится. Самый простой способ сделать тахометр - это использовать ИК передатчик и приемник. В этой статье мы рассмотрим, как использовать ИК-передатчик и приемник для изготовления тахометра с применением Arduino. Результат отображается на ЖК-дисплее 16х2.
Автор: Касьянов А.
19 0 [0]
28.02.2014
Простой тахометр с большими цифрами на ATmega8 и LCD 16x2
Предлагаю вариант тахометра на AVR микроконтроллере с большими цифрами на символьном дисплее. Цифры выстраиваются из отдельных сегментов на всю высоту дисплея, что делает показания прибора более читабельными. Рассчитывался на диапазон измерения от 300 до 9999 оборотов в минуту. Но получилось так, что при более высоких (от 10000) об/мин, младший разряд сдвигается за пределы экрана и прибор показывает количество оборотов в минуту, делённое на 10.
Всем доброго времени суток. Думаю не одного меня мучила идея поставить современную приборную панель в старое авто ни я первый ни я последний…
Все начиналось с того что лет шесть назад на рынке купил нерабочую панель с мерса в кузове w220 разобрав ее был немного удивлен так как все стрелки приводились в движение шаговыми двигателями на тот момент это был для меня черный лес…
Спустя шесть лет знакомый обратился со странной просьбой установить приборную панель от какой- то иномарки на семерку … детально изучив приборную панель оказалось она тоже полностью на шаговых двигателях и на плате были видны следы горелых дорожек но в целом приборка выглядела не плохо знакомый начал умолять что бы я ему помог и я понял что это судьба со всем этом разобраться. В нете толком инфы не нашел,
вспомнил про свою купленную много лет назад панель извлек из нее один двигатель для опытов и начал эксперименты с подручных средств был собран стрелочный прибор со шкалой и стрелкой от китайского мопеда.
По началу думал что там стоит биполярный шаговый двигатель но поигравшись подачей питания на обмотки оказалось все намного проще
Двигатель отлично шагает при подачи пяти вольт при этом потребляет том меньше 20милиампер подключил двигатель на прямую к микроконтроллеру
все отлично работает шагает четко на 230 градусов делает 100 шагов максимально крутится на примерно 270 градусов выяснив что по количеству шагов можно точно определить положение стрелки
по быстрому написал программу вольтметра на шаговом двигателе ))))
На дисплей можно не обращать внимания там выводятся промежуточные значения
На пяти вольтах большего быстродействия добиться не удалось спидометр сделать можно с тахометром будет по сложнее нужно больше напряжения для двигателя следовательно нужно городить какой то драйвер или ключи
таким образом можно реализовать любой стрелочный измерительный приборной для приборной панели точности хватит
Всем спасибо за внимание
Про все недочеты и предложения пишем коментах )
Часовой пояс: UTC + 3 часа
Тахометр на шаговом двигателе
Купил я себе на Юпачек 5 тахометр от ВАЗ 2106, установил , на вид оно конечно красиво , но только показывает он скорее глубину чем обороты , толи из за вибрацыи, особенно когда резко крутнуть газку так срелка очень долго успокаивается , и такая проблема не токо у меня, а у всех кто тоже ставил такой тах. Потом я ещё и случайно сломил ось механизма , короче капец ему уже. Так вот на днях пришла такая мысля в голову , а что если поставить вместо стд механизма какой-то маленький , маломошный шаговый движок, он и выбрацыи не боится и стрелка прыгать не будет. Мозгом всей этой системы будет простой МК Тини, проблем с програмой нет , запрограмировать смогу,опыт работи с МК есть, алгоритм придумал уже. так вот подскажите какой движок можно прикупить для этой цели, что бы маленький, маломощный , не дорогой и хотя б 100 шагов было за оборот, и если можно то и распиновку к нему ??
На 21063 катаюсь 20 лет подобных проблем с тахометром не наблюдал? Может привод раздолбан? Заусенцы на стальном тросе могут дёргать стрелку прибора. Если есть опыт работы с МК попробуйте сделать светодиодный индикатор, идей на youtube валом!
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!
На 21063 катаюсь 20 лет подобных проблем с тахометром не наблюдал? Может привод раздолбан? Заусенцы на стальном тросе могут дёргать стрелку прибора. Если есть опыт работы с МК попробуйте сделать светодиодный индикатор, идей на youtube валом!
Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
какой привод раздолбан? какие заусенцы на тросу? тахометр от зажигания работает точнее считает импульсы на катушке. а колбасится на моцыке от вибрации автор прав.
Опубликованы материалы вебинара, посвященного решениям задач освещения с LED-драйверами MEAN WELL. LED-драйверы MEAN WELL насчитывают несколько десятков семейств, которые широко используются, и легко интегрируются в различные светодиодные светильники. На вебинаре были представлены новинки 2022 года. Рассказали о драйверах MEAN WELL, существующих режимах стабилизации, способах повышения устойчивости светильника к имеющимся помехам, а также предложили оптимальные семейства для различных отраслей применения.
Компания Mornsun расширила существующее популярное семейство неизолированных импульсных стабилизаторов K78xx/500R3 новыми изделиями для монтажа в отверстие (SIP-3) K78xx/500R3-LB и поверхностного монтажа (SMD) K78xxJT/500R3-LB, существенно снизив себестоимость и габаритные размеры.
какой привод раздолбан? какие заусенцы на тросу? тахометр от зажигания работает точнее считает импульсы на катушке. а колбасится на моцыке от вибрации автор прав.
Прошу пардона со спидометром спутал. А на тахометре пляски со стрелкой- меняем контакты.(в трамблёре конечно)
Я пытался собрать цифровой спидометр и тахометр с 7-сегментным индикатором, но у меня ничего не вышло, т.к. схема была слишком сложной. В дальнейшем я сделал тахометр на светодиодах. Затем я приобрел шаговый двигатель, использовал его в качестве датчика скорости и построил спидометр на светодиодах.
Но я всегда задумывался о 7-сегментном мультиметре. Его можно построить на программируемых PIC-ах, но к сожалению я не разбираюсь в этом. Тогда я вспомнил о микросхеме ICL7107, простом и надежном аналого-цифровом преобразователе (АЦП), используемом в цифровых вольтметрах.
ВОЛЬТМЕТР? Почему бы не собрать вольтметр, а затем откалибровать его, так чтобы он показывал скорость автомобиля от датчика скорости (шагового двигателя)? И взять напряжение для тахометра на выходе LM2917 ? Почему бы не добавить цифровой термометр, используя датчик температуры LM35 ?
Схема цифрового вольтметра
Я начал с главной цепи (ICL7107 вольтметра). ICL7107 является аналого-цифровым преобразователем сопряженный с семи сегментным дисплеем.
Питание “-5В” получается с микросхемы 7660 из входного напряжения “+5В”, хотя “-5В” можно также получить с помощью регулятора напряжения 7905 из +12В. К этому добавляются остальные немногочисленные компоненты.
Блок питания
Напряжение +12В от аккумулятора преобразуется в “+5В” с помощью регулятора напряжения 7805, двух неполярных конденсаторов 100нФ, одного электролитического конденсатора 470мкФ и выпрямительного диода 1N4007.
Сигнал скорости
К трансмиссии моего автомобиля ранее был присоединен шаговый двигатель. Ток генерируемый шаговым двигателем переменный, поэтому я добавил диодный мост на 1N4007 и 100нФ для сглаживания на выходе. Добавлены 1.5мОм и потенциометр 470кОм для калибровки.
Сигнал тахометра
Микросхема LM2917 является преобразователем частота – напряжение. Она преобразует сигнал оборотов двигателя от катушки зажигания в напряжение (высокое входное напряжение . ).
Напряжение, соответствующее оборотам, снимается с выводов 5 и10. Калибровка через подстроечник 220K. Питание от того же источника +5В.
Температурный сигнал
Я использовал цифровой датчик температуры LM35. Он имеет точность в 0.5 градусов, чувствительность 10мВ/градус. Вариант LM35DZ имеет рабочий диапазон только 0-100 градусов(Цельсия), а LM35AH от -55 до 150 град. Датчик также питается от +5В. После соединения проводов, я залил их эпоксидной смолой.
Смола не проводит ток, и обеспечит герметичность. Я использовал потенциометр в 100кОм для калибровки. Я положил датчик LM35 под язык, подождал немного и потенциометром установил 37 градусов на дисплее (считаем, что у меня была нормальная температура тела ?).Затем положил его в кипящую воду и откалибровал на 100 градусов.
Датчик должен быть хорошо закреплен на корпусе двигателя, чтобы показывать корректную температуру. Я просверлил небольшое углубление в корпусе (сталь), вставил датчик и залил эпоксидкой.
Возможно вы предпочтете использовать такой датчик для измерения температуры охлаждающей жидкости. В дальнейшем я добавлю еще 2 датчика, один для измерения наружной температуры и один для температуры внутри автомобиля.
Переключение показаний дисплея
Я использовал простой поворотный переключатель с 6 позициями. В настоящее время я, использую только 3 позиции (скорость, тахометр и температура двигателя).
Выключатель установлен в месте старого потенциометра (использовался для регулировки яркости подсветки приборной панели).
И ещё хочу отметить один момент, если вы решили купить грузовой автомобиль, автокран или другую спецтехнику, то я хочу порекомендовать вам отличную компанию, которая занимается именно этим. Заходите, смотрите и выбирайте, грузовая техника всегда в наличии, как новая так и б\у.
Всем привет! Хотелось бы поделиться с сообществом своей историей модернизации тахометра ТХ-193
Неделю назад обратился ко мне один человек с довольно нестандартным заданием — нужно было обеспечить работу древнего тахометра ТХ-193(ВАЗ 2106) с современным двигателем ВАЗ21126(Приора), имеющем систему зажигания с индивидуальными катушками на каждый цилиндр, а значит просто подключить ТХ-193 к катушке зажигания уже не получится. К тому-же заказчик хотел повысить эксплуатационные качества прибора, оставив не тронутым его внешний вид и дизайн. В общем дело кончилось тем, что я взялся выпотрошить электронную начинку прибора и разработать свою, с блэкджеком и шлюхами. Информацию о частоте вращения коленчатого вала тахометр теперь будет получать от ЭБУ Январь 7.2, для чего в последнем имеется специальный вывод.
Под катом фото, видео, схема, исходники и много текста, повествующего о логарифмах и о том как правильно масштабировать данные и отделаться от запятой.
Хард
Начнем с устройства ТХ-193. Механическая часть прибора представляет из себя миллиамперметр классической конструкции, с постоянным магнитом и подвижной катушкой, приводящей в движение стрелку.
Софт
На самом деле ещё до вычерчивания схемы я оперативно собрал всё это дело на макетке, взяв контроллер в DIP корпусе и сразу же принялся махать стрелкой))
В общем то софт оказался немного интереснее харда.
Начнем с общей архитектуры:
Таймер 0 тикает с частотой 250кГц, а значит период тика = 4мкс прерывание по переполнению происходит с частотой 250кГц / 256 = 0.976кГц
а значит прерывание происходит один раз в 1024мкс. Можно было заморочиться и подогнать это дело ближе к одной миллисекунде путем обновления счетчика таймера в прерывании, но в данной задаче это не к чему. Т.е. мы можем измерять время с точностью 4мкс, что вполне достаточно для заданной точности прибора.
Таймер 0 у нас не только отсчитывает время, но ещё и выставляет флажки для запуска тех или иных задач с определенной периодичностью.
Задачи у нас две. Давать отмашку прерыванию INT0 на измерение периода импульсов на входе и изменять положение стрелки.
Таймер 1 тикает с частотой 16мГц, но т.к. он 16ти битный и используется режим Phase and Frequency Correct PWM — итоговая частота ШИМ оказывается очень небольшой и составляет что-то около 122Гц. Это потому, что таймер тикает сначала вверх, а потом вниз. Зато имеем тру 16битный ШИМ и можем очень точно рулить стрелкой! В даташите найдутся все подробности.
Механика, к слову сказать, оказалась отвратительного качества, плавно двигать стрелку было не реально из-за повышенного трения в механизме, который пришлось для начала хотя-бы смазать трансмиссионным маслом. Но это уже детали.
Была составлена таблица соответствия показаний прибора с соответствующим значением регистра таймера в ШИМ попугаях.
В исходниках это дело называется GAUGE_TABLE и вынесено по привычке в отдельный файл.
Текста почему-то получается всё больше, но не остановиться более подробно на этом моменте я просто не могу!
Итак, понятно, что нам нужна логарифмическая прогрессия. Шаг изменения тока в цепи миллиамперметра должен уменьшаться по мере приближения к целевой отметке. Ресурсы на вес золота, а значит только табличный метод. Точек тоже по возможности минимум.
Начнем с построения логарифмической таблицы.
Всё очень просто: запускаем 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об/мин не будет и те незначительные перелеты стрелки, которые всё-же можно наблюдать на видео не станут проблемой. Просто если устранить и их — то можно здорово потерять в быстродействии прибора и его показания будут отставать от реальности.
До новых встреч!
Проверка прибора на автомобиле
Клиент очень доволен!
А когда увидел эту статью и все исходники, включая некоторые фото самого процесса изготовления платы — сказал, что его мозг взорван!
Читайте также: