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

blink977
Offline
Зарегистрирован: 20.01.2012

каким образом можно считать количество оборотов с тахометра? мне не нужно выводить показания на экран или куда-нибудь еще, просто зафиксировать момент когда обороты будут, допустим 300об/мин.

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

maksim
Offline
Зарегистрирован: 12.02.2012

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

 

 

blink977
Offline
Зарегистрирован: 20.01.2012

машина бмв, сигнал беру с черного провода идущего на панель приборов от ЭБУ. значит подключать надо к цифровому пину? 7805 сойдет?

step962
Offline
Зарегистрирован: 23.05.2011

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

Да и по любому - два сопротивления и дешевле, и проще в монтаже, чем 7805 и полагающиеся ему для обвязки 2-3 конденсатора.

maksim
Offline
Зарегистрирован: 12.02.2012

Если точно идет с эбу и не идет никуда больше, то скорее всего амплитуда сигнала 5в, поповоду стабилизатора - наврядли его можно будет поставить, так как он вродебы и сам пульсирует, а при измерении оборотов измеряется количество микросекунд от импульса до импульса. У вас есть возможность подключить этот провод к дуине, а дуину к компу?

blink977
Offline
Зарегистрирован: 20.01.2012

но я буду иметь и прерывания не так ли?

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

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

maksim
Offline
Зарегистрирован: 12.02.2012

В смысле? Одно внешнее прерывание пойдет как раз на измерение оборотов.

blink977
Offline
Зарегистрирован: 20.01.2012

посмотрел в ETM, черный провод идет от ЭБУ. так что там скорее всего 5 вольт, можно напрямую подключатся к ардуине?

maksim
Offline
Зарегистрирован: 12.02.2012

Лучше поставить резистор на всякий случай, киллоомов на 5

blink977
Offline
Зарегистрирован: 20.01.2012

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

я сейчас покопался в инете, и там говорится что лучше использовать оптрон или оптопару, что бы электрический "мусор" от генератора не шел на ардуину. что думаете по этому поводу?

maksim
Offline
Зарегистрирован: 12.02.2012

Кстати у бмв на "массе" минус?

blink977
Offline
Зарегистрирован: 20.01.2012

да, на минус. а что?

maksim
Offline
Зарегистрирован: 12.02.2012

Ну если у вас из мозгов(эбу) идет мосор, то тогда ставьте оптрон. )

blink977
Offline
Зарегистрирован: 20.01.2012

да минус, а что?

maksim
Offline
Зарегистрирован: 12.02.2012

Просто у некоторых машин масса это плюс, сталкивался с таким на субару.

blink977
Offline
Зарегистрирован: 20.01.2012

первый раз слышу.... я имел дело с японцами хонда,тойота и все цивилизованные были....

maksim
Offline
Зарегистрирован: 12.02.2012

Тогда так, подключаете  2 цифровой вывод через резистор 5 кОм к вашему проводу, а GND к массе, а дуину к компу. Предположим, что мозги дают один импульс за один оборот. Заливаем скейтч:

01#define RPMpin 2 // датчик Холла
02unsigned long microsold = 0;
03int rpm = 0;
04 
05void setup() {
06  Serial.begin(9600);
07  //digitalWrite(RPMpin, 1);
08  attachInterrupt(0, RPM, RISING);
09  //attachInterrupt(0, RPM, FALLING);
10}
11 
12void loop() {
13  Serial.println(rpm, DEC); // об/мин
14}
15void RPM (){
16  rpm = (1000000.0/(micros() - microsold))*60;
17  microsold = micros();
18}

Запускаем сериал-монитор и заводим двигатель.

maksim
Offline
Зарегистрирован: 12.02.2012

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

blink977
Offline
Зарегистрирован: 20.01.2012

спасибо, завтра попробую и отпишусь!

blink977
Offline
Зарегистрирован: 20.01.2012

короче, подключил я ардуину к тахометру, правда впопыхах забыл прихватить резистор с дому )). показания серийного порта были самыми разными: сначала 0, потом на включение зажигания подскочили на 28886, завел мотор разницы нету. сбросил ресетом, сначала 0 потом 51, итд. на педаль акселератора реакции никакой. потом взял обычную светодиодную тестилку и подсоединил к вышеупомянутному проводу идущему к тахометру, загорелся +, а минус чуть поблек что значит что с провода идут положительные импульсы постоянного тока. мне вот интересно, это все может быть из за резистора?

maksim
Offline
Зарегистрирован: 12.02.2012

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

Если так, то попробуйте вот этот код:

01#define RPMpin 2 // датчик Холла
02unsigned long microsold = 0;
03int rpm = 0;
04 
05void setup() {
06  Serial.begin(9600);
07  digitalWrite(RPMpin, 1);
08  //attachInterrupt(0, RPM, RISING);
09  attachInterrupt(0, RPM, FALLING);
10}
11 
12void loop() {
13  Serial.println(rpm, DEC); // об/мин
14}
15void RPM (){
16  rpm = (1000000.0/(micros() - microsold))*60;
17  microsold = micros();
18}

 

leshak
Offline
Зарегистрирован: 29.09.2011

Никогда не копался в атомобилях, но возможно стоит читать не "сырой датчик", а уже обработанное бортовыми мозгами?

