Тахометр на ардуино для автомобиля

цифровой тахометр на ардуино

Тахометр на ардуино для автомобиля

тахометр на Ардуино уно в классику

Тахометр на ардуино для автомобиля

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

Тахометр на ардуино для автомобиля

собственно сам скетч
#include //подключаем библиотеку модуля 7219

#include //подключаем библиотеку частотометра

LedControl lc=LedControl(10,12,11,1); // Указываем разъемы DIN/CLK/CS и колличество блоков для модуля 7219
//pinMode(xxPin, INPUT);
//pinMode(outPin, OUTPUT);
void setup() <
// pinMode(xxPin, INPUT); // переменные для работы с тахометром по срабатыванию
// pinMode(outPin, OUTPUT); // при достижении определённых оборотов и условий
// int xxPin = 2; // в данном случае управление электромагнитным клапаном
// int outPin = 3; // обедняющим смесь на трассе при оборотах выше 2400 об мин

lc.shutdown(0, false); // инициализация 7219
lc.setIntensity(0,6); //яркость индикатора
lc.clearDisplay(0); // инициализация 7219
// Serial.begin(57600);
// Serial.println(«ArduinoFreqMeter»);
FreqMeasure.begin();// запускаем частотометр. вход привязан ЖЕЛЕЗНО НА 8 НОГУ АРДУИНО УНО №8

double sum=0;
int count=0;

if (FreqMeasure.available()) < // average several reading together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 30) <
float frequency = FreqMeasure.countToFrequency(sum / count);// эти строки необходимы для работы библиотеки частотометра

// тут код программы обработки клапана…
// если long frequency больше 8600 и xx=1 тогда включить клапан, иначе выключить.
//если xx=0 включить клапан

long frequen = frequency*30;// формула преобразования в об\мин
//dee = dee * 100;
//int deepvalue = int(dee);

Источник

Как сделать тахометр на Ардуино

Тахометр необходим для подсчета значения RPM (Rotations per minute) — количества оборотов вентилятора, колеса или иного вращающегося оборудования. В простейшем случае это система из инфракрасного приемника, передающего устройства и контроллера: когда, например, ИК-луч прерывается, значит, вращающийся элемент его перекрыл. Информацию получает контроллер и вычисляет на ее основе частоту вращения. В продаже есть множество образцов заводских приборов, но счетчик оборотов можно сделать и самостоятельно с помощью программируемой платы. Далее мы рассмотрим, как собрать несложный тахометр на Ардуино.

Тахометр на ардуино для автомобиля

Принцип работы

Как уже указывалось, простой тахометр состоит из трех основных модулей:

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

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

Компоненты

Для сборки понадобятся:

Для связи будет служить подсоединенный через низкоомный резистор ИК-светодиод: так луч выйдет ярче. Сигнал с диода пойдет на фототранзистор, «закрывающийся» при отключении светового потока. В качестве подконтрольного объекта используется компьютерный вентилятор, частоту вращения которого и станет считать прибор. Он будет висеть между передатчиком и приемником.

Тахометр на ардуино для автомобиля

Подключенный по транзисторной схеме ИК-приемник создает прерывания и отправляет их на контроллер Ардуино. Плата обрабатывает их через процедуры из программной библиотеки для работы с дисплеями Arduino LCD и выводит данные на экран.

Принципиальная схема будущего устройства:

Тахометр на ардуино для автомобиля

Особенности схемы тахометра

Приведенная раскладка имеет некоторые нюансы:

Код программы

Для создания тахометра на плате Ардуино нужна не только аппаратная часть, но и программная — загружаемый в систему скетч. Рассматриваемый пример строится на упомянутой выше библиотеке функций Arduino LCD (LiquidCrystal.h). Для упрощения понимания работы последней можно привести пример простого скетча: он выводит на экран стандартную фразу «Hello, World!». Код удобно использовать для тестирования оборудования.

Тахометр на ардуино для автомобиля

Тахометр на ардуино для автомобиля

В нашем приборе будет интенсивно применяться метод lcd.print(millis()/1000).

Считаем RPM вентилятора

