ARDUINO Контроллер догревателя антифриза дизельного ДВС (+ вопросы опытным)

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
Всем здравствуйте!
Это моё первое знакомство с МК Arduino, который приобрел специально для реализации этого проекта. Для этого пришлось бегло ознакомится с основами программирования в Arduino IDE, не имея никакого практического опыта (за исключением уроков информатики по Pascal и C в студенческие времена 25 лет назад). Спасибо за это коротким и доходчивым урокам и отличной шпаргалке от Алекса. Поэтому сначала будет описание проекта, а в конце несколько уточняющих вопросов к опытным ардуинщикам.

Итак, суть проекта. Как известно, дизельные ДВС обладают высоким КПД, и поэтому очень долго греются до рабочей температуры ОЖ (а на холостых оборотах приктически никогда её не достигают, особенно в холода). Как следствие, необходимо очень длительное время, чтобы прогреть салон авто. Поэтому и существуют всяческие подогреватели ОЖ типа Webasto, Бинар и т.п., а так же электрические догреватели на свечах накаливания (я взял такой от дизельного Renault Laguna II, как на фото ниже). Сам догреватель ставится перед входом радиатора печки.
heater_laguna.jpg
Догреватель от Рено Лагуна

Вот его нагревом и будет управлять мой конроллер.
Питание на догреватель будет подаваться через твердотельное реле постоянного тока ZGT-200DD.
SSR_ZGT-200DD.jpg

Вход реле управляется ШИМ с Ардуино.

Из входных параметров для контроллера будут использоваться напряжение бортовой сети автомобиля и термодатчик DS18B20 для измерения температуры ОЖ на выходе догревателя (как его приспособить внутрь догревателя еще в процессе обдумывания).

В общем виде схема контроллера выглядит так:
AFH_maket.png

Суть работы контроллера заключается в контроле напряжения бортовой сети автомобиля для определени просадок напряжения и защиты аккумулятора от разряда, если двигатель не заведен или генератор не справляется с высокой нагрузкой. На дисплей выводятся показания текущего напряжения сети авто, уровень ШИМ в % на выходе Ардуино, и температура ОЖ после догревателя. Энкодер с кнопкой для изменения порогового напряжения включения догревателя и желаемой температуры ОЖ на выходе.

AntifreezeHeaterController:
/*  Контроллер догревателя антифриза
    с индикацией напряжения бортовой сети
    и температуры ОЖ на выходе догревателя
    ©2022 by reziarlleh */

/*  Формат выводв 16x2
   ________________
0 |V=14.40 PWM 100%|
1 |TEMP AF = 100°C |
   ----------------
   0123456789ABCDEF
*/

// Делитель напряжения GND --[R2_470]-- A7 --[R1_9k1]-- VIN
#define VREF 1.1        // опорное напряжение INTERNAL 1.1V
#define DIV_R1 9100     // точное значение резистора R1
#define DIV_R2 470      // точное значение резистора R2
#define V_OFF 12.6      // напряжение отключения догревателя
#define V_ON 13.2       // пороговое напряжение (определение зарядки с генератора)
#define TARGET_TEMP 80  // целевое значение температуры ОЖ
#define PWM_PIN 10      // ШИМ догревателя на пине D10
float vBat;       // измеренное напряжение батареи
int8_t afTemp;    // температура ОЖ на выходе догревателя
int8_t afTarget;  // целевая температура ОЖ на выходе догревателя
uint16_t vOff;    // напряжение отключения догревателя (*100)
uint16_t vOn;     // напряжение активации догревателя (*100)
int8_t heaterPWM; // значение выхода ШИМ догревателя в %
int8_t modeAFH;   // режим настроки (0 - отображение состояния, 1 - настройка порога напряжения, 2 - настройка целевой температуры)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);   // инициализация дисплея 16x2

#include <microDS18B20.h>
MicroDS18B20<5> tempSensor;   // подключение температурного датчика к пину D5

#include <EncButton.h>
EncButton<EB_TICK, 2, 3, 4> encBtn;   // энкодер с кнопкой на пигах D2, D3 и D4


void setup() {
// Приветствие
  lcd.init();
  lcd.backlight();
  lcd.setCursor(1, 0);
  lcd.print("Antifreeze");
  lcd.setCursor(1, 1);
  lcd.print("Heater Control");
  delay(1000);
  lcd.clear();
// Шаблон отображения
  lcd.setCursor(0, 0);
  lcd.print("V");
  lcd.setCursor(8, 0);
  lcd.print("PWM");
  lcd.setCursor(0, 1);
  lcd.print("Temp AF ");
//Инициализация
  // режим ШИМ для Timer1 (D9 и D10)
  TCCR1A = 0b00000011;  // 10bit
  //TCCR1B = 0b00001001;  // x1 fast pwm (15.6 кГц)
  //TCCR1B = 0b00000001;  // x1 phase correct (7.8 кГц)
  //TCCR1B = 0b00001010;  // x8 fast pwm (2 кГц)
  //TCCR1B = 0b00000010;  // x8 phase correct (977 Гц)
  //TCCR1B = 0b00001011;  // x64 fast pwm (244 Гц)
  //TCCR1B = 0b00000011;  // x64 phase correct (122 Гц)
  TCCR1B = 0b00001100;  // x256 fast pwm (61 Гц)
  //TCCR1B = 0b00000100;  // x256 phase correct (30 Гц)
  //TCCR1B = 0b00001101;  // x1024 fast pwm (15 Гц)
  //TCCR1B = 0b00000101;  // x1024 phase correct (7.5 Гц)
  analogReference(INTERNAL);  // внутреннее опорное напряжение АЦП 1.1V
  modeAFH = 0;
  heaterPWM = 0;
  vOff = V_OFF * 100;
  vOn = V_ON * 100;
  afTarget = TARGET_TEMP;
}


