Multi-Set.ru - Форум - Показать сообщение отдельно - Тойота Дуэт(EJ-VE). Большой расход, норма или родовая травма?!
Показать сообщение отдельно
  #156  
Старый 31.10.2019, 21:23
Zabl Zabl вне форума
advir
 
Регистрация: 19.04.2017
Сообщения: 101
По умолчанию

Всем прив. Опять хочется попинать старых "пердунов" по поводу осциллограммы Алекса, но не буду. Позиция Админа им обозначена и понятна. Его задолбали.

Цитата:
Потому что втереть людям в мозг даже элементарную арифметику ... это НЕ реально.
Вроде и соображают, а простых вещей хоть ты тресни ... не понимают
Остальные могут просто не знать элементарной работы ЭБУ с ДК.
Алекс, у вас замечательно получается снимать данные с двигателя, вам бы ещё научиться работать с источниками информации и правильно эти данные анализировать.
Итак , разберём ваши графики с напряжением ДК. Я надеюсь вы ничего не перепутали в подключении, и по оси У у вас реальное напряжение на датчике.

Для ЭБУ ваш график ни в пи..., ни в красную армию !!! Период около двух секунд, размах сигнала 0,2 в, время изменения сигнала 800 мс-1000 мс , форма пилообразная. Из нормы в нем только период(но и то, это норма для ДК в длинных трубах, у вас 30 см от головки блока). Если немного глубже копнуть интернет, можно найти с каким сигналом работает ЭБУ машины. Признак бедной смеси - напряжение ниже 0,2 в. Признак богатой смеси- выше 0,7 . То есть размах сигнала должен быть более 0,5 в ! . Время изменения сигнала, по фронту не более 250 мс, по спаду не более 450 мс(есть другие данные - не более 200 мс для обеих значений). Если сигнал не соответствует, ЭБУ считает ДК не исправным и данные с него игнорируются.
Перейдём ко второму графику.

Здесь с сигналом ДК так же всё очень плохо. Напряжение должно было подняться сразу гораздо выше 0,8 в и держаться на этом уровне(немного уменьшаться с прогревом ДК), у вас же наблюдается плавное нарастание. Я уже высказывал предположение, что у вас стоит "обманка" лямбда-зонда. Вот его схема

Анализируя оба ваших графика, прихожу к выводу- электронная обманка у вас стоит ! обычно она ставиться на второй ДК, после катализатора. Но судя по всему, вам её влепили на первый зонд ! Пилу из меандра делает RC цепочка, это видно по графику ХХ. Заряд-разряд конденсатора видно из второго графика разгона. Сравните свой график ДК во время разгона и этот заряда-разряда конденсатора.

У вас есть доступ к разъёму, ЭБУ прозвоните провод ДК напрямую, если сопротивление будет больше 1 ома ищите "обманку". Конечно смущает наличие китайского АФ-метра, может и он так сигнал усаживать, но это легко проверить отключив его.
Вы должны увидеть у себя примерно такой сигнал.


Добавлено через 29 минут
Цитата:
Сообщение от Admin
Другими словами.
Я вовсе не при делах …. и это какой-то аппаратный косяк ардуины.
И кстати …
Не видел в интернете примеров, чтобы с usb-порта с такой скоростью = 1 мс выводили сразу два значения.
Ну как же не при делах ? Вы программист, вам и карты в руки. Хорошо что поняли -ардуино не выполняет параллельных программ. Конечно не видя кода, который вы зачем то засекретили(наверное мечтаете впарить кому нибудь за много денех ), я не могу точно указать на ваш косяк. Но из моих опытов, совершенно бесплатно, могу сказать , обращение к Serial.print и вывод 3-х значений занимает 0,45 мс. реального времени. То есть выводить в порт значения можно только когда не производиться измерение времени сигналов, иначе, неизбежно будет пропущена часть сигнала и измерение будет некорректно.
Например в моем скетче вывод в порт происходит когда форсунка закрылась и время открытия и период уже подсчитаны.
Код:
#define INJECTOR_PIN 6 // Номер ноги для форсунки unsigned long dur_injector_open ; //Продолжительность импульса форсунки unsigned long t;//время изменения сигнала unsigned long pre_t;// предыдущее время изменения сигнала unsigned long t_injector_open ; //время открытия форсунки unsigned long t_injector_closed ; //время закрытия форсунки unsigned long period_injector ;//период открытия форсунки boolean injector ; boolean pre_injector ; void setup() { Serial.begin(115200); pinMode(INJECTOR_PIN, INPUT_PULLUP); } void loop() { pre_injector = injector ; injector = digitalRead(INJECTOR_PIN) ; if (injector != pre_injector) { //если состояние форсунки изменилось t = micros(); if (!injector) {//если форсунка открыта pre_t = t_injector_open ; t_injector_open = t; period_injector = (t_injector_open - pre_t) ; //период открытия } if (injector) { // если форсунка закрыта t_injector_closed = t; dur_injector_open = (t_injector_closed - t_injector_open) ; Serial.print(dur_injector_open);//вывод в порт длины импульса Serial.print(",");//разделитель для эксель Serial.println(period_injector);//вывод в порт периода импульса } } }
К этому коду легко можно добавить опрос аналогового входа и выводить в порт вместе с длиной и частотой импульсов на форсунке. Естественно частота опроса "напряжения ДК" будет зависить от оборотов двигателя но это не критично.
Ответить с цитированием