Подсчет ведется по прерываниям луча инфракрасного передатчика. Метод удобный, но тестовым объектом выступает вентилятор с семью лопастями. Значит, на один полный оборот придется семь прерываний луча, и только завершение этого цикла будет означать увеличение счетчика RPM на единицу.

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

Скетч выполняет две задачи:

В главном цикле наш контроллер считает количество RPM и обновляет информацию на экране.

Тахометр на ардуино для автомобиля

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

Важно: в рассматриваемом примере использован семилопастный вентилятор. С другими, например, на 4 лопасти (и в принципе для устройств с некоторым известным заранее количеством прерываний) в коде необходимо поменять конструкцию time×7 на time×4 (или иное требуемое число).

Точность работы составляет около 96%, что вполне достаточно для бытового применения.

Сборка схемы

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

Тахометр на ардуино для автомобиля

Первыми подсоединяются +5 В питание и линии управления/поступления данных экрана. Затем собственно жидкокристаллический мини-дисплей, регулятор контрастности и светодиод. Тахометр на Arduino в собранном виде:

Тахометр на ардуино для автомобиля

Необходимо выдержать некоторое расстояние между транзистором и диодом — для возможности свободно поместить там контролируемый объект. Чем он больше, тем выше должно быть и это расстояние.

Тахометр на ардуино для автомобиля

Применение тахометра

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

Но датчики обрыва луча (а тахометр и есть датчик) пригодны не только для этих целей. Так, их удобно использовать как сенсор открытия-закрытия дверей, как элемент простой сигнализации (фиксация движения), и в иных задачах.

Еще один пример тахометра

Рассмотрим другой образец схемы — на основе датчика присутствия линии и библиотеки 4Led. Измерение проводится по нанесенной на объект контрастной черте.

Важно: цвет черты не имеет значения.

Сборка

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

Тахометр на ардуино для автомобиля

Механизм действия

Такой вариант тахометра действует следующим образом:

Заключение

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

Видео по теме

Источник

Тахометр на Arduino

В этой статье мы рассмотрим, как использовать ИК-передатчик и приемник для изготовления тахометра с применением Arduino. Результат отображается на ЖК-дисплее 16х2.

Тахометр на ардуино для автомобиля

Целью данного проекта является создание системы с одним входом и одним выходом. На входе устройства присутствует сигнал, изменяющийся с высокого (+5В) на низкий (+0В) уровень при нарушении связи. Согласно этому сигналу, Arduino будет увеличивать значение внутреннего счетчика. Потом проводится дополнительная обработка и расчет, и по прерыванию триггера на ЖК-дисплей будет выводиться рассчитанное RPM.

Для связи мы будем использовать ИК-луч от ИК-светодиода, включенного через низкоомный резистор так, чтобы светиться ярко. В качестве приёмника мы будем использовать фототранзистор, который при отсутствии света ИК-светодиода «закрывается». Компьютерный вентилятор будет размешен между ИК-передатчиком и приёмником и включен. ИК-приёмник включенный через транзисторную схему, будет генерировать прерывания. Для вывода результата будет использоваться Arduino LCD интерфейс, поэтому мы можем вывести окончательное значение RPM на ЖК-дисплей.

Элементы:
Arduino UNO
16×2 LCD
Макетная плата
Подстроечный резистор 5 кОм
Перемычки
SIP разъёмы
2x 2N2222 NPN транзистор
Инфракрасный светодиод
Фототранзистор
Резистор 10 Ом
Резистор 100 кОм
Резистор 15 кОм или 16 кОм
Компьютерный вентилятор

Подробный список элементов

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

Arduino UNO
Это плата Arduino, которую мы будем использовать для обработки импульсов от прерывания ИК-луча, которые сообщают о нахождении лопасти компьютерного вентилятора между приемником и датчиком. Arduino будет использовать эти импульсы наряду с таймером, чтобы вычислить RPM вентилятора.

ЖК-дисплей 16×2
После того, как Arduino вычислило RPM, эта значение будет отображаться на дисплее в понятном для пользователя виде.

Подстроечный резистор 5 кОм
Этот подстроечный резистор будет использоваться для регулировки контрастности ЖК-дисплея 16×2. Он дает аналоговое напряжение в диапазоне от 0 до +5В, позволяя настроить яркость ЖК-дисплея.