void loop() {
  // измерение напряжения
  vBat = (float)analogRead(7) * VREF * ((DIV_R1 + DIV_R2) / DIV_R2) / 1024;

  // получение температуры с датчика
  static uint32_t timerT = millis ();
  if (millis() - timerT >= 1000) {    // раз в секунду
    timerT = millis();
    if (tempSensor.readTemp()) afTemp = tempSensor.getTempInt();
    else afTemp = 127;    // если датчик не подключен или неисправен (error)
    tempSensor.requestTemp();
  }

  // вывод на дисплей
  static uint32_t timerD = millis();
  if (millis() - timerD >= 400) {   // обновляем экран c с периодом 400 мс
    timerD = millis();
    myDisplay();
  }

  //управление ШИМ догревателя
  static uint32_t timerP = millis();
  static int8_t prevPWM;
  if (millis() - timerP >= 100) {   // обновляем уровень ШИМ 10 раз в секунду
    timerP = millis();
    myPWM();
    if (heaterPWM != prevPWM) {
      analogWrite(PWM_PIN, map(heaterPWM, 0, 100, 0, 1023));    // 0-100% переводим в значения от 0 до 1023 (10 bit)
      prevPWM = heaterPWM;
    }
  }

  // обработка энкодера и кнопки (переключение режимов настройки и отображения)
  encBtn.tick();
  if (encBtn.held()) {    // переключение режимов при длительном нажатии кнопки энкодера
    if (modeAFH == 2) modeAFH = 0;
    else modeAFH++;
  }
  if (modeAFH == 1) {
    if (encBtn.right() && vOn < 1400) vOn += 10;  // увеличиваем порог напряжения включения (max 14V)
    if (encBtn.left() && vOn > 1280) vOn -= 10;   // уменьшаем порог напряжения включения (min 12.8V)
  }
  if (modeAFH == 2) {
    if (encBtn.right() && afTarget < 90) afTarget++;   // увеличиваем целевое значение температуры (max 90°C)
    if (encBtn.left() && afTarget > 40) afTarget--;    // уменьшаем целевое значение температуры (min 40°C)
  }
}


// Вывод на дисплей
void myDisplay() {
  static boolean blinkVar;  // для мигания настраиваемым значением
  char vBatStr[5] = "";
  lcd.setCursor(12, 0);
  lcd.print(heaterPWM);
  lcd.print("%    ");
  lcd.noBlink();
  lcd.noCursor();
  lcd.setCursor(1, 0);
  switch (modeAFH) {
  case 0:   // обычный режим индикации параметров
    {
      lcd.print("=");
      dtostrf(vBat, 5, 2, vBatStr);
      lcd.print(vBatStr);
      lcd.setCursor(8, 1);
      lcd.print("= ");
      if (afTemp == 127) lcd.print("error!");
      else {
        lcd.print(afTemp);
        lcd.write(223);   // символ градуса
        lcd.print("C    ");
      }
    }
    break;
  case 1:   // режим настройки порогового напрядения активации догревателя
    {
      lcd.write(126);   // символ стрелки вправо
      dtostrf((float)vOn / 100, 5, 2, vBatStr);
      if (blinkVar == true) lcd.print(vBatStr);   // мигаем устанавливаемым значением
      else lcd.print("     ");
      blinkVar = !blinkVar;
      lcd.setCursor(8, 1);
      lcd.print("= ");
      if (afTemp == 255) lcd.print("error!");
      else {
        lcd.print(afTemp);
        lcd.write(223);   // символ градуса
        lcd.print("C    ");
      }
    }
    break;
  case 2:   // режим настройки целевой температуры ОЖ
    {
      lcd.print("=");
      dtostrf(vBat, 5, 2, vBatStr);
      lcd.print(vBatStr);
      lcd.setCursor(8, 1);
      lcd.write(126);   // символ стрелки вправо
      lcd.print(" ");
      if (blinkVar == true) {   // мигаем устанавливаемым значением
        lcd.print(afTarget);
        lcd.write(223);   // символ градуса
        lcd.print("C    ");
      }
      else lcd.print("      ");
      blinkVar = !blinkVar;
    }
    break;
  }
}


// Управление ШИМ догревателя на твердотельном реле
void myPWM() {
  uint16_t vBat100 = vBat * 100;  // немного оптимизации кода ;)
  if (vBat100 <= vOff || afTemp >= afTarget) {
    heaterPWM = 0;
  }
  else if (vBat100 >= vOn && heaterPWM < 100)  {
    heaterPWM++;
  }
  else if (vBat100 < vOn && heaterPWM > 0) {
    heaterPWM -= 2;
    heaterPWM = constrain(heaterPWM, 0, 100);   // ограничиваем значение от 0% до 100%
  }
}

Программа контролирует напряжение сети авто. Если напряжение ниже 12.6В считаем двигатель заглушеным или аккумулятор разряженным - догреватель выключен (или мгновенно выключаем, если был включен). Если напряжение выше порогового (по-умолчанию 13.2В), то считаем, что идет зарядка с генератора (соответственно двигатель запущен), и начинаем постепенно увеличивать напряжение на свечах догревателя до 100%. Если напряжение ниже порогового, то вероятно генератор не справляется с общей нагрузкой, мы начинаем снижать (немного быстрее, чем увеличение) нагрузку догревателя вплоть до 0%. Таким образом мы защищаем аккумулятор от разряда и генератор от излишней нагрузки.
Так же при достижении целевой температуры (по-умолчанию 80 градусов), мы сразу отключаем догреватель. При снижении температуры ниже целевого, догреватель снова начнет увеличивать нагрузку.
Энкодер с кнопкой служит для корректировки на лету пороговых значений напряжения включения и целевой температуры, заданных по-умолочанию). При длительном удержании кнопки энкодера переходим в режим изменения порогового напряжения включения догрева, значение напряжения мигает, вращением энкодера меняем значение. Повторное длительное нажатие переводит в настройку целевой температуры, значение температуры мигает, вращение энкодера меняет значение. Пределы напряжения ограничил от 12.8В до 14В, температуры - от 40 до 90 градусов. Следущее длительное нажатие возвращает в обычный режим отображения текущих параметров.

Вроде бы всё описал достаточно подробно. Теперь вопросы к опытным ардуинщикам.

1) Насколько точно и стабильно внутреннее опорное напряжение китайской Arduino Nano?
Возможно вместо формулы vBat = (float)analogRead(7) * VREF * ((DIV_R1 + DIV_R2) / DIV_R2) / 1024; лучше использовать map, заранее измерив эталонное напряжение и показания АЦП. Тогда меня не будут беспокоить точность номиналов резисторов и точное соответствие опорного напряжения 1.1В. Один раз откаибровать и всё. Что думаете?

