Dikhan1's picture
Upload 24 files
96a5049 verified
raw
history blame
3 kB
#pragma once
// Пины для датчиков
#define HALL_SENSOR_PIN 36
#define MAP_SENSOR_PIN 39
#define TPS_PIN 34
#define LAMBDA_SENSOR_PIN 35
#define ENGINE_TEMP_SENSOR_PIN 32
#define BATTERY_VOLTAGE_PIN 33
#define KNOCK_SENSOR_1_3_PIN 25
#define KNOCK_SENSOR_4_5_PIN 26
// Пины для РХХ
#define IDLE_VALVE_PIN_A 27
#define IDLE_VALVE_PIN_B 14
// Пороговые значения
#define START_RPM_THRESHOLD 400
#define DETONATION_THRESHOLD 0.8
// Настройки PWM для РХХ
#define IDLE_VALVE_PWM_FREQ 1000
#define IDLE_VALVE_PWM_RES 8 // 8 bit resolution
// Пины управления
#define FUEL_PUMP_PIN 16 // Изменен с 27
#define IGNITION_PIN 17 // Изменен с 14
#define INJECTOR_PIN 12
// Форсунки
#define INJECTOR_1_PIN 5
#define INJECTOR_2_PIN 18
#define INJECTOR_3_PIN 19
#define INJECTOR_4_PIN 21
#define INJECTOR_5_PIN 22
// Катушки зажигания
#define COIL_1_PIN 23
#define COIL_2_PIN 15
#define COIL_3_PIN 13
#define COIL_4_PIN 12
#define COIL_5_PIN 4
// Настройки WiFi
#define WEB_SSID "ECU_Config"
#define WEB_PASSWORD "12345678"
// Константы двигателя
#define NUM_CYLINDERS 5
#define MAX_RPM 7000
#define MIN_ADVANCE 0
#define MAX_ADVANCE 40
#define MECHANICAL_ADVANCE 40.0
#define DWELL_TIME 3000
// Константы впрыска
#define MIN_INJECTION_TIME 1.0
#define MAX_INJECTION_TIME 20.0
#define INJECTOR_FLOW 200
#define FUEL_PRESSURE 3.0
// Константы лямбда-регулирования
#define LAMBDA_TARGET 1.0
#define LAMBDA_CORRECTION_MIN 0.8
#define LAMBDA_CORRECTION_MAX 1.2
#define LAMBDA_CORRECTION_STEP 0.01
// Температурные константы
#define COLD_START_TEMP 20.0
#define HOT_ENGINE_TEMP 90.0
#define TEMP_CORRECTION_MAX 1.5
// Структура конфигурации
struct ConfigData {
// Базовые таблицы
float fuelTable[16][16]; // Базовая таблица топливоподачи
float ignitionTable[16][16]; // Базовая таблица УОЗ
// Таблицы обучения
float fuelLearning[16][16]; // Таблица коррекции топливоподачи
float ignitionLearning[16][16]; // Таблица коррекции УОЗ
// Настройки холостого хода
float idleTargetRpm; // Целевые обороты ХХ
float idleKp; // Коэффициент P для ПИД
float idleKi; // Коэффициент I для ПИД
float idleKd; // Коэффициент D для ПИД
// Контрольная сумма
uint32_t checksum; // Контрольная сумма конфигурации
};
// Функции конфигурации
bool saveConfig(ConfigData* config);
bool loadConfig(ConfigData* config);
uint32_t calculateConfigChecksum(ConfigData* config);