Вот теперь и сам вопрос как это можно решить схематично, т. е. сделать так чтобы на вход МК при прохождении датчика шла чистая 1?
Расчет частоты вращения коленвала
У меня возник вопрос по этой теме. Пробовал считать обороты на МК Attiny2313 используя метод прерывания по фронту и внутренний таймер. Кварц не вешал. Но я хочу добиться заводки машины. Алгоритм простой если обороты>640об/мин машина работает сама. А вот теперь о проблеме, если сигнал брать с выхода тахометра на разъеме ОБД2, то процент заводок <80. Поначалу я грешил на погрешность, но при увеличении оборотов в условии получал перекрут. После пришла в голову мысль и я приклеил кусок картонки к шкиву коленвала и поставил оптический датчик от принтера. Заводилась всегда. Но это не выход датчик забьется грязью и все. Я посмотрел у меня в распредвале отверстие, а напротив стоит датчик оборотов, судя по всему работает по принципу изменения магнитной индукции при прохождении отверстия мимо датчика.
Вот теперь и сам вопрос как это можно решить схематично, т. е. сделать так чтобы на вход МК при прохождении датчика шла чистая 1?
Вот теперь и сам вопрос как это можно решить схематично, т. е. сделать так чтобы на вход МК при прохождении датчика шла чистая 1?
- Реклама
Напрямую или через резистор. У большинства распредвальных датчиков именно пятивольтовый сигнал, хотя бывают и исключения. Сними осцилку оттуда - и всё поймёшь.
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
Я снимал осциллограмму получается так, 10-15% от +4 до +12 вольт остальное 0. Так вот я и думаю может имеет смысл сделать развязку на оптопаре и стабилитроне или поставить триггер? Мне за 1 оборот нужна одна!!! единица за такт. Подключиться напрямую к датчику, что Вы имели ввиду? И какой в этом смысл если датчик сам создает индукцию то бишь остаточное напряжение?
Я имел в виду, что бльшинство распредвальных основано на эффекте холла. И там уже есть эта лог. единица на оборот. Остаётся её только взять. Опторазвязка - зачем? У нас и так измерительная схема сидит на общем минусе авто.
Прибор, защищённый предохранителем, сгорает первым, защитив предохранитель. Закон Мерфи.
Может датчик холла и работает так, но у меня дизельное авто и тут только 2 варианта либо тахометр с ОБД2 разъема либо +12В от первой форсунки, но форсунка за один оборот тоже открыта некоторое время. А вот что если попробовать триггер, ну скажем как только приходит 1 она идет ка порт МК и на рессет триггера, таким образом можно получить чистую 1 за один такт и один оборот останется посчитать сколько тиков пройдет между прерыванием. Или же я не прав и МК не успеет поймать 1 и триггер сбросится?
Вообще я не претендую на правильность моего предположения но не могу справиться с этой проблеммой.))
для понятности прикреплю миниатюру))
Вообще я не претендую на правильность моего предположения но не могу справиться с этой проблеммой.))
для понятности прикреплю миниатюру))
- Реклама
- Сообщения: 986
- Зарегистрирован: Чт янв 13, 2011 13:51:26
Вы надумали проблему там, где её нет. Настроили прерывание по фронту-> поймали его-> включили таймер-> ждёте следующий фронт->поймали его->остановили таймер. Всё! Если использовать специально предназначенный для этих целей вход ICP1, то занесение состояния таймера будет осуществляться аппаратно.rxstart1 писал(а):А вот что если попробовать триггер, ну скажем как только приходит 1 она идет ка порт МК и на рессет триггера
Тогда следующий вопрос как включить вход ICP1 в AVR на Attiny 2313 Тахоимпульс появляется на Port D 6 нога. И еще вопрос в догонку достаточно ли для этих целей внутреннего таймера или все таки лучше подцепить кварц?
Лучше тактироваться от кварца. На вход ICP1 (лапа PD6 у ATtiny2313) сигнал надёжнее подавать через транзисторный формирователь или через встроенный аналоговый компаратор, настроенный на управление захватом таймера Т1.
ну я так и подключал на базу транзистора через резак вх импульса а на коллектор на порт эмитер на землю. А вот по поводу компанатора разъясните поподробнее если не трудно?
rxstart1 Схема следующая: триггер Шмитта из входного сигнала формирует прямоуголный сигнал определенного уровня(например с размахом 5 вольт) - далее на одновибратор - этот формирует Вам заданную длительность прямоугольного импульса. Если Вам нужно считать, то все счетчики требуют (работают) от фронта импульса, им длительность как то пофигу: пришел фронт(должен быть крутой, а крутой фронт формирует именно триггер Шмитта). = счетчик переключился.
Учите тонкости работы логических микросхем, желательно у Шелестова: он подробно и доходчиво писал.
Датчик: для снятия сигнала обычно используют датчики индуктивного типа. как самые простые и надежные. Датчик Холла тоже надежен. Но только не оптический...
Учите тонкости работы логических микросхем, желательно у Шелестова: он подробно и доходчиво писал.
Датчик: для снятия сигнала обычно используют датчики индуктивного типа. как самые простые и надежные. Датчик Холла тоже надежен. Но только не оптический...
А поболтать?
т.е Brigadir Вы всетаки предлагаете использовать триггер шмитта для формирования фронта? Но вопрос при следующем фронте тригер должен установится в 0? так все таки надо на ресет параллельно сигнал слать?
- Сообщения: 191
- Зарегистрирован: Вт дек 27, 2011 01:13:21
rxstart1
Тригер шмитта это не тот тригер о котором вы думаете. Это обычная логическая микросхема например с логикой работы НЕ или 2И-НЕ. просто эта микросхема имеет разные логические уровни при переключении из 0 в 1 и при переключении из 1 в 0.Эту микросхему настоятельно рекомендуется применять если сигнал имеет пологий фронт. одним словом если есть хоть малейшее подозрение что входной сигнал может иметь пологий фронт применение тригера шмитта обязательно.
Тригер шмитта это не тот тригер о котором вы думаете. Это обычная логическая микросхема например с логикой работы НЕ или 2И-НЕ. просто эта микросхема имеет разные логические уровни при переключении из 0 в 1 и при переключении из 1 в 0.Эту микросхему настоятельно рекомендуется применять если сигнал имеет пологий фронт. одним словом если есть хоть малейшее подозрение что входной сигнал может иметь пологий фронт применение тригера шмитта обязательно.
Я Вам про триггер Шмитта....поучили бы немного логику работы логики....Я же не могу тут всю книжку перепечатывать?rxstart1 писал(а):т.е Brigadir Вы всетаки предлагаете использовать триггер шмитта для формирования фронта? Но вопрос при следующем фронте тригер должен установится в 0? так все таки надо на ресет параллельно сигнал слать?
А поболтать?
Эт что, бодание с сигналкой с автозапуском, если да, то что за сигналка, и зачем изобретать велосипед?rxstart1 писал(а): Но я хочу добиться заводки машины. Алгоритм простой если обороты>640об/мин машина работает сама.
- Сообщения: 986
- Зарегистрирован: Чт янв 13, 2011 13:51:26
"А вот с этого момента поподробнее пожалуйста" (с)abracadabra писал(а): и зачем изобретать велосипед?
Ибо (если атор позволит), я бы влился в тему со своей проблемой, Если нет - окажет. Создам отдельную тему.
У меня кнопка "Стоп-Старт". И уже прошла первичные испытания на авто (карбюраторном). Но подключена нештатным, частным способом. А хотелось бы унифицированную приставку "Двигатель запущен" позволяющую установить "Стоп-Старт" на любой карбюраторный двигатель.
Впрочем использование мощного контроллера мне видится избыточным И потому, возможно, я не совсем точно вписываюсь в данную тему.
ПИК12 мне видится достаточным. на одну из ног - выход с гуделки (мультивибратора) на 555 - опорная частота. На вторую сигнал с любого формирователя. Тахометра, например. Если между сигналами тахометра помстилось опорных импульсов меньше, чем заданно - двигатель заведён. Сигнал на выходе меняет лог. уровень. Для универсальности устройства - две ноги выхода ПИКа12 - инверсные.
Не возьмётся ли кто написать программу под это?
- Сообщения: 191
- Зарегистрирован: Вт дек 27, 2011 01:13:21
Arwood
Если вы используете PIC12 вам не зачем использовать использовать внешние мультивибраторы или 555 таймер. Все что требуется это обеспечить чтобы фронты сигнала с датчика обладали достаточной крутизной, затем этот сигнал подается на PIC. Все остальное делает программа. 12 серия не имеет внешних прерываний но программных средств достаточно чтобы посчитать количество импульсов за заданный промежуток времени. Хочу вам сказать что в пиках внутренний таймер имеет очень высокую чувствительность к температуре. Сушествуют даже схемы измерения температуры основанные на этом эффекте. Хотя для данного использования думается это не важно. Если будете использовать кварц то микрочип выпускал специальный документ как правильно отрегулировать RC обвеску кварца, для того чтобы схема устойчиво работала при -20 и минимальном напряжении питания и при +40 и мах напряжении питания. Иначе может быть неустойчивая работа генератора. Исходя из своего опыта я ставил на логике 74АС кварцованый генератор и уже через буфер на вход синхронизации PIC16. Метод оказался исключительно надежный. И еще не заморачивайтесь над вопросом 1 оборот -- 1 импульс. Какая разница программе какое число импульсов считать что машина завелась
Если вы используете PIC12 вам не зачем использовать использовать внешние мультивибраторы или 555 таймер. Все что требуется это обеспечить чтобы фронты сигнала с датчика обладали достаточной крутизной, затем этот сигнал подается на PIC. Все остальное делает программа. 12 серия не имеет внешних прерываний но программных средств достаточно чтобы посчитать количество импульсов за заданный промежуток времени. Хочу вам сказать что в пиках внутренний таймер имеет очень высокую чувствительность к температуре. Сушествуют даже схемы измерения температуры основанные на этом эффекте. Хотя для данного использования думается это не важно. Если будете использовать кварц то микрочип выпускал специальный документ как правильно отрегулировать RC обвеску кварца, для того чтобы схема устойчиво работала при -20 и минимальном напряжении питания и при +40 и мах напряжении питания. Иначе может быть неустойчивая работа генератора. Исходя из своего опыта я ставил на логике 74АС кварцованый генератор и уже через буфер на вход синхронизации PIC16. Метод оказался исключительно надежный. И еще не заморачивайтесь над вопросом 1 оборот -- 1 импульс. Какая разница программе какое число импульсов считать что машина завелась
Решил вопрос с автозапуском, помог электронный осцилограф. Дело в том, что в первые 0,25-0,5сек, вместо четких импульсов, идет вякая муть, с очень малыми фронтами, отсюда и весь косяк. Поэтому я разработал алгоритм для идеального автостарта, работает на 100%.
условие простое:
1. включить АСС
2. ждать 0,5сек
3. включить зажигание
4. ждать 1сек или пока не погаснет лампочка свечей накала
5. выключить АСС
6. крутим стартер не менее 1сек и не более 10 сек, если обороты достигли 620 об/мин машина завелась выключить стартер, включить АСС
не завелась выключить все.
подключаем 2 байтный таймер и настраиваем на совпадение по значению, запихиваем туда 0х0F42, что соответствует 0,5 сек. внутри обработчика считаем прерывания на ноге и получаем значение Х об/0,5сек или Х*120 об/мин, но переводить программно не стоит, работать быстрее будет.
У меня все получилось работает четко в 99% из 100 заводит, 1% и ключом бывало косячило)) Я думаю это самый простой и точный способ проверки на заводку двигателя.
Кстати за 0,5 сек двигатель не успевает заглохнуть если прервать и включить заново линию IGN. По такому принципу у меня работает аварийный канал, тоже кстати проверено на практике.
условие простое:
1. включить АСС
2. ждать 0,5сек
3. включить зажигание
4. ждать 1сек или пока не погаснет лампочка свечей накала
5. выключить АСС
6. крутим стартер не менее 1сек и не более 10 сек, если обороты достигли 620 об/мин машина завелась выключить стартер, включить АСС
не завелась выключить все.
подключаем 2 байтный таймер и настраиваем на совпадение по значению, запихиваем туда 0х0F42, что соответствует 0,5 сек. внутри обработчика считаем прерывания на ноге и получаем значение Х об/0,5сек или Х*120 об/мин, но переводить программно не стоит, работать быстрее будет.
У меня все получилось работает четко в 99% из 100 заводит, 1% и ключом бывало косячило)) Я думаю это самый простой и точный способ проверки на заводку двигателя.
Кстати за 0,5 сек двигатель не успевает заглохнуть если прервать и включить заново линию IGN. По такому принципу у меня работает аварийный канал, тоже кстати проверено на практике.


