From 1f8b75b1d79c4f1e59fc0458643dc606f20d300e Mon Sep 17 00:00:00 2001 From: Serge NOEL Date: Thu, 12 Mar 2026 13:37:59 +0100 Subject: [PATCH] Ajout charge --- Thermostat/Eolienne.md | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Thermostat/Eolienne.md diff --git a/Thermostat/Eolienne.md b/Thermostat/Eolienne.md new file mode 100644 index 0000000..ff13b40 --- /dev/null +++ b/Thermostat/Eolienne.md @@ -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. + +Here’s 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.4V–14.6V (3.6V–3.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.