как выдавать импульсы

Yer
Offline
Зарегистрирован: 12.02.2016

нет от usb ноутбука,там размах от 0-4,7В настроил 

Yer
Offline
Зарегистрирован: 12.02.2016

// инициализируем входы

  for (int i = IN_1_PIN; i < IN_6_PIN + 1; i++) {
    pinMode(i, INPUT);
  }
      // инициализируем выходы
  for (int i = OUT_1_PIN; i < OUT_6_PIN + 1; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
  }
изменил---
 for (int i = OUT_1_PIN; i < OUT_6_PIN + 1; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW); //вот здесь поставил LOW и все вроде нормально выходы все отключенные когда вход поттянуть к плюсу
 
С осцилографа подал импульс на выходе есть  

 

Yer
Offline
Зарегистрирован: 12.02.2016

а как можно скетч записать в EEPROM .#include <EEPROM.h> - с этой командой что то не получается загрузит скетч чтобы от питания аккумулятора работал 

a5021
Offline
Зарегистрирован: 07.07.2013

Yer пишет:
digitalWrite(i, LOW); //вот здесь поставил LOW и все вроде нормально выходы все отключенные когда вход

Там и должен быть LOW, см. сообщение №97. У вас HIGH что-ли там как-то оказался?

Не нужен вам еепром. Скетч загружается во флеш, который сохраняет свое содержимое при отключении питания.

Yer
Offline
Зарегистрирован: 12.02.2016

Вы правильно сказали вы скетче указали LOW я по ошибке поставил HIGH.Как только делителей напряжения подключил сигналам (мипульсам)бензиновый форсунки ихние форма изменилось и двигатель по другому стал работать.Боюсь спалит транзисторов самого блока ЭБУ ,вот диаграмма

  

Yer
Offline
Зарегистрирован: 12.02.2016

когда с ЭБУ приходит управляюший минус он паралельно идет на делитель.Делитель как то влияет на форму сигнала  

a5021
Offline
Зарегистрирован: 07.07.2013

Подсаживает может? Возможно, имеет смысл резисторы с большим номиналом поставить. Имеется ввиду те, которые к стабилитронам.

Yer
Offline
Зарегистрирован: 12.02.2016

нужно ставит резисторы последовательно к стабилитронам 

Yer
Offline
Зарегистрирован: 12.02.2016

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

a5021
Offline
Зарегистрирован: 07.07.2013

Когд же газ в цилиндры уже пускать будете? :)

Yer
Offline
Зарегистрирован: 12.02.2016

Хочу ардуино собрать в металический корпус и сделать какой нибудь разьем чтобы все контакты хорошо соединялись.Если получится завтра по пробоую запустит газом а то сколько дней мучаюсь

a5021
Offline
Зарегистрирован: 07.07.2013

Интересно посмотреть, что в получится в итоге.

diger67
Offline
Зарегистрирован: 25.07.2015

Почти IMax3D.....

a5021
Offline
Зарегистрирован: 07.07.2013

А вы не обращайте внимания. Есть люди, которым нравится говорить глупости, давать бесполезные или даже вредные советы и предрекать апокалиптические последствия. Обычно сами он ни на что не способны, но чтобы хоть как-то затушевать свою собственную никчемность, они охотно упражняются в замазывании дерьмом других.

Yer
Offline
Зарегистрирован: 12.02.2016

Сегодня был первый запуск двигатель ели как запустился и заглох так каждый раз.проверил импульсы все в порядке.давление редуктора настраивал все равно не получилось

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Yer, я вообще в двигателях не особо, но разве они запускаются сразу на газе? КТо-то мне говорил, что сначала запускаешь на бензине, а потом на газ переходишь. Нет?

evgta
Offline
Зарегистрирован: 02.09.2016

Можно и сражу на газу запустить, на холостом будет работать, но не более, иначе гпз не испаряется в редукторе и богатится сильно смесь

diger67
Offline
Зарегистрирован: 25.07.2015

a5021 пишет:

А вы не обращайте внимания. Есть люди, которым нравится говорить глупости, давать бесполезные или даже вредные советы и предрекать апокалиптические последствия. Обычно сами он ни на что не способны, но чтобы хоть как-то затушевать свою собственную никчемность, они охотно упражняются в замазывании дерьмом других.

