externalBatdivider

This commit is contained in:
richonguzman 2024-06-27 15:39:53 -04:00
parent b8446e3f1d
commit e846c38f97
3 changed files with 26 additions and 14 deletions

View file

@ -1018,9 +1018,16 @@
<div class="col">
<label for="battery.voltageDividerR1" class="form-label">External Voltage divider R1</label>
<div class="input-group">
<input type="number" name="battery.voltageDividerR1"
id="battery.voltageDividerR1" placeholder="R1" class="form-control"
step="0.1" min="1" max="1000" />
<input
type="number"
name="battery.voltageDividerR1"
id="battery.voltageDividerR1"
placeholder="100.0"
class="form-control"
step="0.1"
min="1"
max="1000"
/>
<span class="input-group-text">kOhm</span>
</div>
</div>
@ -1075,7 +1082,16 @@
<div class="col">
<label for="battery.voltageDividerR2" class="form-label">External Voltage divider R2</label>
<div class="input-group">
<input type="number" name="battery.voltageDividerR2" id="battery.voltageDividerR2" placeholder="R2" class="form-control" step="0.1" min="1" max="1000" />
<input
type="number"
name="battery.voltageDividerR2"
id="battery.voltageDividerR2"
placeholder="27.0"
class="form-control"
step="0.1"
min="1"
max="1000"
/>
<span class="input-group-text">kOhm</span>
</div>
</div>

View file

@ -162,8 +162,8 @@ function loadSettings(settings) {
document.getElementById("battery.internalSleepVoltage").value = settings.battery.internalSleepVoltage.toFixed(1);
document.getElementById("battery.sendExternalVoltage").checked = settings.battery.sendExternalVoltage;
document.getElementById("battery.externalVoltagePin").value = settings.battery.externalVoltagePin;
document.getElementById("battery.voltageDividerR1").value = settings.battery.voltageDividerR1;
document.getElementById("battery.voltageDividerR2").value = settings.battery.voltageDividerR2;
document.getElementById("battery.voltageDividerR1").value = settings.battery.voltageDividerR1.toFixed(1);
document.getElementById("battery.voltageDividerR2").value = settings.battery.voltageDividerR2.toFixed(1);
document.getElementById("battery.monitorExternalVoltage").checked = settings.battery.monitorExternalVoltage;
document.getElementById("battery.externalSleepVoltage").value = settings.battery.externalSleepVoltage.toFixed(1);

View file

@ -12,12 +12,8 @@ bool shouldSleepLowVoltage = false;
float adcReadingTransformation = (3.3/4095);
float voltageDividerCorrection = 0.288;
// for External Voltage Measurment (MAX = 15Volts !!!)
float R1 = 100.000; //in Kilo-Ohms
float R2 = 27.000; //in Kilo-Ohms
float readingCorrection = 0.125;
float multiplyCorrection = 0.035;
float readingCorrection = 0.125;
float multiplyCorrection = 0.035;
namespace BATTERY_Utils {
@ -81,8 +77,8 @@ namespace BATTERY_Utils {
sampleSum += sample;
delayMicroseconds(50);
}
float voltage = ((((sampleSum/100)* adcReadingTransformation) + readingCorrection) * ((R1+R2)/R2)) - multiplyCorrection;
float voltageDividerTransformation = (Config.battery.voltageDividerR1 + Config.battery.voltageDividerR2) / Config.battery.voltageDividerR2;
float voltage = ((((sampleSum/100)* adcReadingTransformation) + readingCorrection) * voltageDividerTransformation) - multiplyCorrection;
return voltage; // raw voltage without mapping