Снять показания с катушки автомобиля

Baltazar
Offline
Зарегистрирован: 02.10.2014

Да-да, как смешно. Я бы на вас посмотерл, когда вы только начинали разбираться в электротехнике. И кстати я таки был прав насчёт наводок, так что вариант с подсчётом импульсов через прерывание хоть и работает, но требует многовато ресурсов и к нему надо прикручивать входные фильтра.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

Baltazar
Offline
Зарегистрирован: 02.10.2014

jeka_tm пишет:

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

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

nik182
Offline
Зарегистрирован: 04.05.2015

Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.   

Baltazar
Offline
Зарегистрирован: 02.10.2014

nik182 пишет:

Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.   

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

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
Baltazar
Offline
Зарегистрирован: 02.10.2014

jeka_tm пишет:

пользуйся

Опять время между импульсами... На подобнм принципе у меня всё рабтает сейчас, только более точно, через таймеры, потому что вариант с  Millis() и Micros() даёт погрешнсти(хотябы потому, что помимо самого считывания, там ещё туева хуча другого кода и других задач). Этот способ работает только в случае, если есть чистый и ровный импульсный входной сигнал. Что имеем при съёме сигнала с катушки зажигания - куча наводок (Потому, что в ато  без них никак), котрые естественно воспринимаются как импульсы, плюс НЕРОВНЫЕ импульсы, как по ширине, так и по времени между сигналами - это обусловлено конструкцией трамблёра, имеющего окошки разной велчины. 

nik182
Offline
Зарегистрирован: 04.05.2015

Baltazar пишет:

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

Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит. 

PulseIn имеет третий параметр  - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.

Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.     

 

Baltazar
Offline
Зарегистрирован: 02.10.2014

nik182 пишет:

Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит. 

PulseIn имеет третий параметр  - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.

Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.     

 

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

Baltazar
Offline
Зарегистрирован: 02.10.2014

.

nik182
Offline
Зарегистрирован: 04.05.2015

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

Посмотрите здесь http://arduino.ru/forum/apparatnye-voprosy/schityvanie-impulsov#comment-243833 Тоже тахометр. С помощью pulseIn получаем период импульса с датчика Холла за два состояния HIGH LOW. Можно провести анализ длительностей HIGH LOW состояний и точно сказать, когда идёт первый оборот коленовала. Можно посчитать длительность 9-ти смен  HIGH LOW - получим полный оборот и будем иметь точное(!) значение за один оборот. Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.  

  

Baltazar
Offline
Зарегистрирован: 02.10.2014

nik182 пишет:

 Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.  

  

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

 

nik182
Offline
Зарегистрирован: 04.05.2015

Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.

Baltazar
Offline
Зарегистрирован: 02.10.2014

nik182 пишет:

Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.

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

nik182
Offline
Зарегистрирован: 04.05.2015

Да. Чуда не случилось. Fig 16 даташита. Четверть секунды реакции. Цифровым способом быстрее.

Baltazar
Offline
Зарегистрирован: 02.10.2014

nik182 пишет:

Да. Чуда не случилось. Fig 16 даташита. Четверть секунды реакции. Цифровым способом быстрее.

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