Вольтметр и тахометр для автомобиля на основе arduino uno

Схема электронного тахометра на Arduino

Для сборки прибора понадобится, естественно, микроконтроллер Arduino. Если его нет, то сойдет любой другой контроллер с похожими характеристиками, но тогда нужно будет дополнительно собирать программатор. Также для этой схемы нужны резисторы 33 кОм, 270 Ом, 10 кОм в виде потенциометра. Еще можно приобрести синий светодиод, инфракрасный светодиод и фотодиод. Далее найдите ДСВ-дисплей и микросхему регистра сдвига с маркировкой 74НС595. Здесь используется оптический датчик и принцип отражения лучей. С этой системой вам не придется беспокоиться о том, какая должна быть толщина ротора, а количество его лопастей не сможет изменить показатели. Датчик сможет точно считывать обороты.

Давайте почитаем…

… даташиты к микроконтроллерам. Хорошо, не пугайтесь, официальный даташит на 300 страниц сейчас читать не будем, это история для сильных духом. Мы немного схитрим и почитаем только нужный минимум. В первую очередь надо определиться с платой и используемым в нем микроконтроллером. Я для тестов использовал плату Iskra Neo фирмы Амперка, она построена на базе микроконтроллера ATmega32u4 и полностью повторяет оригинальную Arduino Leonardo. Можно было взять Arduino Mega 2560, но в ней есть несколько свободных таймеров, не наглядны будут следующие шаги.

Если мы просто загуглим «Arduino timers interrupt» или «Arduino timer прерывания», то с большой вероятностью найдем вот эту статью на Хабре. Вроде бы хорошая популярная библиотека, но в описании видим:

То есть, для нашего МК библиотека предоставляет доступ только к таймеру 1, а на нем как раз «висят» многие важные функции, в том числе Serial. Еще раз напоминаю, что «мы ходим по очень тонкому льду» и не стоит трогать этот таймер без необходимости.

Гуглим дальше, например «Arduino Leonardo timers» и натыкаемся на другую хорошую статью. В ней присутствует важная таблица:

Так-так, уже интересно. То есть, на таймер 3 завязан только ШИМ на пине 5, на таймере 4 ШИМ сигнал на пинах 6 и 13. Я планирую брать скорость мотора с пина 6, поэтому перенастраивать таймер 4 не стоит. Придется работать с таймером 3, отказавшись от ШИМа на 5 ножке Arduino Leonardo / Iskra Neo

Обратите внимание, что если бы для управления моторами использовался Amperka Motor Shield, то такое решение не подошло бы — он использует ШИМ сигнал с пинов 5 и 6; пришлось бы выбирать другой таймер или перенастраивать шилд на работу с другими пинами

Пока фиксируем промежуточный этап — работать будем с TIMER3.

Работать напрямую с регистрами самого МК для настраивания таймера ой как не хочется (как это делается можете посмотреть в этой статье на Хабре), поэтому продолжаем гуглить: «Arduino leonardo timer3». Находим хорошую статью, в которой описываются библиотеки для работы с TIMER1 и TIMER3. Они позволяют настроить период таймера и прерывания, то, что нам и нужно. Вот ими и будем пользоваться.

Работа схемы

Схема аналогового спидометра на основе платы Arduino представлена на следующем рисунке.

В схеме мы будем использовать ЖК дисплей 16×2 для отображения скорости в цифровой форме и шаговый мотор, с помощью вращения которого будет показываться скорость в аналоговой форме.

ЖК дисплей подключен к следующим контактам платы Arduino:

RS — A5
RW — GND
EN — A4
D4 — A3
D5 — A2
D6 — A1
D7 — A0

Резистор 2,2 кОм используется для установки яркости ЖК дисплея. Модуль инфракрасного датчика (IR sensor module), который используется для определения числа оборотов лопастей вентилятора, подключен к контакту D2 платы Arduino, который в данном случае используется как вход внешнего прерывания 0 (interrupt 0).

