Add battery calibration values
This commit is contained in:
2
mos.yml
2
mos.yml
@ -38,6 +38,8 @@ config_schema:
|
|||||||
- ["app.backlight_pin", 22]
|
- ["app.backlight_pin", 22]
|
||||||
- ["app.inactivity_timeout", "i", {title: "Inactivity timeout in seconds"}]
|
- ["app.inactivity_timeout", "i", {title: "Inactivity timeout in seconds"}]
|
||||||
- ["app.inactivity_timeout", 10]
|
- ["app.inactivity_timeout", 10]
|
||||||
|
- ["app.battery_calibration", i, {title: "Battery ADC value at 4000mV"}]
|
||||||
|
- ["app.battery_calibration", 2360]
|
||||||
|
|
||||||
|
|
||||||
# List of libraries used by this app, in order of initialisation
|
# List of libraries used by this app, in order of initialisation
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "mgos.h"
|
#include "mgos.h"
|
||||||
#include "mgos_adc.h"
|
#include "mgos_adc.h"
|
||||||
|
#include "mgos_config.h"
|
||||||
#include "tft.h"
|
#include "tft.h"
|
||||||
#include "mongoose-touch.h"
|
#include "mongoose-touch.h"
|
||||||
#include "mgos_prometheus_metrics.h"
|
#include "mgos_prometheus_metrics.h"
|
||||||
@ -8,11 +9,15 @@
|
|||||||
#define WIDGET_BATTERY_ADC_PIN 35
|
#define WIDGET_BATTERY_ADC_PIN 35
|
||||||
|
|
||||||
// Returns millivolts - Huzzah32 has a 1:1 voltage divider on I35 (A13)
|
// Returns millivolts - Huzzah32 has a 1:1 voltage divider on I35 (A13)
|
||||||
// so it returns half of the battery voltage. LiPo's are full at 4200mV
|
// so it returns half of the battery voltage. Calibrate the function by
|
||||||
// and critically empty at 3000mV.
|
// measuring the ADC output at 4000mV.
|
||||||
static int widget_battery_getvoltage() {
|
static int widget_battery_getvoltage() {
|
||||||
// Value is between 0..4096 which maps to 0..6600mV
|
int val, mvolts;
|
||||||
return (6600*mgos_adc_read(WIDGET_BATTERY_ADC_PIN))/4096;
|
|
||||||
|
val = mgos_adc_read(WIDGET_BATTERY_ADC_PIN);
|
||||||
|
mvolts=(4000*val)/mgos_sys_config_get_app_battery_calibration();
|
||||||
|
LOG(LL_DEBUG, ("ADC value %d, voltage %d mV", val, mvolts));
|
||||||
|
return mvolts;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void widget_battery_render(struct widget_t *w, void *ev_data) {
|
static void widget_battery_render(struct widget_t *w, void *ev_data) {
|
||||||
|
Reference in New Issue
Block a user