Ну ты то уже с ног до головы обделался. А осторожность в таких вопросах ни кому еще не мешала. Ну и здоровый сарказм не доступен для понимания подросткам или дяденькам с мозками первокласника. Взрослей......

a5021
Offline
Зарегистрирован: 07.07.2013

Yer пишет:
Сегодня был первый запуск двигатель ели как запустился и заглох так каждый раз.проверил импульсы все в порядке.давление редуктора настраивал все равно не получилось

Менять ширину выходных импульсов вы, разумеется, пробовали?

Yer
Offline
Зарегистрирован: 12.02.2016

в ютубе видел как настраевают время впрыска газа там если бенз впрыск составляет 4,0мс то на газу впырск 6,5мс.Разница в том что у них в программе можно менять каждый канал выхода отдельно это для того чтобы сделать равномерный впрыск каждого цилиндра.Потому что усилие пружин форсунок у каждого разное.У меня форсунки бэушные завтра их почишу карпом сальники проверю.

Yer
Offline
Зарегистрирован: 12.02.2016

Ширину импульсов менял разница 2-2,5мс больше чем бензина 

evgta
Offline
Зарегистрирован: 02.09.2016

настраиваются форсунки автоматически. для этого запоминаются обороты ХХ, затем отключается бензиновая форсунка и начинает работать газовая до тех пор пока не восстановятся обороты ХХ до тех же что были на бензине, и так со всеми цилиндрами.

a5021
Offline
Зарегистрирован: 07.07.2013

Как-то сказывается изменение ширины импульсов или в любом варианте сразу глохнет и все?

evgta
Offline
Зарегистрирован: 02.09.2016

у меня на гбо пока давление не понизил импульсы на газовых форсунках были меньше бензиновых

Yer
Offline
Зарегистрирован: 12.02.2016

когда поменял ширину импульса завелса и держал обороты с трудом через секунд 10-15 двиг заглох.Прикол в том что я наблюдал за импульсами который двигатель задает к ардуино там аж 15-20 мс выдавал как будто смесь бедная.Так что завтра буду разбирать газовые форсунки.Много чего нужно учитовать 

a5021
Offline
Зарегистрирован: 07.07.2013

В принципе, за время, пока длится входной импульс, а ардуина ничем не занят и только ждет окончания, можно успеть сделать массу полезных дел. Например, уточнить с какого входа пришел импульс и приготовится формировать нужную длительность для конкретного канала идивидуально.

Yer
Offline
Зарегистрирован: 12.02.2016

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

diger67
Offline
Зарегистрирован: 25.07.2015

Yer пишет:

когда поменял ширину импульса завелса и держал обороты с трудом через секунд 10-15 двиг заглох.Прикол в том что я наблюдал за импульсами который двигатель задает к ардуино там аж 15-20 мс выдавал как будто смесь бедная.Так что завтра буду разбирать газовые форсунки.Много чего нужно учитовать 

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

a5021
Offline
Зарегистрирован: 07.07.2013

Yer пишет:
формирование импульса индивидуально каждому каналу если это будет возможно так сделать в скетче. 

 

/* Main.ino file generated by New Project wizard
 *
 * Processor: ATmega328P
 * Compiler:  Arduino AVR
 */

#define IN_1_PIN	2
#define IN_2_PIN	3
#define IN_3_PIN	4
#define IN_4_PIN	5
#define IN_5_PIN	6
#define IN_6_PIN	7

#define IN_MASK 	((1 << IN_1_PIN) | (1 << IN_2_PIN) | (1 << IN_3_PIN) | (1 << IN_4_PIN) | (1 << IN_5_PIN) | (1 << IN_6_PIN))

#define OUT_1_PIN	8
#define OUT_2_PIN	9
#define OUT_3_PIN	10
#define OUT_4_PIN	11
#define OUT_5_PIN	12
#define OUT_6_PIN	13

#define OUT_1_PORT	PORTB0
#define OUT_2_PORT	PORTB1
#define OUT_3_PORT	PORTB2
#define OUT_4_PORT	PORTB3
#define OUT_5_PORT	PORTB4
#define OUT_6_PORT	PORTB5

#define OUT_MASK	((1 << OUT_1_PORT) | (1 << OUT_2_PORT) | (1 << OUT_3_PORT) | (1 << OUT_4_PORT) | (1 << OUT_5_PORT) | (1 << OUT_6_PORT))

