Найти в Дзене
Николай Щеголев

Конвертер для лямбда-зонда на базе Arduino

Представляю вашему вниманию небольшую статью, написанную еще в 2015-м году. В ней мы с моим другом Алексеем соорудили из "подручных" средств конвертер, позволяющий за места лямбда-зонда фирмы Siemens использовать датчик от Bosch, который устанавливается на отечественные автомобили и стоит существенно дешевле. Данная статья стала дипломной работой моей одногруппницы, и построенные по ним приборы - до сих пор ездят у некоторых кто рискнул его построить. (UPD, традиционно указаны в конце статьи). Эта статья может быть актуальной владельцам пожилых (и не очень) BMW, Opel, Volvo (с Regina), Renault и т.д. с системой впрыска Siemens/Bendix. Лямбда зонд "титановый" отличается от циркониевого в первую очередь проводами: обычный, ВАЗовский датчик имеет белый-серый и черный провода, когда как Siemens - всегда имеет красный провод.
Итак, на моей машине (Volvo 740) окончательно отмер датчик кислорода (лямбда-зонд). По не совсем удачному стечению обстоятельств — у меня оказалась топливная система

Представляю вашему вниманию небольшую статью, написанную еще в 2015-м году. В ней мы с моим другом Алексеем соорудили из "подручных" средств конвертер, позволяющий за места лямбда-зонда фирмы Siemens использовать датчик от Bosch, который устанавливается на отечественные автомобили и стоит существенно дешевле. Данная статья стала дипломной работой моей одногруппницы, и построенные по ним приборы - до сих пор ездят у некоторых кто рискнул его построить. (UPD, традиционно указаны в конце статьи). Эта статья может быть актуальной владельцам пожилых (и не очень) BMW, Opel, Volvo (с Regina), Renault и т.д. с системой впрыска Siemens/Bendix. Лямбда зонд "титановый" отличается от циркониевого в первую очередь проводами: обычный, ВАЗовский датчик имеет белый-серый и черный провода, когда как Siemens - всегда имеет красный провод.

Итак, на моей машине (Volvo 740) окончательно отмер датчик кислорода (лямбда-зонд). По не совсем удачному стечению обстоятельств — у меня оказалась топливная система Siemens, которая известна тем, что ее датчики стоят гораздо дороже, нежели Bosch. За новенькую лямбду, в среднем по-магазинам, хотят от 17 до 24 тысяч рублей. Разумеется для меня это слишком дорого и несколько поразмыслив и поизучав тему было решено сделать конвертер, но не совсем обычный.

Циркониевый и титановый зонд отличаются друг от друга тем, что первый генерирует ЭДС, а второй — меняет свое сопротивление. В первом случае нам нужно смотреть на сигнал: меньше 0.45 — бедная смесь, больше — богатая. Малое сопротивление титанового датчика — богатая смесь, большое — бедная. Если речь идет о 4х проводной титановой лямбде (более распространено), то сигнал НА датчик должен быть около 1 вольта (и сниматся далее). А если используется 3х проводная — то напряжение должно быть уже около 5 вольт.

Для пояснения приведу графики: Циркониевый зонд генерирующий ЭДС:

Титановый зонд, меняющий свое сопротивление:

-2

О том что получилось, ниже.

Собственно инградиенты получились такие: плата Arduino, несколько метров провода, обвес элементов (он будет дан ниже) и собственно новенький лямбда-зонд от BOSCH. Все вместе — не больше 1400 рублей.

Самый главный вопрос: почему же все таки Arduino используется как основной элемент? Все очень просто: во-первых он был под рукой. Во-вторых — его стоимость — 180 рублей (!) если заказываеть на ebay.com. В-третьих он уже полностью готов для использования (не надо мучиться с поиском драйверов, программаторами и прочим, те кто знаком с AVR поймут меня). В первой версии устройства использовалась средняя плата — версия UNO. Такая же как на картинке:

-3

Уже позже, пришла версия Nano, она заметно меньших размеров, правда корпус для нее оказался все равно большеват. Но для UNO он был тоже мал.

-4

В корпусе:

-5

Теперь перейдем непосредственно к схеме и программе, зашитой в него.

Arduino подключается таким образом (рисовать пришлось в паинте, ибо не давно слетела винда):

-6

По схеме подключения:
R1 — порядка 1 кОм (можно меньше).
R2 — 5-6 мОм
VD1 — любой светодиод на 3-5 вольт
на схеме пометил своим названием — оптопара PC817, или аналогичная.
5 вольт на питание платы берутся от USB-переходника (пока что не подвел питание, езжу так).
Красный провод, отводящий 5 вольт на выход оптопары имеет смысл только когда используется 3х контактный датчик (об этом было написано в начале статьи)