В качестве драйвера мотора мы использовали модуль L293N. Контакты IN1, IN2, IN3 и IN4 драйвера шагового двигателя непосредственно подключены к контактам D8, D9, D10 и D11 платы Arduino.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как настроить частотомер в домашних условиях

В данной статье будет рассмотрена возможность настройки самодельного частотомера в домашних условиях. Есть несколько путей реализации корректировки показаний частотомеров. Первое – это отнести соответствующий прибор на поверку в соответствующую лабораторию, скорректировать показания по прибору прошедшему поверку, изготовить приемник эталонной частоты, например такой, описание которого приводится в статье В. Полякова «Приемник эталонной частоты», опубликованной в журнале «Радио» за 1988 год №5 стр. 38. Но можно изготовить частотомер, в котором время, в течение которого будет происходить подсчет импульсов, будет задаваться вручную.

Им замерить частоту кварцевого термостатированного генератора и по этим показаниям настроить уже проверяемый частотомер. Что такое частота, частота́, это физическая величина, характеристика периодического процесса, равна количеству повторений или возникновения событий (процессов) в единицу времени. В нашем случае частота, это количество импульсов на входе частотомера за одну секунду. Вот, как раз, эту секунду и очень сложно выдержать, не имея в домашних условиях под рукой точных часов. Но сейчас есть возможность лицезреть точное время через Интернет. Можно воспользоваться данным сайтом — time100.ru. По этим часам я буду разрешать и заканчивать счет импульсов испытуемого генератора. Схема и устройство такого генератора описываются в статье «Генератор кварцевый термостатированный». Для уменьшения погрешности в измерениях считать импульсы буду тридцать дней. Для меня, живущего в деревне, по времени, затраченного на тот или иной способ калибровки прибора никакой разницы нет, за то все бесплатно. И так, в тридцати днях у нас 3600×24х30 = 2592000 секунд – вот такой у меня будет период измерения. Измеряемая частот равна 4000000Гц. Значит, за тридцатидневный период счетчик насчитает 2592000×4000000 = 10368000000000импульсов. Скорость реакции, средненькая, у человека примерно 300миллисекунд. Но здесь нам важна не скорость реакции, а постоянство ее величины. (Проверить свою реакцию и потренироваться в ее постоянстве можно на данном сервисе — https://mozgion.ru. )Ну, допустим, мы нажали на стоп позже, чем на пуск на 200 миллисекунд. За эти 200мс при частоте генератора 4МГц в счетчик добавиться лишних 800000 импульсов. Таким образом, после конца счета в регистрах будет число равное 10368000000000 плюс 800000 = 10368000800000. После деления этого числа на количество секунд получим значение частоты -10368000800000/2592000с = 4000000,308641975308641975308642. Отсюда следует, что при ошибке отсчета по времени, равной 0,2 секунды, ошибка в измерении частоты будет равна 0,31 герца. Это 31 герц при измеряемой частоте, равной 400 000 000Гц. Для дома уже не плохо.

Схема «ручного» частотомера приведена на рисунке 1.

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

Используем микроконтроллер

Чтобы сделать тахометр своими руками на базе микроконтроллера, потребуются следующие детали:

  • Непосредственно микроплата, подойдет схема Arduino.
  • Комплект резисторов.
  • Для светодиодного варианта потребуется LED-элемент.
  • Диоды (инфракрасный и фотоаналог).
  • Монитор. Например, LCD-дисплей.
  • Регистр сдвига типа 74HC595.

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

Комплектующие для сборки тахометра

Итак, тебе понадобятся:

  • датчик Холла из стартового набора ардуинщика KY-003
  • отладочная плата Arduino Nano v3
  • семи сегментный индикатор на драйвере ТМ1637
  • соединительные провода XH2.54 4pin и 3pin
  • 2-ух жильный экранированный провод
  • набор «Все для паяния»
  • набор «Всё для изготовления печатных плат»
  • установленная на компьютере Arduino IDE желательно версии 1.6.5


Детали тахометра на Ардуино И установи библиотеку tm1637 в свою Arduino IDE. Как это сделать? Просто добавь папку из архива в папку куда установлена Arduino. Например С > Program Files (x86) > Arduino > Libraries

Библиотека TM1637 скачать

1 file(s) 9.72 KB Download

https://youtube.com/watch?v=iiFzFI5_Txk

https://youtube.com/watch?v=uSDLbwLIYAA

https://youtube.com/watch?v=x2fLvS8Ms9w

Драйвер шагового двигателя Ардуино

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

Вращение вала двигателя осуществляется с помощью сигнала, который управляет магнитным полем катушек в статоре драйвера. Сигнал генерирует драйвер шагового двигателя. Магнитное поле, возникающее при прохождении электрического тока в обмотках статора, заставляет вращаться вал, на котором установлены магниты. Количество шагов задаются в программе с помощью библиотеки Arduino IDE.

Схема подключения шагового двигателя 28BYJ-48 к Arduino Uno через драйвер ULN2003 изображена на рисунке ниже. Основные характеристики мотора 28BYJ-48: питание от 5 или 12 Вольт, 4-х фазный двигатель, угол шага 5,625°. Порты драйвера IN1 — IN4 подключаются к любым цифровым выводам платы Arduino Mega или Nano. Светодиоды на модуле служат для индикации включения катушек двигателя.

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

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

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

https://youtube.com/watch?v=oaIEbn_ekLQ

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

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

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

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

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

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

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

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

https://youtube.com/watch?v=rJjmE_B_32E

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

Работа схемы

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

Схема содержит плату Arduino Pro Mini, модуль инфракрасного датчика и ЖК дисплей. Плата Arduino управляет всем процессом функционирования устройства: считывание импульса с выхода модуля инфракрасного датчика, вычисление частоты вращения (в оборотах в минуту) и передача значения этой частоты на ЖК дисплей. Инфракрасный датчик используется для обнаружения объекта. Мы можем регулировать чувствительность данного датчика с помощью встроенного в него потенциометра. Модуль инфракрасного датчика состоит из инфракрасного передатчика и фотодиода, который обнаруживает инфракрасные лучи. Инфракрасный передатчик излучает инфракрасные лучи, когда эти лучи падают на поверхность, они отражаются от нее и улавливаются фотодиодом (более подробно об этих процессах можно прочитать в статье про робота, движущегося вдоль линии). Выход фотодиода подключен к компаратору, который сравнивает значение с выхода фотодиода с опорным напряжением и результат сравнения выдает на плату Arduino.

Выход модуля инфракрасного датчика напрямую подключен ко контакту 18 (A4) Arduino. Vcc и GND подсоединены к контактам Vcc и GND arduino. ЖК дсиплей подключен к плате Arduino в 4-битном режиме. Его управляющие контакты RS, RW и En напрямую подсоединены к контактам 2, GND и 3 Arduino. Контакты данных D4-D7 подключены к контактам 4, 5, 6 и 7 Arduino. В схеме также присутствует кнопка, которую необходимо нажать для подсчета числа оборотов. Наш тахометр на основе платы Arduino подсчитывает число оборотов в течение 5 секунд а потом по вышеприведенной формуле осуществляет пересчет этого значения в число оборотов в минуту. Кнопка подключена к контакту 10 Arduino.

Диагностика

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

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

Проверка оборотов двигателя

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

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

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

https://youtube.com/watch?v=6_F4T7FBcpU

Принцип работы шагового двигателя

В зависимости от конструкции, сегодня применяются три вида шаговых двигателей: с постоянным магнитом, с переменным магнитным сопротивлением и гибридные двигатели. У двигателей с постоянным магнитом число шагов на один оборот вала доходит до 48, то есть один шаг соответствует повороту вала на 7,5°. Гибридные двигатели обеспечивают не меньше 400 шагов на один оборот (угол шага 0,9°).

Подсчитав количество сделанных шагов, можно определить точный угол поворота ротора. Таким образом, шаговый двигатель является сегодня идеальным приводом в 3D принтерах, станках с ЧПУ и в другом промышленном оборудовании. Это лишь краткий обзор устройства и принципа работы stepper motor, нас больше интересует, как осуществляется управление шаговым двигателем с помощью Ардуино.

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

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

Принципиальная схема с использованием IC 555:

  1. Импульс выводится из свечи зажигания скутера и подаётся до конца R6.
  2. Транзистор реагирует на импульсы в соответствии с триггерами.
  3. Транзистор активирует моностабильность с каждым входящим импульсом.
  4. Моностабильный остаётся включённым в течение определённого момента, а при срабатывании генерирует среднее время включения на выходе прямо пропорционально средней скорости запуска.
  5. Конденсатор и резистор на выходе IC объединяют результат так, что он напрямую считывается вольтметром с напряжением 10 В.
  6. R3 отрегулирован таким образом, чтобы выход генерировал точную интерпретацию скорости подачи RPM.

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

  1. R1 = 4K7.
  2. R2 = 47E.
  3. R3 = 100 КБ, может быть переменный.
  4. R4 = 3K3.
  5. R5 = 10K.
  6. R6 = 470 К.
  7. R7 = 1K.
  8. R8 = 10K.
  9. R9 = 100K.
  10. C1 = 47n.
  11. C2 = 100n.
  12. C3 = 100n.
  13. C4 = 33uF / 25V.
  14. T1 = BC547.
  15. IC1 = 555.
  16. M1 = измеритель FSD 10 В.
  17. D2 = 1N4148.
  18. C5 с любым значением между 3, 3uF и 4, 7uF.

Перед тем как сделать тахометр своими руками, нужно выполнить монтажную документацию. Простая схема, разработанная с использованием легкодоступных элементов с прорезиненным оптоизоляционным модулем MOC7811 и двумя семи сегментными дисплеями, измеряет скорость диска в RPS. Эта схема рассчитывает RPS от 00 до 99, если нужны большие значения, добавляют ещё один счётчик декады.

Принципиальная электрическая схема содержит IC555, MOC 7811, IC CD4081, IC CD4069 и IC 4033 и семисегментный дисплейный блок LTS 543. На первом таймере IC 555, сконфигурированном как моностабильный мультивибратор, он генерирует импульс синхронизации при нажатии переключателя S2, зелёный светодиод 1 указывает время обнаружения.

MOC 7811 IC2 содержит ИК-передатчик и фотодиод для создания изменяющихся логических уровней, зависит от блокирующего или прерывающего ИК-луча. Логический вентиль N1 включает счётчик детектора Johnson (CD 4033), он управляет семисегментным дисплеем LTS 543. Есть два десятичных счётчика и два семисегментных дисплея для отображения RPS от 00 до 99.

https://youtube.com/watch?v=TuOqRAoHY_8

Особенности измерения скорости движения и скорости вращения.

При измерении скорости вращения бензинового двигателя надо обязательно учесть величину К, которая совсем не очевидна. Например, вы намотали провод на кабель свечи и ожидаете, что там будет одна искра на один оборот. Это совсем не так. Во-первых, у 4-тактного двигателя вспышка происходит один раз на два оборота, у 2-тактного один раз на оборот коленвала. Во-вторых, для упрощения системы зажигания коммутатор подаёт искру на неработающие в данный момент цилиндры, типа на выпуске. Для получения правильного К надо почитать документацию на двигатель или подсмотреть показания эталонного тахометра.

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

Вывод информации

Типичная обида начинающего разработчика автомобильной и мотоциклетной электроники «стрелки дёргаются, цифры нечитабельны» лечится простым способом — надо обманывать клиента. Вы что думаете, автомобильный тахометр всегда показывает вам правду? Конечно же нет! Хотя вам этот обман нравится и вы хотите, чтобы ваш прибор дурил голову так же.

Стрелки

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

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

Вот пример с нелинейным выводом показаний:

Цифры

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

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

Я предлагаю менять частоту вывода информации на дисплей в зависимости от степени изменения величины. Если обороты меняются, скажем, на 5% от последнего подсчёта, а не показа — можно затупить и показывать раз в 300-500мс. Если на 20%, то показывать раз в 100мс.

Можно огрубить шкалу и показывать только две значащие цифры

С учётом мототематики, можно довольно точно показывать обороты холостого хода как описано чуть выше и огрублять вывод на оборотах от двух холостых. На высоких оборотах для гонщиков важнее делать блинкеры типа «передачу вниз», «передачу вверх» и «ты спалишь движок». То есть держать двигатель около максимального крутящего момента и не дать ему крутиться выше максимальных разрешённых оборотов. Блинкеры замечательно делаются с помощью SmartDelay когда можно унаследовать от этого класса свой с заданной ногой контроллера и частотой мигания, там есть методы для переопределения и они вызываются раз в заданное время.

Для управления работой Ардуино необходимо разработать управляющую программу.

Для начала подключаем необходимые библиотеки:

#include <TimerOne.h>   —  библиотека таймера

#include <LiquidCrystal_I2C.h>  — библиотека работы с дисплеем по шине i2c

LiquidCrystal_I2C lcd(0x27,16,2);  — указываем i2c адрес (наиболее распространенное значение), а также параметры экрана

Объявляем переменные и константы:

const int RPM_PIN=3; — константа определяющая номер цифрового входа для подключения датчика Холла

volatile int rpm                = 0;   — частота импульсов (сразу обнуляем)

volatile int rpm_k            = 0;   — счетчик импульсов входного сигнала (обнуляем)

volatile boolean kontrol;

volatile int rpm_array = {0,0,0};    — массив промежуточных значений частоты вращения (не менее трёх значений) для усреднения (сразу обнуляем)

volatile int rpm_result         = 0;    — расчётная частота вращения вала (обнуляем)

 void rpm_count(){

  rpm_k++;       —

  digitalWrite(13, HIGH); — на долю секунды выводим сигнал на красный сетодиод при каждом поступившем импульсе входного сигнала (для контроля работы схемы и датчика)

  delayMicroseconds(500);  — длительность свечения красного светодиода

  digitalWrite(13, LOW);  — выключение красного светодиода

}

void SensorData(){

  rpm = rpm_k;  rpm_k = 0; записываем подсчитанное число импульсов с датчика Холла в переменную частоты вращения, а счетчик обнуляем

  digitalWrite(10, HIGH); — на долю секунды выводим сигнал на зеленый сетодиод при каждом отсчете образцового сигнала (для контроля работы)

  delayMicroseconds(500);  digitalWrite(10, LOW);

}

Объявляем основную процедуру Ардуино

void setup(){

   lcd.begin();    — инициализируем дисплей

   pinMode(RPM_PIN,INPUT);    — устанавливаем режим работы входной линии ардуино на ввод

   attachInterrupt(digitalPinToInterrupt(RPM_PIN),  rpm_count,  RISING);  — настраиваем функцию прерывания, срабатывание по переднему фронту

   Timer1.attachInterrupt(SensorData);  — настраиваем срабатывание прерывания по таймеру

   Timer1.initialize(1000000);  — указываем период работы таймера – 1 с.

   pinMode(10, OUTPUT); — устанавливаем режим работы цифрового выхода 10 и 13 на вывод

   pinMode(13, OUTPUT);

}

Объявляем основной цикл программы

void loop(){

    rpm_result = 0;    — обнуляем итоговый результат

    for (int i=0; i<=1; i++)    { — цикл буферизации предыдущих значений измеренного сигнала в массив

      rpm_array=rpm_array;     }   

    rpm_array = 60*rpm/2;   — вычисляем текущее значение частоты вращения вала и записываем в последний элемент массива

    for (int i=0; i<=2; i++)    {       — вычисляем сумму элементов массива для усреднения

      rpm_result = rpm_result+rpm_array;     }

    rpm_result = rpm_result/3;    — вычисляем среднее значение частоты вращения

    lcd.setCursor(0, 0);     — указываем положение курсора на экране дисплея

    lcd.print(»                «);   — очищаем 1 строку дисплея от предыдущего результата

    lcd.setCursor(0, 0);  — указываем положение курсора на экране дисплея

    lcd.print(«N(ob/min): «);lcd.print(rpm_result);   — выводим частоту вращения в об/мин

    delay(500); — делаем паузу между обновлениями экрана, чтобы он не мигал

}

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

https://youtube.com/watch?v=qilXenglHKE

Ошибки дребезга

Для устрашения вас предположу, что измеряем частоту вращения двигателя от индуктивного датчика зажигания. То есть, грубо говоря, на высоковольтный провод намотан кусок кабеля и мы измеряем индукцию в нём. Это довольно распространённый метод, не правда ли? Что же здесь сложного может быть? Самая главная проблема — современные системы зажигания, они дают не один импульс, а сразу пачку.

Но даже обычная система зажигания даёт переходные процессы:

Старинные же кулачковые контактные вообще показывают замечательные картинки.

Как с этим бороться? Частота вращения не может вырасти мгновенно, не даст инерция. Кроме того, в начале статьи я предложил ограничить частоту сверху разумными рамками. Отсчёты, что происходят слишком часто можно просто игнорировать.

Другой вид помех — это пропадание отсчётов. Из-за той же инерции у вас не может измениться частота в два раза за одну миллисекунду. Понятно, что это зависит от того, что вы собственно измеряете. Частота биения крыльев комара может, вероятно и за миллисекунду упасть до нуля.

Основные разновидности тахометров

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

С учетом вида отображения прибор может быть цифровым и аналоговым. В зависимости от использования – переносным и стационарным. Учитывая принцип функционирования устройства, мы предлагаем:

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

Опытные менеджеры компании готовы помочь с выбором оптимальной модели прибора.

Заказать тахометр недорого

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

 Так же для тюнинга автомобиля покупают

маслоуловители картерных газов

Исходный код программы

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

Arduino

const byte ledPin = 13;
const byte interruptPin = 2;
volatile byte state = LOW;
int val=0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), test, CHANGE);
Serial.begin(9600);
}
void loop() {
digitalWrite(ledPin, state);
Serial.println(val/2);
}
void test() {
state = !state;
val++;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

constbyteledPin=13;

constbyteinterruptPin=2;

volatilebytestate=LOW;

intval=;

voidsetup(){

pinMode(ledPin,OUTPUT);

pinMode(interruptPin,INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(interruptPin),test,CHANGE);

Serial.begin(9600);

}

voidloop(){

digitalWrite(ledPin,state);

Serial.println(val2);

}

voidtest(){

state=!state;

val++;

}

Тахометр на мототехнику

Как поставить электронный тахометр на мотоцикл? Здесь у владельцев мототранспорта есть выбор: или приобрести готовое оборудование, либо изготовить самостоятельно. Предположим, что есть мотоцикл, есть прибор для контроля оборотов. Но как подключить электронный тахометр? Аппарат ТХ-193 от шестерки для этих целей подходит лучше всего для монтажа на отечественные марки мотоциклов.

Если мотоцикл не отечественный и имеется все тот же электронный тахометр, схема подключения немного изменится. В этом случае запитывать придется через замок зажигания. Там есть специальные контакты для этих целей. Если на мотоцикле нет стартера, тогда аккумулятор следует подключать к выходу выпрямителя. А от аккумулятора уже можно через выключатель подать питание непосредственно на тахометр. Если выпрямителя нет, нужно купить. Если нет аккумулятора, можно его поставить. Самый простой вариант – это источник питания от ИБП или старого фонаря. Если подключать измерительный прибор прямо к катушке генератора, тогда он сгорит. Во избежание этого можно попросить соседа-радиолюбителя сделать регулятор напряжения на тиристорах.

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

Измерение скорости мотора на Arduino

Методист по олимпиадной робототехнике Университета Иннополис Алексей Овсянников продолжает серию уроков.

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

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