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