Files
ESP32/Thermostat/Eolienne.md
2026-03-12 13:37:59 +01:00

51 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.