2) Могу ли я безбоязненно питать Ардуино через Vin от бортовой сети авто, учитывая обычное напряжение при запущенном двигателе выше 12В (около 14.4В в идеале)? При этом датчик температуры и энкодер будут питаться от 5В Ардуино. Твердотельное реле управляться напрямую с выхода ШИМ, но там по паспорту ток потребления тоже не больше 25 мА. Не проблема поставить понижайку DC-DC. Но может тогда поставить её опять же на Vin, отрегулировав выход , например, на 8В?

3) По поводу ШИМ. Время переключения реле, согластно паспорта, менее 10 мс. Поэтому я использую низкочастотный ШИМ 61 Гц. Но может быть кто-нибудь знает на практике про выбранное мной реле - может оно работать на высокой частоте? Ведь внутри него стоит mosfet. Не настолько же он медленный. А высокочастотный ШИМ позволил бы снизить ощутимые пульсации в бортовой сети из-за достаточно мощной нагрузки в виде свечей догревателя. Есть у кого опыт работы с таким реле?

Схема и скетч работают. Просто хотелось бы уточнить некоторые озвученные моменты.
Спасибо за внимание!
 

Вложения

PiratFox

★★★★★✩✩
13 Фев 2020
1,695
472
Насколько точно и стабильно внутреннее опорное напряжение китайской Arduino Nano?
Для Вашей схемы вполне достаточно, огород городить не стоит.
Могу ли я безбоязненно питать Ардуино через Vin от бортовой сети авто
Лучше не надо. Будет слишком большое падение напряжения на стабилизаторе LM1117 ардуины со всеми вытекающими последствиями, опять же всякие пульсации и шум из бортовой сети будут лезть. Так что надёжнее применить импульсную понижайку на 5V и подать с неё напряжение на +5V ардуины, таким образом вообще исключив из схемы ардуинский стабилизатор.

Ещё одно. Перед входным делителем измерения напряжения бортовой сети полезно включить простенький LC фильтр, чтобы исключить реакцию ардуины на короткие всплески бортового напряжения.
 
Изменено:
  • Лойс +1
Реакции: Nikanor

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
Для Вашей схемы вполне достаточно, огород городить не стоит.
Для моих целей не критично, согласен. Но т.к. я немного перфекционист, то мне не очень приятно видеть расхождение показаний около 0.1В с показаниями мультиметра. Корректировка номиналов сопротивлений, измеренных мультиметром результат практически не улучшает, т.к. отклонение много меньше 1%. А вот если подставить 1.05 вместо 1.1 как опорное напряжение, то результат очень близок. Отсюда и вопрос - это нормальное отклонение от паспортного для Ардуино?
Лучше не надо. Будет слишком большое падение напряжения на стабилизаторе LM1117 ардуины со всеми вытекающими последствиями, опять же всякие пульсации и шум из бортовой сети будут лезть. Так что надёжнее применить импульсную понижайку на 5V и подать с неё напряжение на +5V ардуины, таким образом вообще исключив из схемы ардуинский стабилизатор.
Меня уже убедили, что питать напрямую от сети автомобиля - плохая идея. Буду использовать понижающий DC-DC и пару емкостей после него. Мне кажется что электролита на 470 мкФ и керамики на 0.1 мкФ должно быть достаточно.
Ещё одно. Перед входным делителем измерения напряжения бортовой сети полезно включить простенький LC фильтр, чтобы исключить реакцию ардуины на короткие всплески бортового напряжения.
Про это я думал, но хочу ограничиться простым электролитом ближе к ноге АЦП. Номинал подобрать экспериментально при отладке в реальных условиях. Возможно добавлю программную функцию сглаживания измерений.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Итак, суть проекта. Как известно, дизельные ДВС обладают высоким КПД, и поэтому очень долго греются до рабочей температуры ОЖ
Как известно, бензин выделяет больше тепла. Бензин 46 МДж/кг, дизельное топливо 42 МДж/кг, дрова (берёзовые, влажность - 12%) 15 МДж/кг. По Вашей логике, самый экономичный двигатель из вышеприведенных видов топлива, будет на дровах :ROFLMAO:

Как следствие, необходимо очень длительное время, чтобы прогреть салон авто. Поэтому и существуют всяческие подогреватели ОЖ типа Webasto, Бинар и т.п.,
Как следствие, вижу отсутствие понимания работы автомобиля и присутствие желания обогрева ж-пы. Первоначально всяческие подогреватели ОЖ типа Webasto и т.п. устанавливают для того, чтобы охлаждающая жидкость в нагретом состоянии принудительно циркулировала по двигателю и разогревала масло. Автомобильное масло имеет свойство на морозе затвердевать до состояния препятствующему вращению двигателя и как следствие запуску в мороз. После оттаивания автомасла до состояния течет, производят запуск двигателя. Приятным бонусом является уже прогретая охлаждающая жидкость которая быстрее нагревает салон. Повторю, теплая ж-па вторичный бонус, а не основное предназначение. Можно залить синтетику и обойтись без предпускового обогревателя. Но тут появляется второй аспект. Разные бензины загораются при разной температуре. Летний до -15, зимний до -25 хороший зимний до -35. У дизтоплива все гораздо печальнее, больше любит тепло. Теплая охлаждающая жидкость пробегая по двигателю еще и поднимает температуру внутри цилиндров, что улучшает запуск. Но не специально, просто греет все подряд. И если проблемы с запуском отсутствуют, то Вам без всякой ардуины просто нужен автономный воздушный отопитель (сухой фен), есть работающие от дизтоплива с минимальным потреблением от аккумулятора.

PS Не, ну если Вам просто пое-ца с ардуиной, то пожалуйста :)
 
  • Лойс +1