Насколько я знаю современные автомобили имеет цифровую шину... CAN Bus. С нее можно считать множество текущих параметров по протоколу OBD. В готовом, цифровом виде. В том числе и тахометр (температуру, моментальный расходи и т.п). Чем-то типа http://www.sparkfun.com/products/10039

Вот пример как это использования этого шилда  http://www.youtube.com/watch?v=PbA_bOO2mMw - там четко видно обороты двигателя.

Ну и на carduino, практически уверен, можно найти людей которые делали подобное.

 

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

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

 

blink977
Offline
Зарегистрирован: 20.01.2012

leshak пишет:

Никогда не копался в атомобилях, но возможно стоит читать не "сырой датчик", а уже обработанное бортовыми мозгами?

Насколько я знаю современные автомобили имеет цифровую шину... CAN Bus. С нее можно считать множество текущих параметров по протоколу OBD. В готовом, цифровом виде. В том числе и тахометр (температуру, моментальный расходи и т.п). Чем-то типа http://www.sparkfun.com/products/10039

Вот пример как это использования этого шилда  http://www.youtube.com/watch?v=PbA_bOO2mMw - там четко видно обороты двигателя.

Ну и на carduino, практически уверен, можно найти людей которые делали подобное.

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

blink977
Offline
Зарегистрирован: 20.01.2012

carduino.ru пишет:

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

 

 

отличная ссылка надо бы прочесть, спасибо!

blink977
Offline
Зарегистрирован: 20.01.2012

maksim пишет:

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

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

проверю код - отпишусь

blink977
Offline
Зарегистрирован: 20.01.2012

не пашет((

тоже самое

maksim
Offline
Зарегистрирован: 12.02.2012

Вы уверены, что этот провод на тахометр идет? Как проверяли, что это именно он?

maksim
Offline
Зарегистрирован: 12.02.2012

Схемы проводки на вашу машину искали? киньте ссылочку.

blink977
Offline
Зарегистрирован: 20.01.2012

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

maksim
Offline
Зарегистрирован: 12.02.2012

Качество картинки плахое, но судя по картинке, сигнал приходит из engine control module и там нарисован pnp-транзистор. Вы когда подключали дуину фишку из панели приборов вытаскивали или паралельно приборам подключались? Тахометор, когда подключена дуина работал?
 

blink977
Offline
Зарегистрирован: 20.01.2012

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

maksim
Offline
Зарегистрирован: 12.02.2012

blink977 пишет:

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

Да вот скорее всего не просто, можете рассмотреть транзистор у него стрелочка внутрь или наружу?

maksim
Offline
Зарегистрирован: 12.02.2012

Если внутрь (как я смог рассмотреть), то попробуйте первый вариант кода, но между GND и цифровым выводом 2 поставить подтягивающий резистор на 10 кОм. 

blink977
Offline
Зарегистрирован: 20.01.2012

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

blink977
Offline
Зарегистрирован: 20.01.2012

может и PNP, не поймешь ((

maksim
Offline
Зарегистрирован: 12.02.2012

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

maksim
Offline
Зарегистрирован: 12.02.2012

В общем пробуйте первый вариант кода, но между GND и цифровым выводом 2 подтягивающий резистор на 10 кОм.  А там будем думать дальше.

blink977
Offline
Зарегистрирован: 20.01.2012

"что то" показывали оба кода, вернее второй код только сначала показал, а потом только нули.

первый код показывал полно всего, но опять же реакции на педаль акселлератора не было, даже и запоздалой ((

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

maksim
Offline
Зарегистрирован: 12.02.2012

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

blink977
Offline
Зарегистрирован: 20.01.2012

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

попробую резистор поставить

maksim
Offline
Зарегистрирован: 12.02.2012

blink977 пишет:

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

попробую резистор поставить

Не совсем понял... какой синий провод, поконкретнее можно?

blink977
Offline
Зарегистрирован: 20.01.2012

вы говорили что может быть черный провод это сигнал того что двигатель заведен, я пояснил что функцию сигнала заведенного двигателя выполняет синий провод, на котором появляется +12 вольт когда двигатель заведется. черный провод - это 100 процентно тахометр!

maksim
Offline
Зарегистрирован: 12.02.2012

Вы только его пробовали отключать? Не работает только тахометр?

maksim
Offline
Зарегистрирован: 12.02.2012

Кстати, первый код с резистором проверяли? И еще вы то, что у вас сериал-монитор дает выложите посмотреть.

maksim
Offline
Зарегистрирован: 12.02.2012

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

blink977
Offline
Зарегистрирован: 20.01.2012

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

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

maksim
Offline
Зарегистрирован: 12.02.2012

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

leshak
Offline
Зарегистрирован: 29.09.2011

 Кстати про код.

Переменные которые меняются внутри функции обработки прерваний желательно объявлять с квалификатором  volatile.

В данном коде это переменные microsold, rpm

maksim
Offline
Зарегистрирован: 12.02.2012

Т.к. microsold используется исключительно в прерывании ее тип можно оставить без изменений, а вот у rpm желательно добавить volatile.

blink977
Offline
Зарегистрирован: 20.01.2012

пока не было возможности проверить, как только проверю - отпишусь!