В моем случае использовалась 4х контактная лямбда BOSCH:
Черный — сигнальный — на ногу А0 платы
Серый — масса сигнального — или на массу, или на контакт GND платы. У меня сделано вторым методом, но лучше подключить к массе автомобиля.
Белые — один на постоянные (!) +12 вольт, второй на массу.

Т.к. родные провода датчика очень короткие, мне пришлось их удлинить: разъемы купил на авторынке, провода сечением 1мм (можно 0.75) разных цветов усадил в термоусадку. Многие задаются вопросом, мол могут ли идти помехи на сигнальный провод от соседних. Как показывает практика — нет, даже учитывая тот факт что мой провод, в сумме получился чуть больше метра.

-7

Разница в нагревателях титановой и циркониевой лямбды состоит в том, что цирконий нагревается ВСЕГДА, а титан только прогревается вначале.

На ардуино зашивается вот такая программа, любезно подкорректированная моим другом-программистом Алексеем:

int ledPin = 2; // Светодиод подсоединен к выводу 13
int analogPinInput = 0;
int outputSignal = 3;
double input = 0.0;

void setup(){
pinMode(ledPin, OUTPUT); // устанавливаем вывод 13 как выход
pinMode(outputSignal, OUTPUT);
Serial.begin(1200);//9600
}

void loop(){
double voltageLevel = 0.0;
while(true){
voltageLevel = inputVoltageLevel();
if(voltageLevel >= 0.45 && voltageLevel != 0){
digitalWrite(outputSignal, HIGH);
digitalWrite(ledPin, HIGH);
}
if(voltageLevel < 0.45 && voltageLevel != 0){
digitalWrite(outputSignal, LOW);
digitalWrite(ledPin, LOW);
}
Serial.println(voltageLevel);
}
}

double inputVoltageLevel(){
input = analogRead(analogPinInput) * 0.0049;
return(input);
}

О том что тут происходит:
Контроллер мерит сигнал приходящий на ногу А0,
если сигнал меньше 0.45 вольт — плата ни чего не делает
если больше — подает питание на выход 13, открывая оптопару.
Все приходящие значения она отправляет в виртуальный ком-порт для считывания (если не подключен к компьютеру, все остается работать как и надо).
Светодиод работает тогда, когда идет богатая смесь.

Плата прошивается с помощью родного софта Arduino, который качается на официальном сайте (мануалов в инете слишком много на этот счет), дальше плата подключается к компьютеру и шьется круглой кнопочкой (Загрузить).

В целом, конвертер готов. Теперь наступает самое интересное:

Силами все того же Алексея и желанием что то по-писать, был написана такая софтина (на JAVA, требует установки ява-машины):

yadi.sk/d/-xuxF32ndrssY

Подключаем к компьютеру ардуино, который уже подключен ко всей системе, запускаем программу и видим… график того что происходит на лямбде. Очень удобно тестировать так любой-другой зонд, просматривая его осциллограмму. Пробовали на другой машине — все работает и производительности контроллера и программы хватает с избытком (ей же мерили еще сигнал форсунок, но об этом разговор уже будет в другой "статье").

-8

Под капотом машины, оно выглядит примерно так (этап колхозинга — обкатываемся):

-9

Езжу так уже почти 5 лет — схема полностью рабочая. Раньше спустя полчаса поездки инжектор вываливался в аварийный режим. Расход стал меньше, мотор стал поохотней крутится.

Алексей доволен проделанной работой:

-10

Возможно кому-либо пригодится такая табличка:

-11

UPDATE 2018 - схеме 4 года, полет нормальный. На данный момент подобная схема стоит на 4-х машинах и у всех работает исправно.

UPDATE 2019 - необходимое пояснение: схема переводит сигнал датчика "титанового" в сигнал датчика "циркониевого" - она не является обманкой, или чем либо подобным. Датчики имеют один и тот же итоговый "выход", разный лишь принцип их работы, поэтому их замена допустима. Важно еще то, что это НЕ ШИРОКОПОЛОСНЫЙ датчик, и машины с оным, у меня, слава Богу не было.

UPDATE 2020 - при использовании циркониевого датчика кислорода с 4-мя проводами (он, кстати, предпочтительней), провод массы датчика ни в коем случае не вешать на массу машину (общий провод). Общий провод должен приходить к контакту GND платы.

UPDATE 2023 - в статье я ошибочно указал сопротивление резистора в 100кОм (на картинке при этом все нарисовано правильно). И да, плата исправно работает на машине уже 9 лет.

Оригиналы статьи на драйве и автомаркете (с обоих рессурсов я уже давно удалился):

https://avtomarket.ru/journal/Volvo/740/32728/

https://www.drive2.ru/c/1557161/