Реакции: DAK и Lumenjer

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
@ТехнарьКто, на самом деле абсолютное не понимание у Вас. Во-первых, кроме меньшего выделения тепла у дизельных ДВС действительно, как правило, КПД выше бензиновых ДВС. Во-вторых, в моём случае, цель довольно конкретная - быстрее прогревать систему охлаждения, т.к. известный факт, что в холода двигатель Land Rover TD5 никогда не прогреется на холостых оборотах до рабочей температуры. Он и летом-то не очень быстро прогревается. А цель догревателя именно ускорить прогрев и поддерживать рабочую температуру на холостых оборотах. В некоторых комплектациях на LR D2 ставится Webasto штатно именно как догреватель, без функции предускового подогрева. Зимой Д2 успевает остывать даже во время остановок на светофорах. От идеи сухого фена я отказался, т.к. основная цель - рабочая температура двигателя, а в этом случае с теплом в салоне быстро справится достаточно мощная штатная печка.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
на самом деле абсолютное не понимание у Вас. Во-первых, кроме меньшего выделения тепла у дизельных ДВС действительно, как правило, КПД выше бензиновых ДВС.
При одинаковом показателе рабочего объёма, мощность атмосферного бензинового мотора выше. Это научный факт, а не придумки маркетологов.

Кроме того, солярку для дизеля дешевле производить и когда то это был самый дешевый вид топлива для автомобилей. Смотрите на работу маркетологов (врунов втюхивальщиков). Ранее выбрасываемые отходы от переработки нефти теперь уже приравняли по стоимости, к относительно дорогостоящему продукту. Дизтопливо дороже 95 бензина, для меня с точки зрения себестоимости производства - это загадка.
Image-2019.jpg
Дизель это буквально автомобиль работающий на отходах от переработки нефти. Надо было как то оболванить потребителя и втюхать дурнопахнущие, менее экологичные автомобили с характерными проблемами. Дизель разваливается от режимов быстрого ускорения, обычный режим для быстрой езды по городу. Дизель плохо греется, поскольу на единицу веса отбросов от переработки нефти выделяется меньше тепла. Дизель в работе выделяет мельчайшие частицы сажи, которые особо вредны для человека. Частицы сажи проникают очень глубоко в легкие, вызывают раздражение, оседают на поверхностях, с которых кровь поглощает кислород. Частицы сажи проникшие в легкие способны попадать в кровь. Поэтому у владельцев дизеля повышается риск получения инсульта, сердечных приступов и астмы, особенно у людей, которые к этому предрасположены.

Любую энергию в автомобиле Вы получаете от сжигания топлива. Больше расход электроэнергии, больше расход топлива. Это законы не зависящие от звиздежа маркетологов. Работа Вебасто строится следующим образом. При поступлении управляющего сигнала, начинается подача топлива в камеру сгорания. При сжигании топлива образуется тепловая энергия. Прямое сжигание топлива имеет более высокий КПД, чем превращение топлива в электроэнергию, а потом уже в тепло. Поэтому на мой скромный взгляд, догревать дизельный двигатель с помощью электрических свечей накаливания, абсурдно. Впрочем заниматься этим Вам никто не запрещает. Как впрочем и использовать г-но и палки для казалось бы серьезного дела. Ардуино для изучения, а не для ответственных проектов.

1) Насколько точно и стабильно внутреннее опорное напряжение китайской Arduino Nano?
Не точно и не стабильно. В ардуино китайцы устанавливают отходы производства, отбракованные чипы. Брак разный, индивидуально косячно не предсказуемый. Помигать светодиодом при обучении, брак не заметен.

2) Могу ли я безбоязненно питать Ардуино через Vin от бортовой сети авто
Нет. В ардуно использован линейный стабилизатор напряжения превращающий лишнюю энергию в тепло. В авто норма 14.4 вольта и кратковременными всплесками до 16 вольт. Стабилизатор ардуино умрет от перегрева.

3) По поводу ШИМ. Время переключения реле, согластно паспорта, менее 10 мс. Поэтому я использую низкочастотный ШИМ 61 Гц. Но может быть кто-нибудь знает на практике про выбранное мной реле - может оно работать на высокой частоте?
да

А высокочастотный ШИМ позволил бы снизить ощутимые пульсации в бортовой сети из-за достаточно мощной нагрузки в виде свечей догревателя.
Нет.
Будет высокочастотная наводка. Двигателю то пофиг, а всякие радио будут шуметь или терять чувствительность в зависимости от удачно выбранной высокочастотности.
 

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
При одинаковом показателе рабочего объёма, мощность атмосферного бензинового мотора выше. Это научный факт, а не придумки маркетологов.
Всё так,да не о том речь. Речь не о максимальной мощности,на которой двигатель редко работает. Чем сильней прикрыт дроссель,тем меньше КПД на бензине,т.к. компрессия пропорционально уменьшается. Т.н. "эквивалентная компрессия" на ХХ в разы уменьшается. Что влечёт уменьшение давления на поршень. Не думаю что автопроизводители додумались "на ходу" менять октановое число. У дизеля весь объем цилиндра наполняется воздухом одинаково и на ХХ и на макс.мощности,т.к. дросселя нет по определению.
 
Изменено:

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Не думаю что автопроизводители додумались "на ходу" менять октановое число. У дизеля весь объем цилиндра наполняется воздухом одинаково и на ХХ и на макс.мощности,т.к. дросселя нет по определению.
Перестаньте сравнивать отсталые технологии с продвинутыми. Давайте сравним двигатели на дизельном топливе и бензине в равных условиях.