Инфракрасный светодиод и Фототранзистор
Фототранзистор открывается, когда мощный ИК-свет падает на него. Поэтому, когда ИК-светодиод горит, он держит фототранзистор открытым, но если ИК-светодиод закрывается например, лопастью вентилятора, то фототранзистор закрывается.

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

Принципиальная схема

Тахометр на ардуино для автомобиля

В схеме, интерфейс связи с ЖК-дисплеем упрощен и имеет только 2 линии управления и 4 линии передачи данных.

Особенности схемы

Интерфейс ЖК-дисплея 16×2
2 управляющих контакта и 4 для передачи данных подключены от Arduino к ЖК-дисплею. Это то, что указывает ЖК-дисплею, что и когда делать.

Схема обрыва ИК-луча
Сигнал обрыва ИК-луча идет на 2-ой цифровой контакт Arduino. Это прерывает Arduino, что позволяет ему засчитать импульс и позволяет тахометру получать данные.

Arduino LCD библиотека

Для этого проекта мы будем использовать Arduino LCD библиотеку. В основном мы будем просто обновлять значение RPM на второй строке на новое.

В качестве подготовки, посмотрите на код приведенный ниже, в котором при помощи этой библиотеки на ЖК-дисплей выводиться «Hello, World!» В тахометре мы будем использовать похожий код, особенно: «lcd.print(millis()/1000);».

Тахометр на ардуино для автомобиля

Разберитесь в функциях этой ЖК-библиотеки как можно подробнее, прежде чем двигаться дальше. Она не слишком сложна и хорошо документирована на сайте Arduino.

Подсчет RPM при помощи Arduino

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

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

Время 1-го оборота = P * (µS/оборот)
RPM = кол-во оборотов/мин = 60 000 000 * (µS/мин) * (1/P) = (60 000 000 / P) * (кол-во оборотов/мин)

Для расчета RPM мы будем использовать формулу приведенную выше. Формула точная, и точность зависит от того, насколько хорошо Arduino сможет отслеживать время между прерываниями и посчитывать количество полных оборотов.

Сборка схемы

На фотографии ниже вы можете увидеть все необходимые детали и перемычки как на схеме.

Тахометр на ардуино для автомобиля

Для начала подключается +5В и линии данных/управления ЖК-дисплея. Затем ЖК-дисплей, потенциометр контрастности и светодиод питания.

Тахометр на ардуино для автомобиля

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

Тахометр на ардуино для автомобиля

Хватит разговоров о аппаратной части! Давайте начнем делать прошивку/программу, чтобы увидеть работу устройства!

Программная часть

Есть две основных части кода, которые показаны и подробно описаны ниже:
-Основной цикл обновления ЖК-дисплея
-Обновление времени прерываний

В основном цикле считаются обороты и обновления ЖК-дисплея. Поскольку основной цикл это гигантский while(1) цикл, то он будет работать всегда, RPM считаться, а ЖК-дисплей обновляться несколько раз в секунду. Функция в прерывании подсчитывает время между прерываниями ИК, поэтому считать RPM можно в основном цикле.

Помните, что компьютерный вентилятор имеет 7 лопастей, так что это тахометр предназначен для работы только с такими вентиляторами. Если ваш вентилятор или другое устройство дает только 4 импульса за оборот, измените в коде «(time*4)».

Обзор тахометра на Arduino

Вентилятор генерирует импульсы прерывания, а на выходе мы видим RPM. Хотя точность не 100%, а примерно 95%, при стоимости элементов 10$ есть смысл построить этот тахометр на Arduino.

Что теперь делать?

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

Заключение

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

Источник

Измерение частоты с помощью Arduino (спидометр и тахометр)

Тахометр на ардуино для автомобиля

Тахометр на ардуино для автомобиля

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

