Да-да, как смешно. Я бы на вас посмотерл, когда вы только начинали разбираться в электротехнике. И кстати я таки был прав насчёт наводок, так что вариант с подсчётом импульсов через прерывание хоть и работает, но требует многовато ресурсов и к нему надо прикручивать входные фильтра.
ад при чем тут начинающий. понравилась твоя упертость, так и никак иначе, в итоге не вопросы, а утверждения
Благодарю за ваши коментарии, благодаря вам я вспомнил зачем сюда приходил изначально, и теперь, снова пересмотрев этот вариант, нашёл таки как собрать импульсно-аналоговый преобразователь с нужными мне параметрами.
Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.
Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.
в 213 Ниве сигнал для тахметра берётся с катушки зажигания, а в самом тахометре реализован ждущий мультивибратор. Так что отдельного чистого шима там нет, а сигнал с датчика хола идёт настолько слабый, что делители дают затухание сигнала и пропуски в рабте зажигания - вариант уже пройденый.Это если по железу, теперь по программе.
Пробовал я функцию PulseIn и, если я правильно понял, то она каждый раз ждёт положительного всплеска, и пока она его ждёт, программа стоит, то есть используя её, мы понижаем частоту работы программы до частоты сигнала, что мягко гворя неудобно на низких частотах.
Опять время между импульсами... На подобнм принципе у меня всё рабтает сейчас, только более точно, через таймеры, потому что вариант с Millis() и Micros() даёт погрешнсти(хотябы потому, что помимо самого считывания, там ещё туева хуча другого кода и других задач). Этот способ работает только в случае, если есть чистый и ровный импульсный входной сигнал. Что имеем при съёме сигнала с катушки зажигания - куча наводок (Потому, что в ато без них никак), котрые естественно воспринимаются как импульсы, плюс НЕРОВНЫЕ импульсы, как по ширине, так и по времени между сигналами - это обусловлено конструкцией трамблёра, имеющего окошки разной велчины.
Пробовал я функцию PulseIn и, если я правильно понял, то она каждый раз ждёт положительного всплеска, и пока она его ждёт, программа стоит, то есть используя её, мы понижаем частоту работы программы до частоты сигнала, что мягко гворя неудобно на низких частотах.
Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит.
PulseIn имеет третий параметр - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.
Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.
Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит.
PulseIn имеет третий параметр - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.
Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.
на работе датчика хола сказывается даже если подключть туда оптопару, а если пускать напрямую на контроллер, идут наводки да PulsIn работает корректно только с равномерными импульсами, а тут у нас не ШИМ, а неравномерный импульсный сигнал В итоге показания будут скакать постоянно и чем больше частота, тем больше погрешность.
Как раз оптопару подключать без усилителя нельзя. Она ест очень много тока. Поэтому оптопара не показатель плохого взаимодействия с датчиком Холла, а наоборот показатель непонимания вами раздела электричество из курса физики средней школы. Это я не в укор, а в качестве совета немного подучить этот раздел.
Посмотрите здесь http://arduino.ru/forum/apparatnye-voprosy/schityvanie-impulsov#comment-243833 Тоже тахометр. С помощью pulseIn получаем период импульса с датчика Холла за два состояния HIGH LOW. Можно провести анализ длительностей HIGH LOW состояний и точно сказать, когда идёт первый оборот коленовала. Можно посчитать длительность 9-ти смен HIGH LOW - получим полный оборот и будем иметь точное(!) значение за один оборот. Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.
Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.
От чего же? Всё реализуется на одной, специально созданной для этого микросхеме, со встроеными притяжками, тригирами и диодами. Остаётся повесить только регулировочную обвязку и в итоге имеем линейную зависимость напряжения от входной частоты с настраиваемой полосой выходных напряжений. А поскольку микросхема создавалась специально для использования в автомобильных тахометрах, входной сигнал не обязательно начисто вычищать от шумов. Плюс можно тут же при помощи пары деталей реалиизовать плавный набор значений при резком скачке частоты, что тоже приходилось делать программно.
Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.
Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.
LM2907 и LM2917 - примеры обвязки есть в даташите, только на выходе всё равно выравнивать сигнал надо, но если верить тестам в протеусе, легко можно выровнять конденсатором до дребезга в пределах сотых вольта, что для измерений уже не критично.
Да-да, как смешно. Я бы на вас посмотерл, когда вы только начинали разбираться в электротехнике. И кстати я таки был прав насчёт наводок, так что вариант с подсчётом импульсов через прерывание хоть и работает, но требует многовато ресурсов и к нему надо прикручивать входные фильтра.
ад при чем тут начинающий. понравилась твоя упертость, так и никак иначе, в итоге не вопросы, а утверждения
ад при чем тут начинающий. понравилась твоя упертость, так и никак иначе, в итоге не вопросы, а утверждения
Благодарю за ваши коментарии, благодаря вам я вспомнил зачем сюда приходил изначально, и теперь, снова пересмотрев этот вариант, нашёл таки как собрать импульсно-аналоговый преобразователь с нужными мне параметрами.
Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.
Я дико извиняюсь, но ни один транзистор в мире не имеет скважности. На коммутаторе Нивы есть совершенно класный вывод номер 6 на котором присутствует чистенький сигнал с датчика Холла. Пропустив через делитель 1:2 можно смело подавать на вход ардуины и с помощью функции pulseIn http://arduino.ru/Reference/PulseIn прямо читать обороты двигателя. Есть коммутаторы с седьмой ножкой - на ней да, чистый ШИМ для тахометра приборной панели. Его тоже можно читать с помощью pulseIn гораздо быстрее и точнее чем analogRead.
в 213 Ниве сигнал для тахметра берётся с катушки зажигания, а в самом тахометре реализован ждущий мультивибратор. Так что отдельного чистого шима там нет, а сигнал с датчика хола идёт настолько слабый, что делители дают затухание сигнала и пропуски в рабте зажигания - вариант уже пройденый.Это если по железу, теперь по программе.
Пробовал я функцию PulseIn и, если я правильно понял, то она каждый раз ждёт положительного всплеска, и пока она его ждёт, программа стоит, то есть используя её, мы понижаем частоту работы программы до частоты сигнала, что мягко гворя неудобно на низких частотах.
пользуйся
пользуйся
Опять время между импульсами... На подобнм принципе у меня всё рабтает сейчас, только более точно, через таймеры, потому что вариант с Millis() и Micros() даёт погрешнсти(хотябы потому, что помимо самого считывания, там ещё туева хуча другого кода и других задач). Этот способ работает только в случае, если есть чистый и ровный импульсный входной сигнал. Что имеем при съёме сигнала с катушки зажигания - куча наводок (Потому, что в ато без них никак), котрые естественно воспринимаются как импульсы, плюс НЕРОВНЫЕ импульсы, как по ширине, так и по времени между сигналами - это обусловлено конструкцией трамблёра, имеющего окошки разной велчины.
Пробовал я функцию PulseIn и, если я правильно понял, то она каждый раз ждёт положительного всплеска, и пока она его ждёт, программа стоит, то есть используя её, мы понижаем частоту работы программы до частоты сигнала, что мягко гворя неудобно на низких частотах.
Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит.
PulseIn имеет третий параметр - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.
Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.
Вы просто не умеете их готовить((С) кто то там). Сигнал с Холла отличный. Делитель надо делать правильный. Типа два резистора 50кОм и 50кОм. Если подключить такой делитель урону сигнала Холла не будет, а ардуине хватит.
PulseIn имеет третий параметр - мах время ожидания. По умолчанию секунда. Но никто не мешает вам поставить например 200 мс - тогда, если движок стоит вы будите получать ноль 5 раз в секунду. Кроме того Второй параметр говорит что ждём - LOW или HIGH.
Ваше решение тоже имеет право на использование. Нужно помнить о том, что вы интегрируете ШИМ и на низких частотах для получения приемлимой точности время интегрирования должно составлять более 10 периодов колебаний, что существенно дольше одного для pulseIn.
на работе датчика хола сказывается даже если подключть туда оптопару, а если пускать напрямую на контроллер, идут наводки да PulsIn работает корректно только с равномерными импульсами, а тут у нас не ШИМ, а неравномерный импульсный сигнал
В итоге показания будут скакать постоянно и чем больше частота, тем больше погрешность.
.
Как раз оптопару подключать без усилителя нельзя. Она ест очень много тока. Поэтому оптопара не показатель плохого взаимодействия с датчиком Холла, а наоборот показатель непонимания вами раздела электричество из курса физики средней школы. Это я не в укор, а в качестве совета немного подучить этот раздел.
Посмотрите здесь http://arduino.ru/forum/apparatnye-voprosy/schityvanie-impulsov#comment-243833 Тоже тахометр. С помощью pulseIn получаем период импульса с датчика Холла за два состояния HIGH LOW. Можно провести анализ длительностей HIGH LOW состояний и точно сказать, когда идёт первый оборот коленовала. Можно посчитать длительность 9-ти смен HIGH LOW - получим полный оборот и будем иметь точное(!) значение за один оборот. Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.
Вариантов много. Но в любом случае этот путь быстрее и точнее чем аналоговое преобразование импульсов в постоянное напряжение.
От чего же? Всё реализуется на одной, специально созданной для этого микросхеме, со встроеными притяжками, тригирами и диодами. Остаётся повесить только регулировочную обвязку и в итоге имеем линейную зависимость напряжения от входной частоты с настраиваемой полосой выходных напряжений. А поскольку микросхема создавалась специально для использования в автомобильных тахометрах, входной сигнал не обязательно начисто вычищать от шумов. Плюс можно тут же при помощи пары деталей реалиизовать плавный набор значений при резком скачке частоты, что тоже приходилось делать программно.
Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.
Т.е. Микросхема делает то же самое, что предлагаю я - цифрует период, а потом ЦАПом выдает аналог? Поскажите название микросхемы. Очень интересно посмотреть характеристики. Использовать железо вместо программы, когда функции железа полностью перекрывают необходимые требования как по мне это всегда хорошо. Меньше проблем возникает при эксплуатации.
LM2907 и LM2917 - примеры обвязки есть в даташите, только на выходе всё равно выравнивать сигнал надо, но если верить тестам в протеусе, легко можно выровнять конденсатором до дребезга в пределах сотых вольта, что для измерений уже не критично.
Да. Чуда не случилось. Fig 16 даташита. Четверть секунды реакции. Цифровым способом быстрее.
Да. Чуда не случилось. Fig 16 даташита. Четверть секунды реакции. Цифровым способом быстрее.
для моих нужд этого более чем достаточно, наоборот приходилось энерционность эмулировать програмно.