Spaces:
Running
Running
File size: 2,997 Bytes
96a5049 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
#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); |