//********************************************************************
unsigned long micros_sp;
volatile int sz; //счетчик обнуления
volatile int sp; //скорость
//********************************************************************
void setup()<
Serial.begin(115200); //инициализация ком порта
attachInterrupt(1, speedometr, RISING); //прерывание спидометра по фронту импульса
>
//********************************************************************
void loop()<
Serial.print (sp);
sz = sz — 1;
if (sz == 0)<
sp = 0;
>
delay(50);
>
//********************************************************************
void speedometr()< //измеряем частоту на входе спидометра по прерыванию
sp=(600000.0/(micros() — micros_sp));
micros_sp= micros();
sz = 30;
>
Код работает следующим образом:
При получении фронта импульса на входе с прерыванием, срабатывает обработчик прерывания void speedometr(). В обработчике из текущего значения системного таймера «micros()» отнимается предыдущее значение этого таймера, записанное в переменную micros_sp. Таким образом мы получаем время между импульсами, то бишь период, в микросекундах. Зная период вычисляем частоту «f = 1000000/(micros() — micros_sp) Гц». Переводим Гц в км/ч «sp = 0.6 *1000000/(micros() — micros_sp)» (для 6-ти импульсного датчика скорости). Запоминаем текущее значение таймера «micros_sp= micros()» для использования в обработке следующего импульса. Переменная
«sz» служит для обнуления значения скорости, если с момента прихода последнего импульса блок «void loop()» выполнился 30 раз, то есть если скорость равна нулю и новые импульсы не приходят. Для некоторых датчиков прерывание по фронту (RISING) может не корректно обрабатываться. В этом случае следует использовать прерывание по спаду(FALLING). Аналогичным образом обрабатывается сигнал зажигания. При переводе Гц в об/мин. следует помнить что в 4-х цилиндровых 4-х тактных двигателях за один оборот коленвала приходит два импульса зажигания.

Тахометр на ардуино для автомобиля

Комментарии 55

Тахометр на ардуино для автомобиля

Спидометр вижу тахометр нет …

Тахометр на ардуино для автомобиля

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

Тахометр на ардуино для автомобиля

Приветствую.
К какому пину ардуино подключается сенсор (в моём случае датчик холла)? В примере кода я не вижу знакомых букв (я не умею программировать, пытаюсь слепливать готовые скетчи), извините.
Нашел подобный по функциям код, но для тахометра, там функция не micros a millis с данными 60 импульсов на оборот, какой множитель нужен, если на редукторе 6 магнитов? Спасибо, и еще раз простите за такие лёгкие и глупые для вас вопросы. Я пол часа только пытался скомпилировать и исправлял ошибки, т.к. простое копирование текста привело к замене символов ))

Тахометр на ардуино для автомобиля

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

Тахометр на ардуино для автомобиля

Прошу прощения, но! я так понимаю что используется 20 порт ардуино мега или Уно? или 21 у леонардо… Я прав? если нет то подскажите пожалуйста порт… и с чего конкретно можно взять датчик?

Тахометр на ардуино для автомобиля

не могли бы подсказать как сделать так чтобы конвертировать импульсы? для свапа обычно делают коректор спидометра

Тахометр на ардуино для автомобиля

Интересная идея, спасибо!
Если ардуино будет видеть (понимать) обороты двигателя — то я смогу настроить заранее запрограммированные обороты двигателя на круизе.
То есть сделать «память круиза»
-разогнался на пятой передаче до 80-90 км/час
-включил кнопку «ПАМЯТИ КРУИЗА», = цель достижение 3тыс. оборотов двигателя и Ардуино сама будет плюсовать «кнопкой круиза» пока не увидит с датчика тахометра эти обороты (надо найти как подлючиться к нему)
===============================

В планах это, покритикуйте!

Безопасность управления круизом:
— Нажатие на педаль ТОРМОЗА отключает (обесточивает) питание АРДУИНО управления круизом.
— Линия управления круизом ДОПОЛНИТЕЛЬНО разрывается от Ардуино механическим переключателем на торпеде
— Перед началом каждого действия АРДУИНО зажигает на 70 мС красный 0,5вт светодиод на панели проборов — предупреждая о начале работы автоматизиции.

Алгоритмы управления круизом:
1) Быстрый разгон — нажать за 1 секунда 5-6 раз кнопку «ПЛЮС» круиза.
2) Плавный (экономичный) разгон — нажимать кнопку «ПЛЮС» круиза 1 раз каждую секунду, пока не достигнута нужная скорость

3) Быстрое торможение двигателем — нажать кнопку «МИНУС» круиза 5-6 раз
4) Плавное торможение двигателем — нажимать кнопку «МИНУС» круиза 1 каждую секунду, пока не достигнута нужная скорость.