void setup() {
      // инициализируем входы
  for (int i = IN_1_PIN; i < IN_6_PIN + 1; i++) {
    pinMode(i, INPUT);
  }
      // инициализируем выходы
  for (int i = OUT_1_PIN; i < OUT_6_PIN + 1; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW);
  }
}

// p_mul -- массив индивидуальных значений для каждого канала
// сколько длительности добавить к входному мпульсу 
//значения в процентах 33.3%, 66.6%, 99.9% 133.3% и т.п.
uint16_t p_mul[6] = {333, 666, 999, 1333, 1666, 1999};
uint32_t pulse;
uint8_t in_state;

void loop(){
  in_state = PIND & IN_MASK;              // берем состояние всех 6-х входов
  if ((in_state & IN_MASK) != IN_MASK) {  // есть ли хоть один вход в LOW
    pulse = micros();                     // запомнили время прихода имп.
      // состояние входов точно зеркалим на выходы
    in_state = (in_state ^ IN_MASK) >> 2; // переворачиваем и сдвигаем
    PORTB |= in_state;                    // выставляем пин выхода в HIGH

    uint8_t i = 0;                        // номер текущего канала 
    
    while((PIND & IN_MASK) != IN_MASK) {  // ждем, пока имульс закончится
         // вычисляем номер канала, куда пришел импульс
      if (in_state != 0) {                // если значащие биты еще остаются
        i++;                              // значит следующий номер канала
	    in_state >>= 1;                   // сдвигаем вправо, младший бит за борт
      } 
    }         
    
    pulse = micros()- pulse;              // вычисляем сколько длился вх. имп.
    delayMicroseconds(pulse * p_mul[i - 1] / 1000); // добавляем к длит. вых. имп.
    PORTB &= ~OUT_MASK;                   // закончили, все выходы в LOW
  }
}

 

Yer
Offline
Зарегистрирован: 12.02.2016

Спасибо большое!!!

diger67
Offline
Зарегистрирован: 25.07.2015

Yer, еще такой ньюас, вы не учитывате что при холодном запуске двигателя бортовая система больше приоткрывает дроссельную заслонку и по мере нагрева двигателя устанавливает ее в нужное состояние. Это примерно как на жигулях приходилось, особенно зимой, вытаскивать "подсос". Попробуйте запустить двигатель на бензине, прогреть его до момента стабилизации оборотв, а потом переключиться на газ. Вполне вероятно что он будет нормально работать.

evgta
Offline
Зарегистрирован: 02.09.2016

Для начала надо откалибровать коэф как это делается на гбо, выше уже писал как. Надо отключать одну бензиновую форсунку и газовой добиваться тех же оборотов что и с бензиновой, и так проделать со всеми форсунками.
Но это одинифиг непоможет, коэфициэнты приходится подправлять под разные режимы нагрузки в топливной карте, чтобы движок работал нормально и небыло переобогащеня или переобеднения смеси.
На своем ГБО при автонастройке до 2500 нормально работало, а потом беднило сильно, пришлось ручками подправлять, а для этого нужен исправный лямбда зонд

Yer
Offline
Зарегистрирован: 12.02.2016

спасибо за совет,машина была пргретая так как рабочая температура редуктора должен быть от 50 гр и выше 

diger67
Offline
Зарегистрирован: 25.07.2015

Вот и evgta пишет о необходимисти введения коэффициэнта и по всей видимости он должен меняться пропорционально параметрам обратной связи. Зависимость подачи бензина и газа это абсолютно разные значения, а следовательно мало увеличить ширину ипульса.

a5021
Offline
Зарегистрирован: 07.07.2013

evgta пишет:
На своем ГБО при автонастройке до 2500 нормально работало, а потом беднило сильно, пришлось ручками подправлять, а для этого нужен исправный лямбда зонд

Т.к. время поступления импульсов фиксируется, обороты посчитать легко. На основе информации об оборотах, можно дополнительно влиять на ширину импульса нужным образом.

evgta
Offline
Зарегистрирован: 02.09.2016

diger67 пишет:

Вот и evgta пишет о необходимисти введения коэффициэнта и по всей видимости он должен меняться пропорционально параметрам обратной связи. Зависимость подачи бензина и газа это абсолютно разные значения, а следовательно мало увеличить ширину ипульса.

Нет в гбо обратной связи, ее обеспечивают бензиновые мозги(если не считать датчика разряжения, по нему и оборотам вычисляется мощность, но есть гбо и без датчиков вообще) они добавляя время впрыска бензиновой форсунки соответственно увеличивают и время впрыска газовой, но если коэф подобран неверно то бензиновым мозгам незватает диапазона регулирования(по лямбде) и смесь богатится или беднится. Лямбда к газовым мозгам подключается только для настройки и непосредственно в работе в газовых мозгах не участвует.

evgta
Offline
Зарегистрирован: 02.09.2016

a5021 пишет:

evgta пишет:
На своем ГБО при автонастройке до 2500 нормально работало, а потом беднило сильно, пришлось ручками подправлять, а для этого нужен исправный лямбда зонд

Т.к. время поступления импульсов фиксируется, обороты посчитать легко. На основе информации об оборотах, можно дополнительно влиять на ширину импульса нужным образом.

Там больше не по оборотам, а по мощности, топливная карта - произведение оборотов на давление во впускном коллекторе(чем сильнее разряжение тем меньше мощность).
У меня совсем беднить начинало при нажатой в пол педали.

evgta
Offline
Зарегистрирован: 02.09.2016

Есть еще одна проблема, инерционность редуктора и надо компенсировать забросы диф давления(давление постоянно относительно давления на впуске) и соответсвенно для компенсации знать атм. давление на впуске и в редукторе. Хотя есть системы без датчиков, насколько они стабильно могут работать сказать немогу.

a5021
Offline
Зарегистрирован: 07.07.2013

evgta пишет:
Там больше не по оборотам, а по мощности,

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

evgta
Offline
Зарегистрирован: 02.09.2016

Данные по мощности при езде на бензине записываются в мозги гбо (надо час на разных режимах откатать) на основании оборотов и давления на впуске, затем тоже на газу, и после совмещаешь точки газового графика с бензиновым, так гбо настраивается, ну и плюс в движении полямбде отлавливаешь обеднение или переобогащение смеси на разных режимах

a5021
Offline
Зарегистрирован: 07.07.2013

Значит, лукап-таблица и есть.

Yer
Offline
Зарегистрирован: 12.02.2016

Есть люди которые вообще без процессора решили проект вот ссылка :http://gbo.ua/forum/viewtopic.php?t=3403&postdays=0&postorder=asc&start=1710

Yer
Offline
Зарегистрирован: 12.02.2016

У меня с ардуино сигналами все в порядке только нужно решит самоиндукции форсунок которые оставляют открытым форсунки.Если подробно смотреть в схему там можно заметит снаббер который гасит самоиндукцию форсунки 

evgta
Offline
Зарегистрирован: 02.09.2016

Диод вроде как для таких целей всегда ставили, на схеме VD3 

Yer
Offline
Зарегистрирован: 12.02.2016

VD3 диод не успеит гасит самоиндукцию по этому С1 конденсатор стоит в схеме 

a5021
Offline
Зарегистрирован: 07.07.2013

Диод все успеет. Тут обратная проблема. Если объяснять совсем грубо, то чем сильнее выброс самоиндукции, тем быстрее происходит "рассасывание" магнитного поля и, соответственно, закрытие клапана. Шунтирование диодом приводит к тому, что выброс не достигает больших величин и магнитное поле "рассасывается" медленнее. Клапан по времени закрывается дольше. Для частичного купирования этого эффекта на схеме в №192 предусмотрен стабилитрон VD15. Нужен он для того, чтобы импульс сначала набирал амплитуду максимально быстро и скорость спадала только при "пробое" стабилитрона. Встречно включенные стабилитрон с диодом позволяют немного увеличить быстродействие на закрытие.

Yer
Offline
Зарегистрирован: 12.02.2016

Согласен

Yer
Offline
Зарегистрирован: 12.02.2016

Провел тестирование с пьезо микрофоном,при мипульсе включения 5мс катушка закрывается дольше на 2мс итого получается 7мс.

К двигателю все подключил не хотел завдится,настроил давление газа редуктора на 1,25кг/см2 потом завелся без проблем.Холостой оборот стабилен на отклик газа реагирует моментально.Спасибо всем отдельно спасиобо a5021   

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

отпишитесь, пожалуйста по впечатлениям от езды

Yer
Offline
Зарегистрирован: 12.02.2016