Про микропроцессорное управление двигателем.
(единственное, что близко к теме форума, просто без остального это будет не понятно)
Когда для себя делал реинженерный анализ работы блока управления двигателя японского автомобиля, назвал это методом управления по таблицам данных с динамической коррекцией в процессе работы. Изначально таблицы данных созданы путем пробной эксплуатации однотипных двигателей в различных условиях. Затем при эксплуатации жестко записанные значения корректируются микропроцессором в ОЗУ блока управления при выполнении нескольких условий. Двигатель прогрет до рабочей температуры, скорость и нагрузка неизменны в течении десятков секунд. К слову при отключении аккумулятора данные считываются из прошивки и вновь корректируются при работе двигателя, а поскольку ОЗУ имеет фантастически огромный ресурс на циклы перезаписи, система работает много десятков лет без сбоев. Необходимость коррекции возникает в процессе эксплуатации при смена топлива например с 98 на 92, изменении температуры было лето и внезапно пришла зима и тому подобное. Результат коррекции проверяется полнотой сгорания топлива на основании датчиков воздуха в выпускном тракте (лямбда зонд пороговый или более современный широкополосной). Так же в расчетах учитывается температура двигателя, температура охлаждающей жидкости, температура воздуха на впуске. Детонация, скорость вращения вала, скорость движения. Дополнительные нагрузки в виде включения кондиционера и света фар. Спустя время (лет надцать) столкнулся с тем, что в РФ это стали называть нечеткими системами управления. Вот пример "В последние годы началось использование новых методов и моделей в промышленности. И хотя первые применения нечетких систем управления были в Европе, наиболее интенсивно внедряются такие системы в Японии. При этом нечеткие системы позволяют повысить качество продукции при уменьшении ресурсо и энергозатрат и обеспечивают более высокую устойчивость к воздействию мешающих факторов по сравнению с традиционными системами автоматического управления." К слову более современный широкополосный лямбда был уже на автомобилях с 1996 года но не прижился в России по причине отсутствия знаний у сервисменов. До поломки эти автомобили просто нюхали бензин, после поломки начинали жрать бензин. Гаражные спецы васяндры и толяндры впендюривали вместо широкополосной лямбды пороговую и управляющий компьютер сходил с ума и начинал заливать двигатель топливом. А пороговые датчики они же релейные они же обычные лямбды стоящие в любой новой волокуше РФ устанавливались еще с 70-х годов прошлого тысячелетия. И на старых автомобилях уже с 90-х годов устанавливали впрыск топлива индивидуально в каждый цилиндр, своей индивидуальной форсункой. Называется непосредственный впрыск. Потом появился послойный бензиновый впрыск, а если на автомобиле еще и изменяемые в процессе работы двигателя фазы газораспределения и широкополосный датчик, то авто вообще просто почти ездил на воздухе. Смеюсь конечно, но расход был мизерный. Такие авто в силу высокотехнологичной начинки убивались до состояния хлама в первом же российском сервисе. Поэтому о них мало кто знает. По причине отсутствия специалистов могущих это отремонтировать, просто перестали ввозить такие авто.

Про экономичность дизеля.
Давайте логически рассуждать. Если упрощенно, то вся энергия в автомобиле на жидком топливе получается из топлива. Аккумулятор потратил энергию на запуск двигателя и потом двигатель потребляя топливо крутит генератор и заряжает аккумулятор. Это я к тому, что электроэнергия в автомобиле тоже из топлива. Тепло как побочный продукт работы двигателя. Меньше объем камер сгорания, меньше размер двигателя, больше греется если больше топлива сожгли. Меньше греется если в том же размере и объеме сожгли меньше топлива. Больше вес автомобиля включая двигатель, больше энергии нужно для передвижения. Энергия из топлива. Нагрузили автомобиль так, что рессоры просели, сожгли больше топлива. Теперь давайте сравним. Двигатель имеющий более высокий КПД должен быть легче и на единицу камеры сгорания выдавать больше мощности.
Для сравнения желательно взять максимально похожие двигатели. Хотя для бензина и дизельного топлива это трудно, но преодолимо.
dvig.jpg

Производитель один. Годы производства совпадают. Есть турбонаддув в обоих случаях. Вес двигателей и объем камер сгорания (2,4+ литра) примерно одинаковые. Технологии блоков микропроцессорного управления плюс минус где то рядом. Оба имеют форсунки.

Дизель 2L-TE всего 97 лошадиных сил без электронного ограничения.
Бензиновый 1JZ-GTE электронно ограниченный на уровне 280 лошадиных сил.

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

Более тяжелый дизельный двигатель с большими массо-габаритными показателям хуже греется потому, что переработанной энергии и полученной мощности значительно меньше. Это как взять два одинаковых транзистора, на один прикрутить огромный радиатор, а второй оставить просто так. Затем на основании, что транзистор с огромным радиатором меньше греется утверждать о высоком КПД транзистора на радиаторе. Хотя изначально говорилось, что транзисторы абсолютно одинаковы. Логично, что более тяжелый мотор требует больших затрат энергии на перемещение, как следствие больший расход топлива. Плохо прогретый дизель зимой пока не прогреется расходует больше топлива. А греется дизель медленно и печально. На единицу веса, дизельное топливо выделяет меньше энергии, следовательно при одинаковом построении двигателей обеспечивающих полное сгорание, топливо с большим энергетическим потенциалом будет создавать больше мощности. А это бензин.

Про экологичность дизеля.

При проектировании двигателя конструктор закладывает характеристики, при какой скорости вращения вала будет максимальный момент. Как последствия этого решения при максимальном момента на малых скоростях вращения получается тихо ездящий транспорт но с хорошей тягой на малых скоростях. При выборе максимального момента на высоких скоростях, получается быстро ездящий транспорт с малой тягой на низах. К бензину или дизельному топливу это относится от слова никак. На дизельном топливе тяжело сделать двигатель с высоким моментом на больших оборотах, но можно хотя здесь будет ключевое слово значительно дороже, чем на бензине. На бензине можно сделать двигатель работающий как дизель, но это с экономической точки зрения не надо никому.
Вот пример стоимости. Причем в 1 кг дизтоплива 1,19 литра. Поэтому литр дизтоплива стоил меньше 3 коп.
66.jpg

В СССР грубо говоря литр дизельного топлива стоил более, чем в два раза дешевле, чем бензин с октановым числом 66.

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

Как итог. Дизель продавался на основе двух мифов рожденных маркетологами. Экологичность и экономичность.

Если Вы хотите установить свечи накала для подогрева, делайте. Просто убираете из Вашего лексикона высокий КПД и экологию. Трактора стране, тоже нужны.
 
  • Лойс +1
Реакции: Lumenjer и reziarlleh

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
Повторюсь,мы обсуждаем не отношение макс.мощности к массе и не теплоту сгорания.
КПД ДВС выражается в граммах топлива в час на киловатт мощности.
Логика:
1) дизель подаёт ровно столько топлива,сколько необходимо для текущей нагрузки. Кол-во воздуха в цилиндре всегда 100%.Соответственно,компрессия,в целом постоянна.
2) бензиновый. На макс.мощности заполнение цилиндра примем 100%. Соответственно,компрессия тоже 100%.
На малых и средних режимах топлива надо меньше, примеру,в 5 раз. Т.к. бензин требует определённого соотношения с воздухом для горения,то и воздуха должно поступить только 20%. Но объем цилиндра постоянен! Отсюда и компрессия в разы меньше оптимальной.
Как известно,компрессия напрямую влияет на КПД...

