Делаем «вечный» датчик массового расхода воздуха на ATiny13
Этот проект появился из-за нежелания покупать бывшую в употреблении около 30 (тридцати) лет деталь за совсем немаленькую сумму в 3000 — 5000 руб. Можно сказать что это будет проба пера в схемотехнике и программировании микроконтроллеров. Если интересно — продолжение под катом.
Осторожно много фото!
Итак, начинаем подпирать велосипеды костылями.
Вводные данные
BMW E30 в кузове купе 1986г с мотором M10B18 (4 цилиндра, 1.8л, инжектор):
Проблемы
1. Чихает
2. Не едет
3. Жрет и не толстеет
Годы в России не пощадили её. Высококачественный бензин, соляные ванны, «пористые дороги». Однако, больше всего ей досталось от бывших хозяев и суровых Русских автомехаников, бессмысленных и беспощадных, производивших ремонты сомнительной необходимости и эффективности. Ярким примером одного из таких ремонтов вы можете полюбоваться на КДПВ. А что это там такое беленькое, все в припое? Это керамическая плата— основная деталь ДМРВ , на нее нанесены пленочные резисторы и дорожка по которой должен бегать подвижный контакт. Как видно на фото она треснула, и некто пытался восстановить ее таким вот варварским методом. Безуспешно. Вот он — корень всех проблем! Тут нужно сказать что ДМРВ является основным датчиком, влияющим на смесеобразование.
Немного теории
Наша машинка оснащена чудом Немецкой промышленности системой распределенного впрыска L-Jetronic.
Система распределенного впрыска L-Jetronic является системой импульсного впрыска с электронным управлением количественным и качественным составом топливно-воздушной смеси. Для обеспечения импульсного впрыска топлива в системе применены форсунки с электромагнитным управлением.
Ну, распределённого — это громко сказано, тут все 4 форсунки соединены параллельно и, соответственно пшикают одновременно, хотя да, это я придираюсь, установлены они каждая напротив своего цилиндра в разных местах впускного коллектора — т.е. распределённо. Мозг здесь довольно глупенький — холостым ходом, зажиганием, прогревочными оборотами не управляет.
Все что ему подвластно — это несколько датчиков и форсунки.
Вернемся к ДМРВ. Здесь установлен электро-механический ДМРВ, в народе именуемый «лопата», очевидно за характерную форму подвижной заслонки.
Принцип действия его довольно прост: воздух потребляемый мотором проходит через входное отверстие, и в зависимости от интенсивности (считай массы воздуха в единицу времени) отклоняет измерительную заслонку на определенный угол. На оси заслонки установлен подвижный контакт, который и бегает по дорожке нашей многострадальной платы из первой картинки.
Варианты решения проблемы:
1. Купить новый ДМРВ — стоит космических денег 35000-60000 руб, сопоставимо со стоимостью авто.
2. Купить БУ ДМРВ — 30 лет эксплуатации, никаких гарантий, стоит 3000 — 5000 руб.
3. Купить новую плату (неоригинал, делают малыми партиями) — цена 300р+пересыл, выглядит так:
Как видно, конструкция отличается от заводской. Надежность под вопросом, в интернете можно найти негативные отзывы о якобы недолговечности сего решения, подтвержденные фотографиями изношенных плат подобного типа.
4. Купить ДМРВ современного типа без движущихся деталей + так называемый конвертер — цена вопроса немного отпугивает, так же необходимо будет адаптировать впускной тракт, наращивать длину патрубков и т. д.
5. Придумать что-то своё.
Для меня выбор был очевиден.
Я решил оставить механическую часть, так как никаких признаков износа не обнаружил. Думаю она прослужит дольше чем остальная машина.
Задача немного упростилась, необходимо преобразовывать угол поворота в напряжение. Хотя нет, постойте, не все так просто… Дело в том что как я уже говорил мозг здесь довольно глупенький и, соответственно на вход он хочет получать максимально готовые данные. Это отразилось в конструкции ДМРВ — график зависимости выходного напряжения от угла поворота оси заслонки нелинеен, и дополнительная сложность — он масштабирован сопротивлением датчика температуры воздуха, который так же встроен в ДМРВ. Соответственно характеристика датчика должна меняться в зависимости от температуры воздуха.
Поиск готового схемотехнического решения не привел к успеху. Проблема с износом ДМРВ подобного типа многих коснулась, много тем на специализированных форумах где на десятках страниц люди обсуждают как же её решить.
Для начала хотелось бы получить данные об угле поворота оси. Переменные резисторы и прочую механику я сразу отбросил, как ненадежные. Оптический датчик — хорошо, но пыль может доставить неприятности, а пыли в дороге хватает. Магнитные датчики — вероятно это то что нужно.
Нашёл вот такой: KMA-200.
С ходу не смог купить его в своей глуши. И случайно наткнулся на вот такой готовый ДПДЗ в котором и применен KMA-200.
В нагрузку получаю магнит с креплением, датчик уже на плате с необходимой обвязкой, покрыт лаком, защищающим от влаги и статики. Нашёл кстати похожий проект.
На выходе у такого датчика напряжение от 0 до 5 вольт зависимость от угла поворота линейная. Нужно как-то преобразовать ее в нужную нам характеристику. Аналоговые схемы в принципе могли бы обеспечить это, но были бы довольно сложны в проектировании и наладке, например какой-нибудь интегратор на операционниках с термокомпенсацией, но это для меня сложновато…
Тут я вспомнил что у меня есть горсть ATiny13, почему бы не использовать их?
Набросал и смоделировал схемку:
Немного о схеме.
- Микроконтроллер тактируется от внутреннего генератора частотой 8МГц.
- Использованы 2 канала АЦП, считывается угол поворота оси заслонки и уровень напряжения на резистивном делителе частью которого является датчик температуры.
- Выходной сигнал ШИМ с частотой около 18кГц
Далее простой фильтр и операционный усилитель LM358 из старой материнки (КУ=1+(330000/100000)=4.3), управляющий полевиком (из той же материнки). Максимальное выходное напряжение = 4.3 * 2.5 = 10,75В.
Зачем полевик спросите вы? А кто его знает отвечу вам я! Лишним не будет. С помощью этой схемы я управлял мощной нагрузкой в виде нескольких автомобильных ламп соединенных параллельно просто для проверки что она это тоже может.
Вообще все детали у меня были в наличии кроме датчика поворота.
Время писать прошивку! Это первая моя прошивка МК, так что конечно все не оптимально, и конечно я выбрал немного странноватый инструмент BascomAVR, в котором писать приходится на каком-то псевдо-кубейсике. Очевидно встроенный туда компилятор не очень оптимизирован, прошивка получается жирная, и полиномиальная интерполяция которую я хотел туда впихнуть к сожалению не влезла. Пришлось реализовать аппроксимацию тремя прямыми отрезками. Почему тремя? Потому что больше не влезло (Bascom + 1 кб flash).
Чтобы выяснить уравнения прямых буквально минут за 10 набросал тупую софтинку в Qt Creator, пошевелил контрольными точками, определился с положением прямых.
Красная линия это искомая характеристика, синяя это аппроксимация прямыми. Далее компиляция и заливка прошивки в эмулятор. Все шевелится так как я и ожидал.
На скорую руку разводим плату и расчехляем лазерный утюг.
Травим, паяем, исправляем косяки разводки (ну куда же без них).
Внимательный читатель и опытный радиолюбитель заметит 2 ошибки которые я допустил при запайке.
Далее включение, проверка основных параметров, и суточная прогонка в разных режимах. Проверка показала что все работает так как и задумывалось. Время сборки и установки на авто.
После настройки подстроечником, машина начинает работать так как и должна, в дальнейшем был проверен расход бензина и динамика, все оказалось в норме, те соответствовало заявленным характеристикам. Машинка каталась на юга из средней полосы России, никаких проблем не появилось.
Я считаю, что первый опыт программирования микроконтроллеров, да в принципе и создания схем, был для меня удачен. Конечно есть огрехи: например выбор среды программирования. В следующем проекте я уже использовал CVAVR, прошивка получается намного компактнее. Выбор микроконтроллера тоже можно было бы назвать не удачным, хотя я его и не выбирал, он у меня был, и было желание его использовать. Сразу по окончанию работы с этим проектом я заказал несколько ATiny85, которые имеют в 8 раз больше памяти, но пока шла посылка эту машину внезапно купили, и ДМРВ так и остался с не идеальным алгоритмом).
Источник
BMW 5 series 530d 3 литра эмоций › Logbook › Замена расходомера воздуха
Ошибка расходомера воздуха 003FF0 DDE: Расходомер воздуха допекала меня н-ное число раз, причем я уже начал и без компьютера определять, что с машиной что-то не так.
Вот кажется маленькая деталь, а насколько она меняет поведение авто. Когда ДМРВ (датчик массового расхода воздуха — он же расходомер) не рабочий сразу можно наблюдать следующее:
— такое ощущение будто машина всегда ездит с прицепом, разгоняется с ревом двигателя тяжело, особенно с места, как будто задыхается, нет такого ощущения, что задняя ось рвет асфальт;
— когда видишь, что спешить некуда и отпускаешь педаль газа, авто очень тяжело идет накатом, тормозной путь двигателем сокращается;
— и еще самое главное, при резком разгоне, при переключениях передач на АКПП, было ощущение легких провалов, будто фрикционы на доли секунды ждут нужного давления для сцепления и как только они схватывались машину резко несло дальше.
Все эти причины я связывал с коробкой, думал скоро ей придет конец, уже даже начал откладывать на ремонт, зато какого же было удивление, когда после замены ДМРВ все эти причины затупов пропали, машину не узнать просто, она стартует, едет легко и непринужденно, что под нажатой в пол педалью, что накатом, это чистый КАЙФ!
Немного теории на пальцах. Расходомер воздуха деталь которая передает мозгам информацию о количестве воздуха, поступающего в двигатель для получения идеальной топливно-воздушной смеси. В зависимости от полученного значения происходит подача определенного количества топлива. Так вот при неправильно работающем ДМРВ смесь будет либо бедной либо переобогащенной, что приводит к неправильной работе мотора, перерасходе топлива и т.д.
Принцип измерения прост, внутри датчика есть тонкая металлическая нить, на которую подается напряжение, соответственно, нить нагревается и имеет какую-то начальную температуру. Воздух который прохоодит через расходомер охлаждает нить до какой-то конечной температуры. Так вот количество воздуха и расчитывается по этой разнице температур, чем больше упала температура, тем больше воздуха прошло и, наоборот чем меньше дельта, тем меньше воздуха.
За все время у меня накопилось уже три расходомера и четвертого уже не хочется)
1. Первое, что я сделал после появления ошибки, это почистил специальной жидкостью. Купил «Liqui Moly Очиститель ДМРВ» и попробовал почистить свой датчик
Снимается ДМРВ минут за 10, но подлезть к нему не очень удобно
Особенно напрягал один шуруп, во-первых он снизу и его не видно, приходилось действовать на ощупь…
а во-вторых это был шуруп с головкой типа «Е» (звездочка)…
в то время у меня еще не было расширенного набора головок, поэтому приходилось работать, чем есть и с этой задачей успешно справилась обычная головка hex на 5
Кстати расходомер стоял еще родной 2003 года
После чистки и установки ДМРВ, я понял, что жидкость особо не помогла, поведение машины немного улучшилась, но ошибка осталась висеть…
2. Полазив по Д2 и форумам натолкнулся, на один пост, где парень перерезал один из пинов идущих к датчику, а именно четвертый
Написал, что машина поехала, как надо, я решил провести эксперимент. Резать я конечно ничего не собирался, а вот отключить весь датчик это пожалуйста)
Скинул фишку, выехал на трассу и не понял …что с моей машиной? что с ней? она рвет асфальт, реально рвет, она стала бешеной, я еще прокатился, почитал ошибки и увидел, что к ошибке расходомера добавились еще 2 по начальной и конечной температуре воздуха, в принципе, логично. Я ставлю все обратно, выезжаю и…вот она, моя машина с затупами, значит дело в самом ДМРВ.
Дело в том, что перерезая кабель или отключая фишку машина сбрасывает все значения на заводские, без корректировки по расходомеру машина начинает ехать, но и расход увеличивается нормально так.
3. Начал искать по магазинам, цена не маленькая, Bosch что-то около 175-180$ вот это да!, за кусок пластика с датчиком! Подсказали, что корпус можно не менять, а только сам датчик, обрадовался ведь датчик от PIERBURG продается отдельно и стоит немного около 50$, заказал. Пока заказ шел понял, что датчик такой не встанет, все из-за конструкции корпуса расходомера Bosch
тут корпус идет вместе с датчиком, пришлось заказ отменить.
4. На следующий день знакомый знакомого узнав о моей проблеме, подогнал мне свой б/у рабочий расходомер с Х5, расходомер такой как мой, отлично!
Ставим и… вот оно совершено другие ощущения машина поехала как надо…но радость была не долгой, через месяц ошибка появилась вновь, устал…Опять чистка и продувка, ничего не помогло. Возможно, это как-то связано с отключением ЕГР , это происходило примерно в одно и тоже время, но это лишь мое предположение.
5. Уже смирившись с покупкой нового расходомера, на разборке в своем городе попался расходомер, такой же как мне нужен, правда 2009 года, но это меня не смутило.
Взял на пробу и до сих пор не отдал)) Как я и сказал, это просто кайф, машина стала легко разгоняться с любой скорости, проблем с тяжестью нет, она снова молодая и живая))
6.Осталось последнее Rheingold строго рекомендует произвести сброс коррекций расходомера
Для сброса коррекций заходим:
Обращение с автомобилем — Сервисные функции — Привод — Электронная система управления дизельным двигателем — Коррекции — Расходомер воздуха — Расходомер воздуха и нажать Запустить поиск
В моем случае все коррекции были равны «0», но сброс я произвел все равно
После сброса меня попросили выключить зажигание не менее, чем на минуту, для сохранения значений, что я сразу и сделал и на этом всё!
У кого горит такая же ошибка, не дайте куску пластмассы решать, будешь ли ты получать удовольствие от вождения своего авто или нет, сразу под замену.
Источник