Ajout charge

This commit is contained in:
Serge NOEL
2026-03-12 13:37:59 +01:00
parent 772726fa21
commit 1f8b75b1d7

50
Thermostat/Eolienne.md Normal file
View File

@@ -0,0 +1,50 @@
# Wind turbine
To determine the state of charge (SoC) or percentage of fill for your 4 LiFePO₄ (Lithium Iron Phosphate) batteries, you typically use the battery voltage as an indicator. However, LiFePO₄ batteries have a very flat voltage curve, so voltage-based SoC estimation is only accurate at the extremes (fully charged or nearly empty) and less precise in the middle.
Heres how you can estimate the percentage:
Measure the total voltage of your battery pack (in series, 4S = 4 cells in series).
Reference a LiFePO₄ voltage-to-SoC table (see below).
Map the measured voltage to a percentage using the table.
Typical 4S LiFePO₄ Voltage-to-SoC Table
| Voltage (4S) | SoC (%) |
| ------------ | ------- |
| 14.6V | 100% |
| 13.6V | 99% |
| 13.3V | 90% |
| 13.2V | 70% |
| 13.1V | 40% |
| 12.8V | 20% |
| 12.0V | 10% |
| 10.0V | 0% |
- **Fully charged (100%)**: 14.4V14.6V (3.6V3.65V per cell)
- **Nominal (50%)**: ~13.2V (3.3V per cell)
- **Empty (0%)**: 10.0V (2.5V per cell, but avoid discharging this low)
## Steps to Implement
Read the battery voltage using an ADC (Analog-to-Digital Converter) on your ESP32.
Map the voltage to SoC using the table above (linear interpolation for values in between).
Display or use the percentage as needed.
Example (Pseudocode)
```cpp
float voltage = read_battery_voltage(); // Implement this for your hardware
float soc = 0;
if (voltage >= 14.6) soc = 100;
else if (voltage >= 13.6) soc = 99;
else if (voltage >= 13.3) soc = 90;
else if (voltage >= 13.2) soc = 70;
else if (voltage >= 13.1) soc = 40;
else if (voltage >= 12.8) soc = 20;
else if (voltage >= 12.0) soc = 10;
else soc = 0;
```
> **Notes**
> For best accuracy, measure voltage after the battery has rested (no load or charging for 30+ minutes).
> For more precise SoC, use a battery management system (BMS) with coulomb counting.