5) Снижение скорости круиза в горку и восстановление скорости на прежний уровень после горки:
— для начала работы снижения скорости круизом авто должно быть на ровном (угол наклона менее 5 градусов) участке дороги не менее 60 секунд. Этим мы отключаем работу автоматики при езде в горку на ручном режиме — автоматика должна работать ТОЛЬКО если мы с ровного места начинаем ехать в горку.
— нажать один раз кнопку «МИНУС» круиза через 20 секунд после того, как угол наклона составляят более 15 градусов. — продолжать нажимать кнопку «МИНУС» ещё три раза, по одному разу каждые 10 секунд если угол наклона не уменьшается.
— если угол наклона (горка) стала меньше 5 градусов — начать нажимать «ПЛЮС» круиза четыре раза с интервалом 10 секунд между нажатиями.

Пункт 5
— подобрать уровень наклона, количество коррекций круиза и интервалы между коррекциями опытным путём.
— сделать 2-3 варианта в зависимости от угла наклона горки (пологая, средняя, крутая).

Источник

Тахометр на Ардуино и датчике Холла

П ривет. В этой статье расскажу, как я сделал цифровой тахометр на Ардуино (Arduino) и датчике Холла для китайского шпинделя 0,5кВт диаметром 52 мм.

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

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

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

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

Схема подключения тахометра на Ардуино

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

Скетч для тахометра на Ардуино

Сборка тахометра

Итак, начнем по порядку:

Индикатор

При изготовлении тахометра мне хотелось, чтобы индикатор был аккуратно и красиво установлен в корпус блока управления станком. В качестве корпуса я использовал корпус-рамку от вышедшего из строя вольт/ампер метра. Плата индикатора TM1637 практически идеально подходила в этот корпус. Только нужно было обработать напильником — снять по 1 мм с каждой стороны.
Также заменил стандартные пины на разъем XH2.54 4 pin. Получилось практически как заводское изделие.

Тахометр на ардуино для автомобиля Индикатор тахометра TM1637

Плата датчика Холла

Для аккуратного крепления датчика Холла на шпиндель пришлось сделать новую печатную плату. Кому интересно как я делаю печатные платы читай в этой статье. После изготовления платы, я перенес все детали с KY-003, а так же добавил разъем XH2.54 3 pin. И еще вырезал изоляционную прокладку из какого-то пластика толщиной 3 мм и просверлил в ней небольшие отверстия, чтобы плата ложилась на прокладку всей плоскостью.

Тахометр на ардуино для автомобиля

Тахометр на ардуино для автомобиля

Тахометр на ардуино для автомобиля

Печатная плата тахометра на Ардуино

Также на плате предусмотрено место под SMD конденсатор, для устранения помех от шпинделя. Но пока он мне не понадобился — экранированный кабель справляется со своей задачей.

Установка платы датчика Холла

Во-первых, для реализации тахометра, мне нужен был небольшой неодимовый магнит, который нужно было прикрепить на вал шпинделя. Перерыл все ящики — я ничего подходящего не нашел. Зато нашел старый, нерабочий cd-rom от ноутбука. Вот в нем, в катушке электромагнита открывания, как раз и нашел, то, что нужно — небольшой, прямоугольный неодимовый магнит!

Определив высоту и полярность, я приклеил магнит к валу на «суперклей» и обтянул вал с магнитом термоусадкой. На копус шпинделя приклеил прокладку, а уже на прокладку — плату. Как видите — получилось довольно аккуратно. Защитный колпачек в процессе обдумывания, так что, пока без него 🙂

Тахометр на ардуино для автомобиля Установка платы на шпиндель

Датчик Холла 3144 реагирует каждой своей стороной либо на северный, либо на южный полюс магнита, так что перед установкой магнита — определи его положение!

Как протянуть провода от датчика, я расскажу в статье посвященной прокладке кабелей, а пока небольшое видео о работе тахометра на Arduino Nano и индикаторе TM1637

На этом всё. Если понравилось — ставьте лайки, делитесь с друзьями в соцсетях и подписывайтесь на уведомления о новых статьях!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *