#76 2018-03-23 18:25:30

Figaro 77
Участник
Из Киев
Зарегистрирован: 2018-03-18
Сообщений: 56

Re: Опережение зажигания на ардуино

все идет четко, сравнивал даже с оптическим тахометром все норм, до 13 000 адекватно считает, а дальше слегка барахлит)) ну и этого хватит smile

Редактировался Figaro 77 (2018-03-23 18:27:34)

#77 2018-03-23 18:38:28

Figaro 77
Участник
Из Киев
Зарегистрирован: 2018-03-18
Сообщений: 56

Re: Опережение зажигания на ардуино

Вот у меня стоит стоковое зажигания с китайским коммутатором, заводится с пол тыка, средние об. 4000-5500 норм крутит макс. крутящий на 5340 об, 11,4 H/м а дальше просто теряет крутящий момент. Я прорезал крепежные уши на датчике и сместил его в сторону УОЗ. эффект моментальный на лицо, теперь "заводится хорошо но долго lol "  из за раннего зажигания. но крутящий увеличился 5.5 H/м и составляет 16.9 H/м. макс. крутящий сдвинулся на 6500 что очень хорошо и вывод - зажигание ограничивает мощность

Редактировался Figaro 77 (2018-03-23 18:42:15)

#78 2018-03-23 22:17:13

Batu
Участник
Из Харьков
Зарегистрирован: 2017-11-08
Сообщений: 232

Re: Опережение зажигания на ардуино

Держи в курсе. Я немного пообщался. Есть сомнения что датчик холла идеально работает..

#79 2018-03-23 22:52:07

Figaro 77
Участник
Из Киев
Зарегистрирован: 2018-03-18
Сообщений: 56

Re: Опережение зажигания на ардуино

Batu пишет:

Держи в курсе. Я немного пообщался. Есть сомнения что датчик холла идеально работает..

вот такой он
5668.jpg
похож на датчик распредвала

Редактировался Figaro 77 (2018-03-23 22:53:29)

#80 2018-03-23 22:58:14

Figaro 77
Участник
Из Киев
Зарегистрирован: 2018-03-18
Сообщений: 56

Re: Опережение зажигания на ардуино

один такой не рабочий я продиагностировал спец прибором  "молотком" lol  посмотрел что внутри. там плата cmd с кренкой по питанию за ней микруха, увы маркировки не скажу, излишки ускоренного процесса разборки данного устройства  big_smile

Редактировался Figaro 77 (2018-03-23 23:01:55)

#81 2018-03-23 23:13:32

Batu
Участник
Из Харьков
Зарегистрирован: 2017-11-08
Сообщений: 232

Re: Опережение зажигания на ардуино

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

#82 2018-03-28 18:46:44

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 768

Re: Опережение зажигания на ардуино

#83 2018-03-28 23:22:46

Figaro 77
Участник
Из Киев
Зарегистрирован: 2018-03-18
Сообщений: 56

Re: Опережение зажигания на ардуино

я это уже 100500 раз видел
а контролеры PIC это фигня полная, куча возни и оно того не стоит hmm

#84 2020-02-15 23:50:35

Константин11
Гость

Re: Опережение зажигания на ардуино

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

#85 2020-02-16 07:40:01

Watchdog
Гость

Re: Опережение зажигания на ардуино

Figaro 77 пишет:

... а контролеры PIC это фигня полная, куча возни и оно того не стоит hmm

PIC не Arduino! Это надёжные и простые микроконтроллеры, для определённого круга задач. Эта фигня, между прочим, приобрела Atmel. big_smile

#86 2020-02-16 09:47:05

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 588

Re: Опережение зажигания на ардуино

Ну, насчёт простых я бы не сказал - семейка то большая. А в остальном согласен.)

#87 2020-02-16 14:37:39

Watchdog
Гость

Re: Опережение зажигания на ардуино

Green пишет:

Ну, насчёт простых я бы не сказал - семейка то большая. А в остальном согласен.)

Вот эти сложные: https://www.st.com/content/st_com/en/products/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32h7-series.html, а ПИК-и простые.  smile

#88 2020-02-16 14:49:50

Watchdog
Гость

Re: Опережение зажигания на ардуино

Watchdog пишет:

... а ПИК-и простые.  smile

Были простые! Давным давно. https://www.microchip.com/design-centers/32-bit/pic-32-bit-mcus/pic32mz-da-family Супер. Никто не желает поупражняться? lol

#89 2020-02-17 10:23:36

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 588

Re: Опережение зажигания на ардуино

Ото ж.) Та даже в свежих PIC12 достаточно наворотов, не говоря уже о 18-й серии. Уж поболее чем в AVR.)

#90 2020-02-24 17:57:41

константин11
Гость

Re: Опережение зажигания на ардуино

га ваше рассмотрение.эта беда заработает?:
  volatile float time = 0;
  volatile float time_last = 0;

  int rpm = 0;    //вводим переменную обороты
  int ugol = 0;   //вводим переменную угол опережения в зависимости от оборотов
  int zader = 0;  //вводим переменную для вычисления времени требуемого на градус от оборота в зависимости от частоты вращения
  int bah = 0;   // вводим переменную для вычисления угла/времени задержки до искры после прохождения отрицательного импульса

void setup()
{
// pinMode(2, INPUT);
  pinMode(13, OUTPUT);                       //настроили пин 5 как выход на коммутатор
attachInterrupt(0, fan_interrupt, FALLING); //прерыватель настроили (надо поднастроить на положительный или отрицательный импульс в зависимости от принципиальной схемы
}
void fan_interrupt()
{
   time = (micros() - time_last);   //вычисляем время между импульсами
   time_last = micros();            //обнуляем time_last

}
void loop()
{

  rpm =(60*(1000000/time));        //вычисляем обороты в минуту
  ugol = ((75000-(3*rpm))/1000);          //вычисляем УОЗ зависимый от оборотов в минуту ("3" или "2" -это разница в градусах между тысячами оборотов)("75"*1000 -это угол от получения отрицательного импульса до ВМТ.)данные параметры надо подгонять.в данный момент эти параметры задают угол от0 до 30 градусов при оборотах от 0 до 10000.
  zader = (166000/rpm);            //вычисляем время на угол в зависимости от оборотов(166000 или 167000 -время на градус при 1000 об/мин умноженное на 1000 для более точного вычисления "времениградуса" с точностью на каждый оборот в минуту
  bah = (ugol*zader);
  if ((micros()<= bah) || (micros() >= (bah + 1000))) {
    digitalWrite(13,LOW);   
  }
  if ((micros()>= bah) && (micros()<=(bah + 1000))){
    digitalWrite(13,HIGH);
  }
}
//пример:если время на оборот(time) равно 5000мкс,то частота оборотов (rpm) равна 12000 об/мин.при 12000об/мин угол опережения равен 12000*3=36000,  75000-36000=39000,   39000/1000=39 градусов перед ВМТ должно быть опережение.Время потраченное на прохождение угла равному  одному,при 12000об/мин равно(zader)...
// 166000/12000=13,8333333333 мкс/градус(надеюсь округлится до целого числа).и наконец вычисляем (bah)=39*13=507 мкс(время задержки от получения отрицательного импульса до момента отдачи команды на образование искры).

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела