Официальный сайт компании Arduino по адресу arduino.cc
Имитация работы трамблёра автомобиля.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Появилась у меня интересная задача - заменить высоковольтный распределитель зажигания на автомобиле низковольтным. Имеем 6 цилиндров, импульсы на высоковольтную катушку зажигания формируются Электронным блоком управления (ЭБУ)на основе датчиков положения коленвала и распредвала (ДПКВ и ДПРВ), и далее распределяются по цилиндрам с помощью механического высоковольтного распределителя - трамблёра (это для тех, кто не знает как работает зажигание автомобиля). Вот этот высоковольтный распределитель и нужно заменить низковольтным.
Идея такая: используем сигнал ДПРВ и импульсы с ЭБУ на катушку зажигания.
ДПРВ 180градусов поворота выдаёт "+", дрругие 180 градусов - "-"
Импулльсы с ЭБУ идут в 6 раз чаще, чем нужно каждому цилиндру, их то и нужно распределить по цилиндрам, используя данные с ДПРВ.
Нарисовалась вот такая программа:
[code] const int buttonIGN = 10; // const int buttonCAM = 9; // const int syl1 = 7; const int syl2 = 6; const int syl3 = 5; const int syl4 = 4; const int syl5 = 3; const int syl6 = 2; int CAMstate = 0; //переменная состояния входа ДПРВ int A = 0; // переменная состояния входа ЭБУ int B = 0; //переменная для проверки смены сигнала ДПРВ int I = 0; // переменная цикла тройного void setup() { pinMode(buttonIGN, INPUT); //ЭБУ pinMode(buttonCAM, INPUT); //ДПРВ pinMode(syl1, OUTPUT); pinMode(syl2, OUTPUT); pinMode(syl3, OUTPUT); //выходы pinMode(syl4, OUTPUT); pinMode(syl5, OUTPUT); pinMode(syl6, OUTPUT); A = digitalRead(buttonIGN); B = A; } void loop() { CAMstate = digitalRead(buttonCAM); //опрос входа ДПРВ A = digitalRead(buttonIGN); //присвоение переменной А значения входа ЭБУ if (A != B) { //проверка смены сигнала входа ЭБУ I=I+1; // увеличиваем счётчик циклов на 1 B=A; // if (A==HIGH) { // если вход ЭБУ "+", то ... switch(I) { // ... производим выбор цилиндра case 1: if (CAMstate==HIGH) {digitalWrite(syl1, HIGH);} //зажигание в первом цилиндре else {digitalWrite(syl4, HIGH);} //в четвёртом и т.д. break; case 2: if (CAMstate==HIGH) {digitalWrite(syl2, HIGH);} else {digitalWrite(syl5, HIGH);} break; case 3: if (CAMstate==HIGH) {digitalWrite(syl3, HIGH);} else {digitalWrite(syl6, HIGH);} break; case 4: I=0; //проверка, не достиг ли цикл переполнения } } else { // если IGN "-"... digitalWrite(syl1, LOW); //... то все выходы в ноль digitalWrite(syl2, LOW); digitalWrite(syl3, LOW); digitalWrite(syl4, LOW); digitalWrite(syl5, LOW); digitalWrite(syl6, LOW); } } }
но, как обычно что-то не хочет работать, на входящие сигналы не реагирует, выходных сигналов нет. Может ткнёте носом, где я напортачил, я всё-же автомобилист а не программист (а одно другому бывает и мешает)
Что, нет добрых людей?
Я реализовал эту идею на логических элементах:
http://s010.radikal.ru/i314/1511/12/0353b06a4b80.jpg
Двигатель работает, но хочется реализовать и на контроллере, помогите с кодом.
Еще один оригинальный способ суицида на дорогах? Обгон, неожиданный ресет, лобовое. И хрен с ним конструктором, второго участника жалко(((((.
Я думаю что для контактов в
void
setup
()
16
{
17
pinMode(buttonIGN, INPUT);
//ЭБУ
18
pinMode(buttonCAM, INPUT);
//ДПРВ
необходимо сделать подтяжку попитанию.
Еще один оригинальный способ суицида на дорогах? Обгон, неожиданный ресет, лобовое. И хрен с ним конструктором, второго участника жалко(((((.
С такой логикой нужно выкинуть штатные мозги любого современного авто, т.к. там то-же микроконтроллер, правда писаный не на сях.
Машина, для которой это делается - внедорожник для трофи. До места старта он доставляется или на жёсткой сцепке, или на эвакуаторе.
С кодом поможет кто? На логических элементах не всё гладко работает, требуются корректировки сигнала.
Вопросы:
1: Оба фронта импульса ЭБУ рабочие или нет? В программе оба.
2: Длительность выходного импульса? В программе очень короткий.
3: ЭБУ уже вносит задержку зажигания?
4: Нужна ли привязка первого цилиндра к переходу -+ ДПРВ?
Вопросы:
1: Оба фронта импульса ЭБУ рабочие или нет? В программе оба.
2: Длительность выходного импульса? В программе очень короткий.
3: ЭБУ уже вносит задержку зажигания?
4: Нужна ли привязка первого цилиндра к переходу -+ ДПРВ?
1. Да, оба рабочие.
2. Длительность выходных импульсов на ключи катушек зажигания должна быть равна длительности входного импульса с ЭБУ.
3. ЭБУ обеспечивает все необходимые параметры импульса, включая длительность импульса и задержку зажигания. С этим импульсом ничего делать не надо, его нужно подать на один из шести ключей катушек зажигания.
4. Привязка первого цилиндра не нужна.
Попробуй строку 35 поставить перед 38, строки 53 и 54 убрать.
I = 0 поставить под
case 3:
до IF
В таком варианте каждый положительный фронт ЭБУ будет включать выход - отрицательный выключать.
Не будет пропуска каждого 4 импульса ЭБУ.
Перед 37 строкой нужна небольшая задержка, иначе дребезг положительного фронта ЭБУ может давать ложные пропуски.
И всё же с привязкой к первому цилиндру непонятно. В общем случае сигналы будут приходить в случайные цилиндры.
В остальном, если входные сигналы от 3 до 5 вольт, всё должно работать. Для проверки можно вставить дополнительно моргание светодиодом на плате в место где включаются - выключаются цилиндры.
Спасибо, попробую.
И Вы меня не совсем правильно поняли, привязка нужна, но не к первому цилиндру конкретно. Привязка происходит к одному из двух цилиндров, в зависимости от того, что первым придёт с ДПРВ, фронт или спад.
Спасибо, попробую.
И Вы меня не совсем правильно поняли, привязка нужна, но не к первому цилиндру конкретно. Привязка происходит к одному из двух цилиндров, в зависимости от того, что первым придёт с ДПРВ, фронт или спад.
привязка нужна, но не к первому цилиндру конкретно - а к любому ! , но чтобы сохранить последовательность работы горшков....
попробуйте поменять в штатной схеме выводы с трамблёра на свечи , хотя бы два - простуда будет и чихания
вы на каждый горшок поставили по ВВ катушке ?
штатная - один датчик , один коммутатор , одна ВВ катушка и механический трамблёр ?
новая схема - один датчик , шесть коммутаторов и шесть ВВ катушек ?
На логических элементах не всё гладко работает, требуются корректировки сигнала.
если на логических элементах отработать - то не нужно корректировки....
это будет работать и точнее , и быстрее МК !!!!
На логических элементах не всё гладко работает, требуются корректировки сигнала.
если на логических элементах отработать - то не нужно корректировки....
это будет работать и точнее , и быстрее МК !!!!
Я уже всё на логических элементах отработал, работает как часы. На микроконтроллере остался чисто спортивный интерес.
Штатная схема: на основе ДПРВ и ДПКВ ЭБУ формирует сигнал и подаёт его на одну катушку, с неё уже высокий сигнал (читаем - искра) идёт на механический высоковольтный распределитель и далее на свечи.
Реализовано мною: сигнал, сформированный ЭБУ подаётся на мою схему, с неё на 6 индивидуальных катушек.
Я уже всё на логических элементах отработал, работает как часы. На микроконтроллере остался чисто спортивный интерес.
нууууу , понятно...
расчленить сигнал на 6 фаз.....
....вот только без синхронизации - никак :(
"охота пуще неволи....."
....вот только без синхронизации - никак :(
Синхронизация идёт с ДПРВ.
Если честно, то я был сильно удивлён, когда после длительных поисков в интернете не нашёл ничего готового по этой теме. Хотя проблема мокрого трамблёра в трофи очень актуальна.
согласен ! но не как вы писали в начале - 1-2-1-2-1-2-1.... ( 180 - + , 180 - - )
а - 1-2-3-1-2-3-1-2-3-.....
кататак....
согласен ! но не как вы писали в начале - 1-2-1-2-1-2-1.... ( 180 - + , 180 - - )
а - 1-2-3-1-2-3-1-2-3-.....
кататак....
Я писАл правильно, штатный ДПРВ 180 фронт - 180 спад и задача стояла использовать его именно как сигнал синхронизации для правильного распределения сигнала с ЭБУ по шести катушкам.
Если честно, то я был сильно удивлён, когда после длительных поисков в интернете не нашёл ничего готового по этой теме. Хотя проблема мокрого трамблёра в трофи очень актуальна.
1996 , переделка ОКИ с 1 ДХ-искрообразования , одного коммутатора и одной ВВ-катушки на два горшка....
....на 1 ДХ-искрообразования , два коммутатора и две катушки ВВ от "девятины"
....и такое было :)
согласен ! но не как вы писали в начале - 1-2-1-2-1-2-1.... ( 180 - + , 180 - - )
а - 1-2-3-1-2-3-1-2-3-.....
кататак....
Я писАл правильно, штатный ДПРВ 180 фронт - 180 спад и задача стояла использовать его именно как сигнал синхронизации для правильного распределения сигнала с ЭБУ по шести катушкам.
не спорю :) , вашу авто не изучал....
Если честно, то я был сильно удивлён, когда после длительных поисков в интернете не нашёл ничего готового по этой теме. Хотя проблема мокрого трамблёра в трофи очень актуальна.
ЗИЛ-131 - хоть там и , типа , герметичная система - были попытки сделать как вы сделали
....тогда и тырнета-то не было :)
bifurkas , в каком регионе болота бороздите ?
Н.Новгород.
[/quote]
не спорю :) , вашу авто не изучал....
[/quote]
94 год, фирма Крайслер сделала распределённый впрыск, но смелости (или ума) не хватило сделать распределённое зажигание. В 2000 исправились, но мне от этого не легче, вот и изгаляюсь.
:)
понятно....
Питер... но в болота не ходун... не ходец...
По синхронизации. Обнулять I нужно по изменению сигнала ДПРВ. Дальше само распределиться правильно.
Я бы делал как то так
Здесь проблема дребезга - входные сигналы должны быть чистыми. Первый положительный фронт ЭБУ должен быть всегда после положительного фронта ДПРВ. Шестой отрицательный фронт ЭБУ должен закончится раньше положительного фронта ДПРВ. Для любого режима двигателя. Если это не выдерживается, то надо ещё думать.
Здесь проблема дребезга - входные сигналы должны быть чистыми. Первый положительный фронт ЭБУ должен быть всегда после положительного фронта ДПРВ. Шестой отрицательный фронт ЭБУ должен закончится раньше положительного фронта ДПРВ. Для любого режима двигателя. Если это не выдерживается, то надо ещё думать.
Сигналы чистые. Условия, описаные Вами, выполняются при любом режиме работы двигателя, проверено. Буду пробовать.
Спасибо!
УПС! Не сразу заметил у Вас в программе такой момент: первый сигнал с ЭБУ приходит или после фронта, или после спада ДПРВ, в зависимости от того, как встала шторка в ДПРВ. Естественно и цилиндры будут разные, с которых будет начинаться работа.
Нет. Только после положительного фронта ДПРВ. Дальше 6 цилиндров и по новой.