А касаемо электроники- это вторично. Призвано для экологичности,удобства,надёжности. Электроника умна,но не в состоянии обмануть физику.
 

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
Прочитал с интересом. В общем-то, всё это достаточно очевидно и верно. Так что соглашусь, и оставим разговоры о КПД.
Но цель поставленной задачи это не меняет. Задача - ускорить прогрев двигателя и не давать ему остывать на ХХ. Данный догреватель предназначен для выполнения этой задачи, хотя, конечно, не такк эфективно как Webasto или Бинар и т.п.
Ну и вопросы по теме у меня заключались в другом - я просил консультации и уточнения про питание, опорное напряжение и по конкретному твердотельному реле. На данный момент всё протестировано и отлажено как тестовый макет, но пока еще не внедрено на авто (проблеммы времени и поиска гаража для ковыряний).
 
  • Лойс +1
Реакции: ТехнарьКто

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
...Задача - ускорить прогрев двигателя и не давать ему остывать на ХХ....
...На данный момент всё протестировано и отлажено как тестовый макет, но пока еще не внедрено на авто...
Очень заинтересовал проект.
На прошедшую зиму установил на авто такой догреватель на 4 свечи.
Пока управление ручное. Два простых реле с переключателями, каждое на две свечи.
ВАУ-эффекта нет, но в целом с задачей справляется. Температура поднимается не намного, но быстрее, на холостых не падает.
И да, основная проблема - падение напряжения в бортовой сети на холостых оборотах при работе на полной мощности всех свечей.

Уже смонтировали систему на авто?
 

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
@FattyBy, еще времени не было поставить. Сейчас в отпуск вышел, арендовал место в гараже, ковыряюсь с машиной по-немногу. Надеюсь и до этого доберусь, но у меня сейчас задача откапиталить двигатель для другой машины, так что до установки догревателя доберусь где-то через месяц, тем более машина сейчас уедет на ремонт кузова и полную покраску. Когда установлю, отпишусь. Хотя реальный эффект надо зимой проверять.
 

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Не вытерпел
Купил Arduino и начал тренироваться. С нуля.
Мегареспект этому сайту за уроки, видео, библиотеки и прочее.
Пришлось научиться паять (никогда, в общем-то не пробовал) и вспоминать что такое писать программы (тридцать лет! перерыва).
photo_2022-07-14_18-06-54.jpgphoto_2022-07-14_18-06-58.jpg
Естественно, внёс некоторые изменения в начальную задумку топикстартера.

В аппаратной части:
  • на входе поставил DC-DC конвертер. Весь девайс запитан от бортовой сети, ардуино от +5V (на пин +5V) после конвертера;
  • для измерения температуры вместо датчика используется термистор.

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

Можно регулировать с сохранением:
- таймаут до запуска догревателя после включения двигателя,
(В морозы дизель несколько секунд колбасит не по-детски. Дал время до стабилизации. Особенно при авто/дист. запуске)
- поправка измеренной температуры
(Измеряет точно, но термистор у меня уже прикручен в салоне к входному патрубку печки. Там температура ниже чем в двигателе на 10-15 градусов)
  • пороговое напряжение,
  • пороговую (максимальную) температуру отключения догревателя,
  • размер гистерезиса для включения догревателя,
(Нет смысла повторно догревать ,например, после короткой остановки, если ОЖ успела остыть всего на 5-10 градусов )
- скорость изменения мощности догревателя
(Частота пересчета вывода в порт, для начала просто растянуть процесс изменения, потом - а вдруг пригодится при эксплуатации?)
C++:
// Значение и адрес флага первого запуска

#define DEF_FLAG 21 //значение флага первой записи
#define DEF_FLAG_ADR 1023 // адрес флага
#define EPROM_ADR 127 // адрес начала данных в EPROM

//Пины энкодера

#define CLK 4 //S1
#define DT 3  //S2
#define SW 2  //KEY 

//Задействованные порты

#define V_PORT 6  // напряжение в сети автомобиля
#define T_PORT 0  // температура ОЖ
#define RELAY_PORT 9 //ШИМ выход на реле

//период обновления дисплея LCD

#define LCD_PERIOD 500

//резисторы

// делитель напряжения для измерения V , при опорном 5 вольт, предел измерения = 0-24 вольта.
#define R1 10000.0  //10K
#define R2 2000.0   //2К
// делитель напряжения для термистора+++
#define RT 9930    //10K

#define VREF 5.0    //default

//режимы отображения данных на LCD. Во всех режимах отображаются текущее напряжение и температура OЖ
// во второй строке либо уровень ШИМ(0-255), либо корректируемая в данном режиме переменная

#define NORMAL 0 //нормальный режим, в нижней строке отображается режим работы догревателя 
#define SET_V 1  // коррекция минимального допустимого напряжения без уменьшения мощности догревателя
#define SET_T 2  //  коррекция температуры отключения догревателя
#define SET_D 3  //  коррекция поправки датчика температуры
#define SET_G 4  //  коррекция величины гистерезиса температуры для повторного включения обогревателя
#define SET_W 5  //  коррекция задержки включения догревателя после запуска двигателя
#define SET_F 6  //  коррекция частоты изменения мощности догревателя

//Время ожидания действия в режиме ввода. По истечении режим ввода сбрасывается, изменённые значения переменных игнорируются (миллисекунды)
#define SETUP_TIME 5000

//максимальное напряжение на аккумуляторе (признак того, что двигатель не запущен)
#define V_NOSTART 12.8


// инициализация энкодера https://github.com/GyverLibs/EncButton

#include <EncButton.h>
EncButton <EB_TICK, CLK, DT, SW> enc;

// инициализация дисплея 16x2 //0x26 0x27 0x3F  https://kit.alexgyver.ru/tutorials/lcd1602/#i-3

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

//инициализация термистора https://kit.alexgyver.ru/tutorials/thermistor/

#include <GyverNTC.h>
GyverNTC therm(T_PORT, RT, 3950);

//объявление и создание экземпляра (data_def)структуры для записи/чтения EPROM (корректируемые переменные)

