Делаем «вечный» датчик массового расхода воздуха на atiny13

Делаем «вечный» датчик массового расхода воздуха на atiny13

Данный проект показался из-за нежелания брать бывшую в потреблении около 30 (тридцати) лет подробность за совсем немаленькую сумму в 3000 — 5000 руб. Возможно сообщить что это будет проба пера в схемотехнике и программировании микроконтроллеров. В случае если весьма интересно — продолжение под катом.
Смотрите кроме этого: Sprimo сможет оценить уровень качества воздуха

Очистители воздуха сами по себе редко поддерживают какие-либо умные функции, но в некоторых случаях подобные устройства однако приобретают последовательность дополнительных возможностей. К примеру,новинка называющиеся Sprimo изначально вспоминала как умный очиститель воздуха. В соответствии с имеющимся данным, она не только лучше большинства аналогов справляется с очисткой воздуха, но и может показывать пользователям ответственную для здоровья данные.Создатели Sprimo заявляют, что он в 50 раз действеннее рядовых очистителей воздуха.

С опаской большое количество фото!Итак, начинаем подпирать велосипеды палками.Вводные данныеBMW E30 в кузове купе 1986г с мотором M10B18 (4 цилиндра, 1.8л, инжектор):Неприятности1. Чихает2. Не едет3. Кушает и не толстеетГоды в Российской Федерации не пощадили её.

Отличный бензин, соляные ванны, «пористые дороги». Но, больше всего ей досталось от бывших суровых Русских и хозяев автомехаников, тщетных и безжалостных, создававших ремонты эффективности и сомнительной необходимости. хорошим примером одного из таких ремонтов вы имеете возможность налюбоваться на КДПВ.

А что это в том месте такое беленькое, все в припое? Это керамическая плата— главная подробность ДМРВ, на нее нанесены дорожка и плёночные резисторы по которой обязан бегать подвижный контакт. Как видно на фото она треснула, и некто пробовал вернуть ее таким вот безжалостным способом. Бесполезно. Вот он — корень всех неприятностей! Тут необходимо сообщить что ДМРВ есть главным датчиком, воздействующим на смесеобразование.

Мало теорииНаша машинка оснащена чудесным образом Германской индустрии совокупностью распределенного впрыска L-Jetronic. Google гласит:Совокупность распределенного впрыска 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В.Для чего полевик спросите вы? А кто его знает отвечу вам я! Лишним не будет.

Посредством данной схемы я руководил замечательной нагрузкой в виде нескольких автомобильных ламп соединенных параллельно легко для проверки что она это также может.По большому счету все подробности у меня были в наличии не считая датчика поворота.Время писать прошивку! Это первая моя firmware МК, так что само собой разумеется все не оптимально, и само собой разумеется я выбрал мало странноватый инструмент BascomAVR, в котором писать приходится на каком-то псевдо-кубейсике.

Разумеется встроенный в том направлении компилятор не весьма оптимизирован, firmware получается жирная, и полиномиальная интерполяция которую я желал в том направлении впихнуть к сожалению не влезла. Было нужно реализовать аппроксимацию тремя прямыми отрезками. Из-за чего тремя?

По причине того, что больше не влезло (Bascom + 1 кб flash). $regfile = attiny13.dat $hwstack = 8 $swstack = 16 $framesize = 16 Config Portb.1 = Output Config Timer0 = Pwm , Prescale = 1 , Compare B Pwm = Clear Up Config Adc = Single , Prescaler = Auto Start Timer0 Dim Adcval As Word , Temp As SingleDo Adcval = Getadc(2) ‘считываем угол Select Case Adcval’в зависимости от участка чёрта выбираем нужную прямую Case 0 To 306Temp = Adcval * 2.2Adcval = Temp Case 307 To 613Temp = Adcval * 0.9377Adcval = TempAdcval = Adcval + 384 Case 614 To 1023Temp = Adcval * 0.15Adcval = TempAdcval = Adcval + 870End SelectTemp = Adcval * 0.0009765625 ‘масштабируем полученное значение Adcval = Getadc(3)’считываем температуруTemp = Temp * Adcval ‘перемножаем значение температуры и отмасштабированное значение угла поворота Pwm0b = Temp * 0.25’масштабируем полученное значениеLoopEnd $prog HFF , H7A , HFF , H00 ‘ generated. Take care that the chip supports all fuse bytes. $prog HFF , H6на данный момент , HFF , H00 ‘ generated.

Take care that the chip supports all fuse bytes. $prog HFF , H7A , HFF , H00 ‘ generated. Take care that the chip supports all fuse bytes. $prog H00 , H00 , H00 , H00′ generated. Take care that the chip supports all fuse bytes. $prog H00 , H00 , H00 , H00’ generated. Take care that the chip supports all fuse bytes.

Дабы узнать уравнения прямых практически мин. за 10 набросал тупую софтинку в Qt Creator, пошевелил контрольными точками, определился с положением прямых.Красная линия это искомая черта, светло синий это аппроксимация прямыми. Потом заливка и компиляция firmware в эмулятор.

Все шевелится так как я и ожидал.На скорую руку разводим плату и расчехляем лазерный утюг.Травим, паяем, исправляем косяки разводки (ну куда же без них).опытный радиолюбитель и Внимательный читатель увидит 2 неточности каковые я допустил при запайке.Потом включение, проверка главных параметров, и дневная прогонка в различных режимах. Проверка продемонстрировала что все трудится так как и вспоминало.

установки и Время сборки на авто.По окончании настройки подстроечником, машина начинает трудиться так как и обязана, в будущем был проверен динамика и расход бензина, все появилось в норме, те соответствовало заявленным чертям. Машинка каталась на юга из средней полосы России, никаких неприятностей не показалось.Я считаю, что первый опыт программирования микроконтроллеров, да в принципе и создания схем, был для меня успешен. Само собой разумеется имеется огрехи: к примеру выбор среды программирования.

В следующем проекте я уже применял CVAVR, firmware получается намного компактнее. Выбор микроконтроллера также возможно было бы назвать не успешным, не смотря на то, что я его и не выбирал, он у меня был, и было желание его применять. Сходу по завершению работы с этим проектом я заказал пара ATiny85, каковые имеют в 8 раза больше памяти, но пока шла посылка эту машину неожиданно приобрели, и ДМРВ так и остался с не совершенным методом).

Случайная статья:

Чистка ДМРВ Как правильно снять и почистить ДМРВ Всё подробно


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.