#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);