#include <EEPROM.h> //https://alexgyver.ru/lessons/eeprom/
struct memdata
{
  int TimeOut = 5000; //задержка включения догревателя после запуска двигателя (5 - 60 секунд, регулируется с шагом 1сек)
  int TempLimit = 80; //температура отключения догревателя (60-85 градусов, регулируется с шагом 1)
  int DeltaT = 0; //поправка температуры (-20 - +20 градусов, регулируется с шагом 1)
  int GistT = 0; // значение гистерезиса для включения (-20 - 0 градусов, регулируется с шагом 1)
  int Freq = 10;// период изменения ШИМ на выходе (10 - 100 милисекунд, регулируется с шагом 10)
  float VoltLimit = 13.2; //пороговое значение напряжения для работы догревателя (13.0 - 14.0 вольт, регулируется с шагом 0.1)
};

memdata data_def; //установки из EPROM
memdata data_corr; // копия установок для коррекции в процессе работы

unsigned long timer_display = 0; // таймер дисплея для обновления
unsigned long timer_start;   // таймаут после запуска двигателя
unsigned long timer_setup;   // таймер ожидания ввода значений
unsigned long timer_pwr = 0; // таймер изменения ШИМ
unsigned long timer_t = 0; // таймер измерения температуры

int i_o_mode = NORMAL; // режим отображения на LCD
int pwr = 0; // текущее значение PWR(ШИМ)
int pwr_prev = 0; //предыдущее

boolean disp_mode_changed = true; // Флаг изменения режима дисплея
boolean back_light = true; //флаг режима подсветки LCD
boolean wait_flag = true; //флаг задержки после старта


char v_string[4] = ""; //строка для вывода напряжения

float v_bat; //напряжение текущее
float v_bat_prev; //напряжение предыдущее
int t_engine;//температура текущая
int t_engine_prev;//температура предыдущая

// интерфейс. в отдельном файле
void draw_pattern(int pattern);
void show_display(int mode);
void display_hello();

//Экспоненциальное бегущее среднее. https://alexgyver.ru/lessons/filters/ .в отдельном файле
float expRunningAverage(float newVal, float k);



/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

void setup()
{

  //параметры ШИМ https://alexgyver.ru/lessons/pwm-overclock/
  // Пины D9 и D10 - 61 Гц 10bit
  TCCR1A = 0b00000011;  // 10bit
  TCCR1B = 0b00001100;  // x256 fast pwm


  //Проверка первого запуска и инициализация данных для поправок и ограничений
  byte flag;

  EEPROM.get(DEF_FLAG_ADR, flag);
  if (flag == DEF_FLAG) EEPROM.get(EPROM_ADR, data_def);
  else
  {
    EEPROM.put(EPROM_ADR, data_def);
    EEPROM.put(DEF_FLAG_ADR, DEF_FLAG);
  }
  // копируем установки для предполагаемой коррекции
  data_corr = data_def;

  analogReference(DEFAULT);

  pinMode (RELAY_PORT, OUTPUT);

  analogWrite(RELAY_PORT, 0);

  display_hello();

  timer_start = millis();
}
///////////////////////////////////////////////////////////////////////////
void loop()
{
  // по истечении начальной паузы сбрасываем флаг
  if (wait_flag)
  {
    if (millis() - timer_start > data_def.TimeOut)  wait_flag = false;
  }

  // измеряем напряжение через фильтр
  v_bat = expRunningAverage(((float) (analogRead(V_PORT)) * VREF * ((R1 + R2) / R2) / 1024.0), 0.1);

  // если двигатель не запущен продлеваем паузу
  if (v_bat <= V_NOSTART)
    if (wait_flag) timer_start = millis();


  // раз в секунду измеряем температуру ОЖ
  if (millis() - timer_t > 1000)
  {
    t_engine = data_def.DeltaT + (int) therm.getTemp();
    timer_t = millis();
  }


  // с заданной частотой  вычисляем и задаём новый уровень ШИМ
  if ((millis() - timer_pwr) > data_def.Freq)
  {
    pwr = calc_pwr();

    if (pwr != pwr_prev)
    {
      pwr_prev = pwr;
      analogWrite(RELAY_PORT, pwr);// и посылаем его на реле
    }
    timer_pwr = millis();
  }

  //ввод-вывод
  enc.tick();
  show_display(i_o_mode);

}


int calc_pwr()
{
  int pwr_ret;
  static boolean work_flag = false; //флаг работы выше нижнего предела гистерезиса

  //если таймаут запуска
  if (wait_flag) return 0;

  // если достигнута заданная температура
  if (t_engine > data_def.TempLimit)
  {
    if (work_flag) work_flag = false;
    return 0;
  }

  // если ОЖ остыла ниже нижнего предела гистерезиса разрешаем изменять мощность догревателя
  if ((!work_flag) && (t_engine < (data_def.TempLimit + data_def.GistT)))
  {
    work_flag = true;
    return 0;
  }

  // собственно, +/- ШИМ, в зависимости от напряжения, когда все условия для начала и продолжения работы соблюдены.
  if (work_flag)
  {
    if (v_bat >= data_def.VoltLimit)
    {
      pwr_ret = pwr + 1 ;
      return constrain(pwr_ret, 0, 1023);
    }
    else
    {
      pwr_ret = pwr - 3;
      return constrain(pwr_ret, 0, 1023);
    }
  }
}
Теперь в авто установить.
Испытать в реальной работе.
И собрать в корпусе и с жёстко запаянными компонентами.

Есть комментарии?
Возможно, что-то по изменению кода?
( я ж notepad++ на стройке нашёл) ;-)
 
Изменено:
  • Лойс +1
Реакции: reziarlleh

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Перепаял, засунул в корпус от пульта, чуть подправил код, установил в авто - работает!

Включается, выключается, напряжение на свечах поднимает-опускает.

В авто крепится на двух магнитах к панели. Правее-ниже руля. У меня туда изначально разъемы выведены для этого.
Немного погоняю летом, сниму и брошу в багажник.

И с нетерпением буду ждать зиму.
IMG_20220718_193719.jpgIMG_20220718_193736.jpgIMG_20220718_193809.jpgIMG_20220718_193841.jpg
На этом, наверное, и всё ))
Всем добра.
 
  • Лойс +1
Реакции: reziarlleh

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
@reziarlleh,
Кстати, есть ответ на вопрос из первого поста.
На высокой частоте реле не успевает переключаться.
На выходе постоянно висит 12,Х вольт. Полное входное напряжение.
Встроенный светодиод на реле при этом яркость меняет в зависимости от скважности ШИМ. Потому что он стоит перед транзистором сразу на входе управляющего сигнала
IMG_20220714_214834.jpg
По крайней мере, такое наблюдается на дефолтной частоте 488 Гц
С другими частотами не экспериментировал, на 61 Гц всё работает.
Видимо, действительно, время переключения не сильно меньше чем 10 мс.
 

