Зачем мучаться когда мозги на гбо стоят 60 евро, у меня установлено гбо, там чтобы корректировать импульс на газовые форсунки берутся значения : длинна импульса бензиновой форсунки, температуры газа перед форсункой, давление в впускном коллекторе, давление газа перед форсункой. При объеме 350 кубиков на цилиндр длительность импульса составляет от 4 до 12 миллисекунд. На газовой форсунке примерно так же.
Единственная здравая мысль за всю тему. И еще Yer как совет, если вы принципиально хотите сами разобраться, то сначала поискали бы ответ на форумах соответствующего профиля. А накатить код всегда можно, вот только какой результат на выходе получите?
Думаю да, если в двигателе есть форсунки, значит он управляется электроникой.
Надежнее будет копать в сторону перепрошивки родной авто электроники, у меня например есть шнурок в ноутбук, позволяет читать и стирать ошибки и если нужно считать прошивку и накатить новую, а на форуме по вашему авто в разделе электроника наверное есть прошивки.
Не думаю что их нет, скорее их за денежку предоставят. Но как я понимаю человек хочет решить проблему опытным путем, при этом обладает не достаточными знаниями в данном вопросе. Иначе не спрашивал бы и сходу правильно сформулировал задачу.
Зачем мучаться когда мозги на гбо стоят 60 евро, у меня установлено гбо, там чтобы корректировать импульс на газовые форсунки берутся значения : длинна импульса бензиновой форсунки, температуры газа перед форсункой, давление в впускном коллекторе, давление газа перед форсункой. При объеме 350 кубиков на цилиндр длительность импульса составляет от 4 до 12 миллисекунд. На газовой форсунке примерно так же.
Вот и ответ для задаваки a5021. Читайт самоучка. И так у тебя во всем.
У задачи которую хочет решить автор и которую мы клещами вытянули!) две сложности.
1) Программная, нужно все учесть и грамотно закодить чтоб ни зависания ни внештатных ситуаций не боялось и работало в разы быстрее впрыска.
2) Считаю не менее сложной, это железо нужно максимально устранить помехи и наводки, развязать выводы МК и обеспечить хорошие подтяжки и хорошие фильтры питания. В авто много факторов которые могут вызвать сбой как при пуске двигателя так и при его работе.
Это не просто какой-то умный указатель поворотов или стоп сигнал, здесь на кону жизни и здоровье вас и пассажиров. Штатные мозги авто в алюминием кейсе и схематически защищены от всех помех.
Советую вместо loop использовать while, как показали мои замеры она в 2,6раза быстрее.
Ясен-красен быстрее. loop() -- это функци с потерями на call/ret по четыре такта. Плюс сохранение чего попало в стеке. А while это просто цикл из нескольких команд, который на одном месте крутится.
Если вы считаете что импульсы управляющие впрыском живут своей жизнью и ни как не зависят от сигналов обратной связи, сигналов лямдозондов итд то я вам сочувствую.!.!.!.!
Кто бы вам-то посочувоствовал? Последнее время вы так мучаетесь, смотреть невозможно. И такую херню вывороте и сякой бред сочините. Нет вам покоя.
На кой хрен вы сюда эту "обратную связь" тащите, можете сказать? Какой в ней тут прок, если импульсы существуют, даже если о их природе мы ничего не знаем. Задача ведь простая -- появился импульс, нужно его расширить. А какие там связи и зонды где-то где-то есть, да пофиг.
diger67 пишет:
Вот и ответ для задаваки a5021. Читайт самоучка. И так у тебя во всем.
В чем "во всем", неадекватушка? О чем эти вопли?
Человек спросил, как ему сделать то-то и то-то. Я подсказал. Не, заваливаются специалисты по всем вопросам и начинают объяснять ТС-у, как ему его задачу заменить на другую. О чем был вопрос? Ведь не о том, как ему авто на газ перевести. Пока он не объяснит, мы вообще не знаем, что и зачем он делает.
Мало того! Не знаю, у всех ли авто, но у меня там и пайки-то то не - везде сварка.
Спасибо указали еще очень важный момент, в боксе печатку крепить нужно не жестко, а через резину или другой материал поглощающий вибрации, пайка может дать трещину.
На кой хрен вы сюда эту "обратную связь" тащите, можете сказать? Какой в ней тут прок, если импульсы существуют, даже если о их природе мы ничего не знаем. Задача ведь простая -- появился импульс, нужно его расширить. А какие там связи и зонды где-то где-то есть, да пофиг.
Потому что от сигналов обратной связи напрямую зависит ширина управляющего импульса и они расчитаны для работы двигателя на топливе с определенными физикохимическими свойствами. Если тебе и так непонятно, то это уже клиника, к доктору.....
a5021 пишет:
В чем "во всем", неадекватушка? О чем эти вопли?
Стонаешь ты, я высказываюсь так как понимаю вопрос, если я в чем то не прав, приведи аргумент кроме "это идея неправильная, я лучше знаю"
Потому что от сигналов обратной связи напрямую зависит ширина управляющего импульса....
И как только без нее, обратной связи, работают карбюраторные двиги? Сколько по РФ колесит мотов-японов выпуска прошлого века, к примеру... И очень даже не плохо работают. :-)
А про нью-китайцев двухколесных - даже упоминать не буду.
Потому что от сигналов обратной связи напрямую зависит ширина управляющего импульса и они расчитаны для работы двигателя на топливе с определенными физикохимическими свойствами.
Ну давайте я в вашей же безаппеляционной манере изреку, что нифига не зависит. Офигенно убедительно звучит?
От сигнала с датчиков может зависеть момент начала импульса, но вот ширину никакая обратная связь не определяет.
Цитата:
если я в чем то не прав, приведи аргумент кроме "это идея неправильная, я лучше знаю"
Топикстартер спросил, как ему импульс шире сделать. Я сказал, как. Но тут понабежала куча народу с "идеями" и ну их толкать во все щели сообразно своему пониманию или непонимаю темы. Если бы я был топикстартером, то наверное бы послал всех носителей уникальных идей к едреням, вместе со своими идеями, о которых их никто не спрашивал.
ремень ГРМ отцепи и езжай себе дальше .... без обратной связи
обратнее уж точно не придумашь ....
Это прямой привод механизма, а не обратная связь. :-)))
Считай это ключевой транзистер в цепи управления светиком.
Бо есть двиги не с ремнем, а шестеренками или цепью в приводе валов ГРМ.
С ними как и где там ОС? Фиксированный КУ и только. :-)
К примеру у 4-х тактной Хонды, в верхневальном ГРМ, валы всегда(!) крутятся в 2 раза медленнее, чем коленвал. Вне зависимости от кол-ва оборотов последнего, ни от качечества топливной смеси на входе в цилиндр, ни от качества бизина, ни от степени загрязнянности воздушного фильтра, ни от напряжения бортовой сети, ни от температуры горения смеси в цилиндре. И тд и тп.
Для газовых мозгов обратная связь побоку, ее обеспечивают бензиновые мозги уменьшая или увеличивая продолжительность впрыска за такт, основываясь на показзаниях дпкв, заслонки, температуры воздуха и ож, давления во впускном коллекторе, а газовые тупо сверяясь с топливной картой, оборотами, температурой, и диф давлением выдают продолжительность импульса на газовую форсунку основываясь на продолжительности импульса топливной форсунки
ремень ГРМ отцепи и езжай себе дальше .... без обратной связи
Механическое движение в ДВС, возникнув в цилиндрах, передается в направлении поршни->шатуны->коленвал и далее через систему распределения в различные точки двигателя и к навесному оборудованию. Ремень ГРМ передает вращение от коленвала к распредвалу и ничего в обратном направлении. С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
Цитата:
обратнее уж точно не придумашь ....
Может, вы плохо придумывали? Может, нужно попридумывать еще?
газовые тупо сверяясь с топливной картой, оборотами, температурой, и диф давлением выдают продолжительность импульса на газовую форсунку основываясь на продолжительности импульса топливной форсунки
Все верно. Топикстартер и не стал никого грузить тут теорией и подробностями, просто попросив помочь ему увеличить продолжительность электрического импульса. Пусть изначально нечеткая и не совсем правильно сформулированная задача, тем не менее, прекрасно ложится на функционал схемы или электронного устройства. Но понабежали многочисленные "специалисты" и начали вопить про безопасность (мы все умрем!), плести какую-то ахинею про необходимость срочного изобретения формул, городить обратную связь и обнаруживать ее там, где таковой отродясь небыло. Атас, короче.
Решение задачи в первом приближении я показал и считаю, что ардиуна прекрасно с ней справится. ТСу остается самостоятельно допилить скетч для этих целей и можно приступать к натурным испытаниям.
Мы не знаем, чем занимается ТС. Меня смущают три форсунки. Трехцилиндровые автомобильные движки конечно существуют, но встречаются не очень часто. Есть в продаже газмозги на три цилиндра? Я не копенгаген в вопросах ГБО, т.ч. тут темой не владею.
Кроме того, нельзя исключать, что ТС прощупывает подходы именно к тому, как не покупать мозги за 60 ойро. По сути, функционала в них и на 10 нет. Да много чего может быть, включая самые неожиданные варианты, навроде колхозинга электрогенератора для дачи из частично-убитого (три цилиндра) автомобильного движка неведомого происхождения. Лучше бы он сам рассказал о конечных целях, а то тут предположения можно пол-года строить не переставая.
Здравствуйте всем извеняюсь что долго не отвечал я сам не ожидал что моя тема всех так затронит всем большой респект.Машина мерседес W210 104 двигатель шестицилиндровый обьем 2,8.Кто может подсказать как можно рассчитать входящий импульс с каждого цилиндра,можно ли вообще использовать pulseIn или нет(pulseIn пробовал с одним цилиндром хорошо справляется).И как можно выдавать уже выходные импульсы которых можно корректировать чтобы добится нормальной смеси.(мне легче понимается на языке с++ так как еще опыта в ардуино маловато)
Механическое движение в ДВС, возникнув в цилиндрах, передается в направлении поршни->шатуны->коленвал и далее через систему распределения в различные точки двигателя и к навесному оборудованию.Ремень ГРМ передает вращение от коленвала к распредвалу и ничего в обратном направлении.
С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
Механическое движение в ДВС, возникнув в цилиндрах, передается в направлении поршни->шатуны->коленвал и далее через систему распределения в различные точки двигателя и к навесному оборудованию.Ремень ГРМ передает вращение от коленвала к распредвалу и ничего в обратном направлении.
С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
просто апофеоз глупости
Наверное ВЫ как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
В авто обратную связь дает лямбда зонд, датчик положения КВ и датчик абсолютного давления во впускном коллекторе, без них неполучится обеспечить правильный состав смеси. ДАД обеспечивает быструю реакцию на изменение режимов работы, ДПКВ: замер оборотов, моменты впрыска и зажигатия, лямбда на точную начтройку стереохимического состава смеси.
Только ненадо про карбюратор, он занимается все тем же: обеспечением стереохимического состава смеси.
А ТСу, можно замерять с нескольких цилиндров, только зачем? импульсы на форсунках одинаковые, достаточно брать с одной. а так как помимо замера надо еще и выдавать импульсы, то пульсин как-то неподходит, надо смотреть в сторону прерываний и micros().
как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
В авто обратную связь дает лямбда зонд, датчик положения КВ и датчик абсолютного давления во впускном коллекторе, без них неполучится обеспечить правильный состав смеси. ДАД обеспечивает быструю реакцию на изменение режимов работы, ДПКВ: замер оборотов, моменты впрыска и зажигатия, лямбда на точную начтройку стереохимического состава смеси.
Только ненадо про карбюратор, он занимается все тем же: обеспечением стереохимического состава смеси.
А ТСу, можно замерять с нескольких цилиндров, только зачем? импульсы на форсунках одинаковые, достаточно брать с одной. а так как помимо замера надо еще и выдавать импульсы, то пульсин как-то неподходит, надо смотреть в сторону прерываний и micros().
Ну вопервых или приводите цитаты полностью, или вовсе не открывайте рот. Во вторых с начало прочитайте всю ветку а потом излогайте все то, что до вас уже было сказано в теме. Я не заморачивался логикой работы блока распределения зажигания и подачи топлива, но одно знаю точно кольца, клапана, форсунки в процессе эксплуотаци имеют разный износ, а следовательно для ровной работы двигаьеля и снижения расхода топлива лучше учитывать параметры всех цилиндров.
риводите цитаты полностью, или вовсе не открывайте рот. Во вторых с начало прочитайте всю ветку а потом излогайте все то, что до вас уже было сказано в теме. Я не заморачивался логикой работы блока распределения зажигания и подачи топлива, но одно знаю точно кольца, клапана, форсунки в процессе эксплуотаци имеют разный износ, а следовательно для ровной работы двигаьеля и снижения расхода топлива лучше учитывать параметры всех цилиндров.
И на кой всю простынь цитировать?
Ага, а мозги двигла тебе телепаты, они знают и о износе колец, цилиндров, поршней и корректируют подачу топлива под каждый цилиндр, щаз. разбежались, вот если бы ламбд стояло на каждый цилиндр тогда да еще возможно, и то вряд-ли т.к в один момент топливо в один цилиндр похуже залетело, в другой в воздухе кислорода меньше оказалось. а так, во все цилиндры льется одинаково.
Я с вами полностью согласен если смотреть по оссцилографу 1-2 цилиндром и 2-3 цилиндром там разница только на периудах импульса.Время периода между 1-3 цилиндром 55мс,1-2 цилиндром 110мс.Длительность импульса на всех цилиндрах одинаково 2,5мс.Проблема не в технологий как работает двигатель а как принимать имплуьсы с каждого цилиндра и выдавать уже с выхода ардуино немножко продлив время импульса.Давайте не будем спорит про лямбда зонд и тд.Есть конкретная задача возможно ли его решение и как это делается.Заранее всем спасибо
напрямую с ардуиной неполучится, нет 6 каналов прерывания, тут либо все высчитывать по 1 форсунке(зная длительность импульса и время между импульсами это не сложно), либо по всем форсункам, но применяя внешнюю схему которая заранее за некоторое время будет переключать канал от форсунки к каналу прерывания ( что по мне гораздо сложнее), а пульсин тут неподходит т.к МК немногозадачен и во время ожидания и подсчета импульса другую задачу выполнять несможет.
По идее нам понадобится 3 канала прерывания так как зажигания с 1-6,2-5,3-4 цилиндром одиноковые преиоды идут.На ардуино уно все лишь 3 входа прерывания если не ошибаюсь
/* Main.ino file generated by New Project wizard
*
* Processor: ATmega328P
* Compiler: Arduino AVR
*/
#define WIDTH_MUL 0.3
#define IN_1_PIN 5
#define IN_2_PIN 6
#define IN_3_PIN 7
#define IN_MASK ((1 << IN_1_PIN) | (1 << IN_2_PIN) | (1 << IN_3_PIN))
#define IS_PIN_LOW(PIN) ((PIND & PIN) != PIN)
#define OUT_1_PIN 9
#define OUT_2_PIN 10
#define OUT_3_PIN 11
#define OUT_1_PORT PORTB1
#define OUT_2_PORT PORTB2
#define OUT_3_PORT PORTB3
#define OUT_MASK ((1 << OUT_1_PORT) | (1 << OUT_2_PORT) | (1 << OUT_3_PORT))
#define FORCE_PIN_LOW(PIN) PORTB &= ~(1 << PIN)
void setup() {
// инициализируем входы
for (int i = IN_1_PIN; i < IN_3_PIN + 1; i++) {
pinMode(i, INPUT);
}
// инициализируем выходы
for (int i = OUT_1_PIN; i < OUT_3_PIN + 1; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, HIGH);
}
}
uint32_t p_start, p_stop, p_width;
uint8_t in_state;
void loop(){
in_state = PIND & IN_MASK; // берем состояние всех 3-х входов
if ((in_state & IN_MASK) != IN_MASK) { // есть ли хоть один вход в LOW
p_start = micros(); // запомнили время прихода имп.
// состояние входов точно зеркалим на выходы
in_state ^= IN_MASK;
PORTB &= ~(in_state >> 4);
while((PIND & IN_MASK) != IN_MASK); // ждем, пока имульс закончится
p_stop = micros(); // фиксируем время окончания
p_width = p_stop - p_start; // вычисляем сколько длился вх. имп.
delayMicroseconds(p_width * WIDTH_MUL); // добавляем к длит. вых. имп.
PORTB |= OUT_MASK; // закончили, все выходы в HIGH
}
}
Весь алгоритм -- десять строк. Без всяких прерываний, таймеров и прочей зауми.
Пины 5-7 ардуины -- это входы, 9-11 выходы. Коэффициент уширения задается в дифайне WIDTH_MUL. Остальное работает автоматически.
Пруф-картинко:
Первые три сверху -- это сигналы на входах, нижний -- выход от красного входа. Выход вместился только один, т.к. у виртуального осциллографа только четыре входа. Ниже, то же самое, подробнее:
Одна клетка -- это пять вольт и одна миллисекунда.
Коэффициент "уширения" задан 0.3, т.е. импульсы на выходах длятся на треть дольше, чем на входах.
Не нужны тут прерывания. По уму, надо даже нулевой таймер останавливать, чтобы не вмешивался, а длительность импульсов считать первым таймером. Тогда можно добиться точности меньше микросекунды. Скетч, приведенный выше, тоже будет работать. В таком виде я изобразил его для краткости и простоты понимания.
Да понятно, у меня в голове то висело что помимо этого надо будет еще и другими задачами заниматься, поэтому и говорил про прерывания. а если ничем ненадо
а5021 спасибо что откликнулся я твой скетч проверил на ардуино уно,на вход 5 подал импулсь с периодом 40мс время импульса 2,5мс на выходе никаких изменений нету может где то я не правильно сделал
двух канальный осцилограф можно выдавать прямоугольные импульсы но только с одного канала.Время периода и длительность импульса может изменять по желанию
Импульсы положительной полярности (из 0 в 1) скетч отрабатывать не будет. Точнее сказать, будет, но длительность получится больше периода, т.ч. получится ноль всегда.
напрямую с ардуиной неполучится, нет 6 каналов прерывания, тут либо все высчитывать по 1 форсунке(зная длительность импульса и время между импульсами это не сложно), либо по всем форсункам, но применяя внешнюю схему которая заранее за некоторое время будет переключать канал от форсунки к каналу прерывания ( что по мне гораздо сложнее), а пульсин тут неподходит т.к МК немногозадачен и во время ожидания и подсчета импульса другую задачу выполнять несможет.
1. 6 каналов прерывания не нужны, можно обойтись двумя: один на один какой-нибудь цилиндр, другой - на все остальные через диоды. Достаточно того, что цилиндры работают в строго определенной последовательности, т.е. нам нужно знать момент начала последовательности и моменты поступления каждого из импульсов.
2. Многозадачность здесь и не нужна - импульсы идут строго по очереди и не могут перекрываться.
А надо минус. Я ориентировался на ту осциллограмму, что вы приводили. Или растягивайте плюс до состояния, чтобы все начинало выглядеть, как короткий минус.
6 каналов прерывания не нужны, можно обойтись двумя: один на один какой-нибудь цилиндр, другой - на все остальные через диоды. Достаточно того, что цилиндры работают в строго определенной последовательности, т.е. нам нужно знать момент начала последовательности и моменты поступления каждого из импульсов.
Ну да! Ещё нужны карты таро или рентген, чтобы быть уверенным что первым будет именно этот "один какой-нибудь цилиндр". )))))))))))))))
Если вам не трудно можете обяснит скажем 5 вход когда сработал он должен включит 9,6 вход 10 выход,7 вход 11 выход как все это работает.Заранее спасибо
IN_MASK -- биты/сост.пинов всех трех входов. Используется для контроля всех трех входов одновременно.
IS_PIN_LOW(PIN) -- возвращает "истинно", если PIN находистя в сост. LOW. В скетче не используется, представлен для нужд отладки.
OUT_MASK -- биты/сост.пинов всех трех выходов. Используется, чтобы все выходы перевести в состояние HIGH.
FORCE_PIN_LOW(PIN) -- устанавливает на вых. пине состояние LOW. В скетче не используется, представлен для нужд отладки.
Используются они так: чтобы узнать, не поступил ли на какой вход нужный импульс (не перешел ли пин в состояние LOW) производится операция логического "И" над битам входных пинов. Если ни на один пин не пришел отрицательный импульс, то операция побитового "И" (PORTD & IN_MASK) результатом будет иметь всегда значение равное IN_MASK. Если хотя бы один бит ушел в LOW, то условия равенства не будет выполнятся. Применение маски удобно тем, что не нужно проверять каждый пин. Все входные пины можно проверять одним действием:
if ((PORTD & IN_MASK) != IN_MASK) { // блок внути if будет выполнен, если хотя бы один пин в LOW
когда мы обнаружили, что один из входных пинов ушел в LOW, нам надо тут же опустить в LOW соответствующий выходной пин.
Пины, что входные, что выходные, идут по порядку. Правда, номера битов портов входных и выходных пинов не совпададают. Они смещены на 4 разряда
Канал 1 -- вход PORTD бит 5 -- выход PORTB бит 1;
Канал 2 -- вход PORTD бит 6 -- выход PORTB бит 2;
Канал 3 -- вход PORTD бит 7 -- выход PORTB бит 3;
поэтому, чтобы пробросить состояние входов на выходы, надо сдвинуть входные биты вправо на 4 разряда. Например, конструкция вида
PORTB = PORTD >> 4;
приведет входы и выходы, задействованные под наши каналы, в одинаковое состояние. Каждый бит входа точно "ляжет" на бит выхода. Если эти инстукцию зациклить и выполнять беспрестанно, то импульсы приходящие на вход станут выходить с выхода в том же самом виде, как будто эти пины соединены прямым проводом.
Недостаток такого способа в том, что пробрасываются между входом и выходом не только нужные биты, но и все остальные. Это не очень хорошо, т.к. другие биты порта могут быть использованы для иных надобностей и трогать их бы не надо. Для того, чтобы пробрасывать только нужные биты и не трограть остальные, в скетче из сообщения №79 используется немного более усложненная техника:
in_state ^= IN_MASK;
PORTB &= ~(in_state >> 4);
пробрасываются только три бита, а остальные остаются неизменными.
Дальше просто остается подождать время, требующееся для формирования нужной длительности и поднять все пины в HIGH.
За счет того, что мы не следить за каждым каналом индивидуально, а все битовые манипуляции производятся сразу над тремя битами всех каналов, скетч становится короче и быстрее.
PS. Вы разобрались с формой импульсов с генератора для подачи на вход ардуины?
Спасибо вам большое разобрался с импульсами генератора все отлично работает.Теперь мне нужно немножко изменить код выхода сигнала чтобы наоборот зеркально отобразит входяший входной сигнал.Так как логические транзисторы(транзисторы газовых форсунок) у меня работает с положительными импульсами с ардуино.И еще один вопрос если можно определять входящий импулсь на 3 входах ардуино и подавать также 3 выхода тогда можно ли точно так же определять и 6 входов...Заранее спасибо
Завтра по пробую подключится к форсункам двигателя если нормально будет считать и выдавать имплуьсы на выходе тогда можно уже газовые форсунки подключит и подавать газ
Зачем мучаться когда мозги на гбо стоят 60 евро, у меня установлено гбо, там чтобы корректировать импульс на газовые форсунки берутся значения : длинна импульса бензиновой форсунки, температуры газа перед форсункой, давление в впускном коллекторе, давление газа перед форсункой. При объеме 350 кубиков на цилиндр длительность импульса составляет от 4 до 12 миллисекунд. На газовой форсунке примерно так же.
Единственная здравая мысль за всю тему. И еще Yer как совет, если вы принципиально хотите сами разобраться, то сначала поискали бы ответ на форумах соответствующего профиля. А накатить код всегда можно, вот только какой результат на выходе получите?
Думаю да, если в двигателе есть форсунки, значит он управляется электроникой.
Надежнее будет копать в сторону перепрошивки родной авто электроники, у меня например есть шнурок в ноутбук, позволяет читать и стирать ошибки и если нужно считать прошивку и накатить новую, а на форуме по вашему авто в разделе электроника наверное есть прошивки.
Не думаю что их нет, скорее их за денежку предоставят. Но как я понимаю человек хочет решить проблему опытным путем, при этом обладает не достаточными знаниями в данном вопросе. Иначе не спрашивал бы и сходу правильно сформулировал задачу.
Вот и ответ для задаваки a5021. Читайт самоучка. И так у тебя во всем.
diger67
Согласен с вами.
У задачи которую хочет решить автор и которую мы клещами вытянули!) две сложности.
1) Программная, нужно все учесть и грамотно закодить чтоб ни зависания ни внештатных ситуаций не боялось и работало в разы быстрее впрыска.
2) Считаю не менее сложной, это железо нужно максимально устранить помехи и наводки, развязать выводы МК и обеспечить хорошие подтяжки и хорошие фильтры питания. В авто много факторов которые могут вызвать сбой как при пуске двигателя так и при его работе.
Это не просто какой-то умный указатель поворотов или стоп сигнал, здесь на кону жизни и здоровье вас и пассажиров. Штатные мозги авто в алюминием кейсе и схематически защищены от всех помех.
Ясен-красен быстрее. loop() -- это функци с потерями на call/ret по четыре такта. Плюс сохранение чего попало в стеке. А while это просто цикл из нескольких команд, который на одном месте крутится.
Кто бы вам-то посочувоствовал? Последнее время вы так мучаетесь, смотреть невозможно. И такую херню вывороте и сякой бред сочините. Нет вам покоя.
На кой хрен вы сюда эту "обратную связь" тащите, можете сказать? Какой в ней тут прок, если импульсы существуют, даже если о их природе мы ничего не знаем. Задача ведь простая -- появился импульс, нужно его расширить. А какие там связи и зонды где-то где-то есть, да пофиг.
В чем "во всем", неадекватушка? О чем эти вопли?
Человек спросил, как ему сделать то-то и то-то. Я подсказал. Не, заваливаются специалисты по всем вопросам и начинают объяснять ТС-у, как ему его задачу заменить на другую. О чем был вопрос? Ведь не о том, как ему авто на газ перевести. Пока он не объяснит, мы вообще не знаем, что и зачем он делает.
Штатные мозги авто в алюминием кейсе и схематически защищены от всех помех.
Мало того! Не знаю, у всех ли авто, но у меня там и пайки-то то не - везде сварка.
Мало того! Не знаю, у всех ли авто, но у меня там и пайки-то то не - везде сварка.
Спасибо указали еще очень важный момент, в боксе печатку крепить нужно не жестко, а через резину или другой материал поглощающий вибрации, пайка может дать трещину.
Ну, это-то все моделисты знают.
На кой хрен вы сюда эту "обратную связь" тащите, можете сказать? Какой в ней тут прок, если импульсы существуют, даже если о их природе мы ничего не знаем. Задача ведь простая -- появился импульс, нужно его расширить. А какие там связи и зонды где-то где-то есть, да пофиг.
Потому что от сигналов обратной связи напрямую зависит ширина управляющего импульса и они расчитаны для работы двигателя на топливе с определенными физикохимическими свойствами. Если тебе и так непонятно, то это уже клиника, к доктору.....
В чем "во всем", неадекватушка? О чем эти вопли?
Стонаешь ты, я высказываюсь так как понимаю вопрос, если я в чем то не прав, приведи аргумент кроме "это идея неправильная, я лучше знаю"
Потому что от сигналов обратной связи напрямую зависит ширина управляющего импульса....
И как только без нее, обратной связи, работают карбюраторные двиги? Сколько по РФ колесит мотов-японов выпуска прошлого века, к примеру... И очень даже не плохо работают. :-)
А про нью-китайцев двухколесных - даже упоминать не буду.
Ну давайте я в вашей же безаппеляционной манере изреку, что нифига не зависит. Офигенно убедительно звучит?
От сигнала с датчиков может зависеть момент начала импульса, но вот ширину никакая обратная связь не определяет.
Топикстартер спросил, как ему импульс шире сделать. Я сказал, как. Но тут понабежала куча народу с "идеями" и ну их толкать во все щели сообразно своему пониманию или непонимаю темы. Если бы я был топикстартером, то наверное бы послал всех носителей уникальных идей к едреням, вместе со своими идеями, о которых их никто не спрашивал.
ремень ГРМ отцепи и езжай себе дальше .... без обратной связи
обратнее уж точно не придумашь ....
ремень ГРМ отцепи и езжай себе дальше .... без обратной связи
обратнее уж точно не придумашь ....
Это прямой привод механизма, а не обратная связь. :-)))
Считай это ключевой транзистер в цепи управления светиком.
Бо есть двиги не с ремнем, а шестеренками или цепью в приводе валов ГРМ.
С ними как и где там ОС? Фиксированный КУ и только. :-)
К примеру у 4-х тактной Хонды, в верхневальном ГРМ, валы всегда(!) крутятся в 2 раза медленнее, чем коленвал. Вне зависимости от кол-ва оборотов последнего, ни от качечества топливной смеси на входе в цилиндр, ни от качества бизина, ни от степени загрязнянности воздушного фильтра, ни от напряжения бортовой сети, ни от температуры горения смеси в цилиндре. И тд и тп.
- Ы?
Для газовых мозгов обратная связь побоку, ее обеспечивают бензиновые мозги уменьшая или увеличивая продолжительность впрыска за такт, основываясь на показзаниях дпкв, заслонки, температуры воздуха и ож, давления во впускном коллекторе, а газовые тупо сверяясь с топливной картой, оборотами, температурой, и диф давлением выдают продолжительность импульса на газовую форсунку основываясь на продолжительности импульса топливной форсунки
Механическое движение в ДВС, возникнув в цилиндрах, передается в направлении поршни->шатуны->коленвал и далее через систему распределения в различные точки двигателя и к навесному оборудованию. Ремень ГРМ передает вращение от коленвала к распредвалу и ничего в обратном направлении. С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
Может, вы плохо придумывали? Может, нужно попридумывать еще?
[...]
газовые тупо сверяясь с топливной картой, оборотами, температурой, и диф давлением выдают продолжительность импульса на газовую форсунку основываясь на продолжительности импульса топливной форсунки
Все верно. Топикстартер и не стал никого грузить тут теорией и подробностями, просто попросив помочь ему увеличить продолжительность электрического импульса. Пусть изначально нечеткая и не совсем правильно сформулированная задача, тем не менее, прекрасно ложится на функционал схемы или электронного устройства. Но понабежали многочисленные "специалисты" и начали вопить про безопасность (мы все умрем!), плести какую-то ахинею про необходимость срочного изобретения формул, городить обратную связь и обнаруживать ее там, где таковой отродясь небыло. Атас, короче.
Решение задачи в первом приближении я показал и считаю, что ардиуна прекрасно с ней справится. ТСу остается самостоятельно допилить скетч для этих целей и можно приступать к натурным испытаниям.
Но это не отменяет того что гораздо проще купить газомозги вместе с необходимыми датчиками и проводкой всего за 60 евро.
Мы не знаем, чем занимается ТС. Меня смущают три форсунки. Трехцилиндровые автомобильные движки конечно существуют, но встречаются не очень часто. Есть в продаже газмозги на три цилиндра? Я не копенгаген в вопросах ГБО, т.ч. тут темой не владею.
Кроме того, нельзя исключать, что ТС прощупывает подходы именно к тому, как не покупать мозги за 60 ойро. По сути, функционала в них и на 10 нет. Да много чего может быть, включая самые неожиданные варианты, навроде колхозинга электрогенератора для дачи из частично-убитого (три цилиндра) автомобильного движка неведомого происхождения. Лучше бы он сам рассказал о конечных целях, а то тут предположения можно пол-года строить не переставая.
Здравствуйте всем извеняюсь что долго не отвечал я сам не ожидал что моя тема всех так затронит всем большой респект.Машина мерседес W210 104 двигатель шестицилиндровый обьем 2,8.Кто может подсказать как можно рассчитать входящий импульс с каждого цилиндра,можно ли вообще использовать pulseIn или нет(pulseIn пробовал с одним цилиндром хорошо справляется).И как можно выдавать уже выходные импульсы которых можно корректировать чтобы добится нормальной смеси.(мне легче понимается на языке с++ так как еще опыта в ардуино маловато)
С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
просто апофеоз глупости
С этой точки зрения, никаких функций обратной связи ремень ГРМ не выполняет.
просто апофеоз глупости
Наверное ВЫ как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
В авто обратную связь дает лямбда зонд, датчик положения КВ и датчик абсолютного давления во впускном коллекторе, без них неполучится обеспечить правильный состав смеси. ДАД обеспечивает быструю реакцию на изменение режимов работы, ДПКВ: замер оборотов, моменты впрыска и зажигатия, лямбда на точную начтройку стереохимического состава смеси.
Только ненадо про карбюратор, он занимается все тем же: обеспечением стереохимического состава смеси.
А ТСу, можно замерять с нескольких цилиндров, только зачем? импульсы на форсунках одинаковые, достаточно брать с одной. а так как помимо замера надо еще и выдавать импульсы, то пульсин как-то неподходит, надо смотреть в сторону прерываний и micros().
как и я неадекватны, потому что "все модули и оборудование в машине работают независимо друг от друга" и вообще сигналы обратной связи это зло как в аналогоыой так и в цифровой технике. о_О
В авто обратную связь дает лямбда зонд, датчик положения КВ и датчик абсолютного давления во впускном коллекторе, без них неполучится обеспечить правильный состав смеси. ДАД обеспечивает быструю реакцию на изменение режимов работы, ДПКВ: замер оборотов, моменты впрыска и зажигатия, лямбда на точную начтройку стереохимического состава смеси.
Только ненадо про карбюратор, он занимается все тем же: обеспечением стереохимического состава смеси.
А ТСу, можно замерять с нескольких цилиндров, только зачем? импульсы на форсунках одинаковые, достаточно брать с одной. а так как помимо замера надо еще и выдавать импульсы, то пульсин как-то неподходит, надо смотреть в сторону прерываний и micros().
Ну вопервых или приводите цитаты полностью, или вовсе не открывайте рот. Во вторых с начало прочитайте всю ветку а потом излогайте все то, что до вас уже было сказано в теме. Я не заморачивался логикой работы блока распределения зажигания и подачи топлива, но одно знаю точно кольца, клапана, форсунки в процессе эксплуотаци имеют разный износ, а следовательно для ровной работы двигаьеля и снижения расхода топлива лучше учитывать параметры всех цилиндров.
риводите цитаты полностью, или вовсе не открывайте рот. Во вторых с начало прочитайте всю ветку а потом излогайте все то, что до вас уже было сказано в теме. Я не заморачивался логикой работы блока распределения зажигания и подачи топлива, но одно знаю точно кольца, клапана, форсунки в процессе эксплуотаци имеют разный износ, а следовательно для ровной работы двигаьеля и снижения расхода топлива лучше учитывать параметры всех цилиндров.
И на кой всю простынь цитировать?
Ага, а мозги двигла тебе телепаты, они знают и о износе колец, цилиндров, поршней и корректируют подачу топлива под каждый цилиндр, щаз. разбежались, вот если бы ламбд стояло на каждый цилиндр тогда да еще возможно, и то вряд-ли т.к в один момент топливо в один цилиндр похуже залетело, в другой в воздухе кислорода меньше оказалось. а так, во все цилиндры льется одинаково.
Я с вами полностью согласен если смотреть по оссцилографу 1-2 цилиндром и 2-3 цилиндром там разница только на периудах импульса.Время периода между 1-3 цилиндром 55мс,1-2 цилиндром 110мс.Длительность импульса на всех цилиндрах одинаково 2,5мс.Проблема не в технологий как работает двигатель а как принимать имплуьсы с каждого цилиндра и выдавать уже с выхода ардуино немножко продлив время импульса.Давайте не будем спорит про лямбда зонд и тд.Есть конкретная задача возможно ли его решение и как это делается.Заранее всем спасибо
напрямую с ардуиной неполучится, нет 6 каналов прерывания, тут либо все высчитывать по 1 форсунке(зная длительность импульса и время между импульсами это не сложно), либо по всем форсункам, но применяя внешнюю схему которая заранее за некоторое время будет переключать канал от форсунки к каналу прерывания ( что по мне гораздо сложнее), а пульсин тут неподходит т.к МК немногозадачен и во время ожидания и подсчета импульса другую задачу выполнять несможет.
По идее нам понадобится 3 канала прерывания так как зажигания с 1-6,2-5,3-4 цилиндром одиноковые преиоды идут.На ардуино уно все лишь 3 входа прерывания если не ошибаюсь
Как-как.. Вот как:
Весь алгоритм -- десять строк. Без всяких прерываний, таймеров и прочей зауми.
Пины 5-7 ардуины -- это входы, 9-11 выходы. Коэффициент уширения задается в дифайне WIDTH_MUL. Остальное работает автоматически.
Пруф-картинко:
Первые три сверху -- это сигналы на входах, нижний -- выход от красного входа. Выход вместился только один, т.к. у виртуального осциллографа только четыре входа. Ниже, то же самое, подробнее:
Одна клетка -- это пять вольт и одна миллисекунда.
Коэффициент "уширения" задан 0.3, т.е. импульсы на выходах длятся на треть дольше, чем на входах.
на уно 2 канала прерывания
Не нужны тут прерывания. По уму, надо даже нулевой таймер останавливать, чтобы не вмешивался, а длительность импульсов считать первым таймером. Тогда можно добиться точности меньше микросекунды. Скетч, приведенный выше, тоже будет работать. В таком виде я изобразил его для краткости и простоты понимания.
Да понятно, у меня в голове то висело что помимо этого надо будет еще и другими задачами заниматься, поэтому и говорил про прерывания. а если ничем ненадо
а5021 спасибо что откликнулся я твой скетч проверил на ардуино уно,на вход 5 подал импулсь с периодом 40мс время импульса 2,5мс на выходе никаких изменений нету может где то я не правильно сделал
А что является источником импульсов? Какие параметры известны помимо длительности?
двух канальный осцилограф можно выдавать прямоугольные импульсы но только с одного канала.Время периода и длительность импульса может изменять по желанию
Уровни какие? Напряжение? Полярность?
Импульсы положительной полярности (из 0 в 1) скетч отрабатывать не будет. Точнее сказать, будет, но длительность получится больше периода, т.ч. получится ноль всегда.
напряжение 5В полярность +
напрямую с ардуиной неполучится, нет 6 каналов прерывания, тут либо все высчитывать по 1 форсунке(зная длительность импульса и время между импульсами это не сложно), либо по всем форсункам, но применяя внешнюю схему которая заранее за некоторое время будет переключать канал от форсунки к каналу прерывания ( что по мне гораздо сложнее), а пульсин тут неподходит т.к МК немногозадачен и во время ожидания и подсчета импульса другую задачу выполнять несможет.
1. 6 каналов прерывания не нужны, можно обойтись двумя: один на один какой-нибудь цилиндр, другой - на все остальные через диоды. Достаточно того, что цилиндры работают в строго определенной последовательности, т.е. нам нужно знать момент начала последовательности и моменты поступления каждого из импульсов.
2. Многозадачность здесь и не нужна - импульсы идут строго по очереди и не могут перекрываться.
А надо минус. Я ориентировался на ту осциллограмму, что вы приводили. Или растягивайте плюс до состояния, чтобы все начинало выглядеть, как короткий минус.
6 каналов прерывания не нужны, можно обойтись двумя: один на один какой-нибудь цилиндр, другой - на все остальные через диоды. Достаточно того, что цилиндры работают в строго определенной последовательности, т.е. нам нужно знать момент начала последовательности и моменты поступления каждого из импульсов.
Ну да! Ещё нужны карты таро или рентген, чтобы быть уверенным что первым будет именно этот "один какой-нибудь цилиндр". )))))))))))))))
Какие таймеры, какие диоды.. Десять строк весь код, зачем еще прерывания?
Если вам не трудно можете обяснит скажем 5 вход когда сработал он должен включит 9,6 вход 10 выход,7 вход 11 выход как все это работает.Заранее спасибо
вот этот код как можно понять
Гуглить битовые операции, прямое управление портами и регистры микроконтроллера
IN_x_PIN -- вход канала х;
OUT_x_PIN -- выход канала х;
IN_MASK -- биты/сост.пинов всех трех входов. Используется для контроля всех трех входов одновременно.
IS_PIN_LOW(PIN) -- возвращает "истинно", если PIN находистя в сост. LOW. В скетче не используется, представлен для нужд отладки.
OUT_MASK -- биты/сост.пинов всех трех выходов. Используется, чтобы все выходы перевести в состояние HIGH.
FORCE_PIN_LOW(PIN) -- устанавливает на вых. пине состояние LOW. В скетче не используется, представлен для нужд отладки.
Используются они так: чтобы узнать, не поступил ли на какой вход нужный импульс (не перешел ли пин в состояние LOW) производится операция логического "И" над битам входных пинов. Если ни на один пин не пришел отрицательный импульс, то операция побитового "И" (PORTD & IN_MASK) результатом будет иметь всегда значение равное IN_MASK. Если хотя бы один бит ушел в LOW, то условия равенства не будет выполнятся. Применение маски удобно тем, что не нужно проверять каждый пин. Все входные пины можно проверять одним действием:
когда мы обнаружили, что один из входных пинов ушел в LOW, нам надо тут же опустить в LOW соответствующий выходной пин.
Пины, что входные, что выходные, идут по порядку. Правда, номера битов портов входных и выходных пинов не совпададают. Они смещены на 4 разряда
Канал 1 -- вход PORTD бит 5 -- выход PORTB бит 1;
Канал 2 -- вход PORTD бит 6 -- выход PORTB бит 2;
Канал 3 -- вход PORTD бит 7 -- выход PORTB бит 3;
поэтому, чтобы пробросить состояние входов на выходы, надо сдвинуть входные биты вправо на 4 разряда. Например, конструкция вида
приведет входы и выходы, задействованные под наши каналы, в одинаковое состояние. Каждый бит входа точно "ляжет" на бит выхода. Если эти инстукцию зациклить и выполнять беспрестанно, то импульсы приходящие на вход станут выходить с выхода в том же самом виде, как будто эти пины соединены прямым проводом.
Недостаток такого способа в том, что пробрасываются между входом и выходом не только нужные биты, но и все остальные. Это не очень хорошо, т.к. другие биты порта могут быть использованы для иных надобностей и трогать их бы не надо. Для того, чтобы пробрасывать только нужные биты и не трограть остальные, в скетче из сообщения №79 используется немного более усложненная техника:
пробрасываются только три бита, а остальные остаются неизменными.
Дальше просто остается подождать время, требующееся для формирования нужной длительности и поднять все пины в HIGH.
За счет того, что мы не следить за каждым каналом индивидуально, а все битовые манипуляции производятся сразу над тремя битами всех каналов, скетч становится короче и быстрее.
PS. Вы разобрались с формой импульсов с генератора для подачи на вход ардуины?
Спасибо вам большое разобрался с импульсами генератора все отлично работает.Теперь мне нужно немножко изменить код выхода сигнала чтобы наоборот зеркально отобразит входяший входной сигнал.Так как логические транзисторы(транзисторы газовых форсунок) у меня работает с положительными импульсами с ардуино.И еще один вопрос если можно определять входящий импулсь на 3 входах ардуино и подавать также 3 выхода тогда можно ли точно так же определять и 6 входов...Заранее спасибо
Спасибо большое по пробую на двигателе
Расскажите, что получится. Интересно.
Завтра по пробую подключится к форсункам двигателя если нормально будет считать и выдавать имплуьсы на выходе тогда можно уже газовые форсунки подключит и подавать газ