reziarlleh

✩✩✩✩✩✩✩
13 Дек 2021
12
2
@reziarlleh,
С другими частотами не экспериментировал, на 61 Гц всё работает.
Видимо, действительно, время переключения не сильно меньше чем 10 мс.
А я так еще не добрался до установки в авто. Но спасибо за полезное уточнение про реле.
 

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Думал , конец истории.
Не тут-то было! :)

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

Первый вопрос. Понимающим в электро-радиотехнике.
Согласно схеме:
RelayDcDc.jpg
нагрузка должна подключаться между плюсом питания и реле. Перед транзистором.
В силу особенностей поставленной задачи (минус нагрузки жёстко закреплён на массу автомобиля, то есть на минус источника питания),
такое подключение невозможно физически. Соответственно, нагрузка была включена после транзистора. Между минусом питания и минусовой клеммой реле.
В чём существенная разница?
Не это ли причина расплавления реле?

Или...ну я тогда просто не представляю, какого же размера радиатор для него нужен!!!
 
Изменено:

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
Какой ток на свечи идёт? Может поставить пару мосфитов и драйвер.
 

poty

★★★★★★✩
19 Фев 2020
2,957
886
@FattyBy,
время переключения не сильно меньше чем 10 мс
10мс - время переключения On-Off, в обратную сторону наверняка ещё столько же. Кроме того, мне непонятно, что интересно делает Zero Cross Circuit на DC? Скорее всего, как всегда, китайцы поумничали над datasheet-ом, поэтому доверия к цифрам нет.
Какой ток потребляет догреватель? Думаю, дело именно в этом (радиатора-то у Вас нет, и реле во внешнем корпусе без отвода тепла наверняка).
нагрузка была включена после транзистора. Между минусом питания и минусовой клеммой реле
Не должно влиять. На выходе - двухполюсник.
 

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Какой ток на свечи идёт? Может поставить пару мосфитов и драйвер.
13-14 вольт. 4 свечи по примерно 10-12 ампер.

@FattyBy,
10мс - время переключения On-Off, в обратную сторону наверняка ещё столько же.
Может быть.
на 61 ГЦ всё-таки успевает включаться/выключаться.

@FattyBy,
Какой ток потребляет догреватель? Думаю, дело именно в этом (радиатора-то у Вас нет, и реле во внешнем корпусе без отвода тепла наверняка).
40-50 ампер.
Вот уж не думал, что реле будет выделять СТОЛЬКО тепла!
Изначально прикручено было к аллюминиевой полосе 50Х200 мм.
Расплавилось, как я выше и писал.
Но! У меня есть ещё два реле в запасе! ;-)
Прикрутил вот такой радиатор:ккк.jpg
К выходу подключил половинную нагрузку (2 свечи).
Примерно через секунд 30-40 радиатор нагрелся до невозможности держаться рукой.
На этом эксперимент прекратил.
Начну с того, что подберу большой радиатор. И кулер на него прикручу.
В принципе, девайс-то должен работать только при минусовых или околонулевых температурах воздуха.

А потом начну думать над мосфетом.

И сразу изначально вопросы:
1. Достаточно ли простого ШИМ сигнала с пина ардуино для управления полевым транзистором? Или нужно ещё что-то для управления?
UPD. уже читаю здесь урок про это.
2. Сколько примерно тепла будет выделять этот мосфет при работе в нужном мне режиме? (14 вольт/50ампер)
Стоит ли этим заняться? Ведь в этом реле, по сути, тот же мосфет внутри?
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
В Вашем случае лучше брать n-канальный мосфит, но так как питание нельзя коммутировать минусом нужно ещё драйвер, в принципе всё очень просто.
 

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Можно лм преобразовать такую исходную схему:
mosfet-control.jpg
в такую:
mosfet-control-2.jpg
Или это как-то по-другому делается?
В аналоговой технике я нулевой.
Подскажите как реализовать задуманное на мосфет.
Или куда пойти почитать.
 

poty

★★★★★★✩
19 Фев 2020
2,957
886
Вот и ответ. Это реле вряд ли предназначено для работы с ШИМ, поэтому в переходном периоде (а на 60Гц он, скорее всего, занимает бОльшую часть цикла) работает как сопротивление. При 50Амперах даже 0,1Ом будет давать 250Вт тепла.
Я в принципе не понимаю зачем Вам ШИМ? Тепловая инерция настолько большая, что управлять можно с периодом хоть 5 секунд. Другое дело, что полноценного даташита я не нашёл и сколько тепла будет выделяться в полностью включенном состоянии оценить не могу.
Сколько примерно тепла будет выделять этот мосфет при работе в нужном мне режиме
Зависит от сопротивления Rds выбранного MOSFET. Выделяемая мощность = квадрату тока, умноженному на сопротивление. Если имеется duty, то, соответственно, меньше на эту величину.

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

FattyBy

✩✩✩✩✩✩✩
22 Фев 2022
16
7
Я в принципе не понимаю зачем Вам ШИМ?
Сам ШИМ мне не нужен. Мне нужно уменьшать нагрузку при падении напряжения в сети ниже порогового. И наоборот.
Идея была в том, что это делается изменением скважности ШИМ-сигнала (типа понижением напряжения на выходе реле).

в переходном периоде (а на 60Гц он, скорее всего, занимает бОльшую часть цикла) работает как сопротивление
ПонЯл. Пришла мысль понизить частоту ШИМ до 7.5 Гц . Посмотрю что будет.
Тепловая инерция настолько большая, что управлять можно с периодом хоть 5 секунд
Так-то да. Но мне важно не тепло, которое выделяют свечи.
Управление, по сути сводится к быстрому уменьшению нагрузки(напряжения на свечах) при падении питающего напряжения.
Тут, как-бы, периода в 5 секунд будет многовато.
если использовать изолированное питание, то можно попробовать.
Ардуина питается через DC-DC преобразователь 12->5 вольт. Этого достаточно?
 
  • Лойс +1
Реакции: reziarlleh