mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2025-02-02 10:26:21 -05:00
Better adc reading and USB recognition
This commit is contained in:
parent
93c365dc48
commit
7a6855d90e
18
Power.h
18
Power.h
@ -65,6 +65,7 @@ int bat_charged_samples = 0;
|
|||||||
bool bat_voltage_dropping = false;
|
bool bat_voltage_dropping = false;
|
||||||
float bat_delay_v = 0;
|
float bat_delay_v = 0;
|
||||||
#elif BOARD_MODEL == BOARD_HELTEC32_V3
|
#elif BOARD_MODEL == BOARD_HELTEC32_V3
|
||||||
|
#define BAT_V_MIN 3.4
|
||||||
#define PIN_VBAT 1
|
#define PIN_VBAT 1
|
||||||
#define VBAT_READ_CNTRL_PIN 37
|
#define VBAT_READ_CNTRL_PIN 37
|
||||||
#endif
|
#endif
|
||||||
@ -138,7 +139,6 @@ void measure_battery() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#elif BOARD_MODEL == BOARD_HELTEC32_V3
|
#elif BOARD_MODEL == BOARD_HELTEC32_V3
|
||||||
battery_installed = true;
|
|
||||||
battery_indeterminate = false;
|
battery_indeterminate = false;
|
||||||
battery_state = BATTERY_STATE_DISCHARGING;
|
battery_state = BATTERY_STATE_DISCHARGING;
|
||||||
battery_ready = true;
|
battery_ready = true;
|
||||||
@ -148,15 +148,21 @@ void measure_battery() {
|
|||||||
delay(50);
|
delay(50);
|
||||||
analogRead(PIN_VBAT); // to clear out potential wrong reads on first read
|
analogRead(PIN_VBAT); // to clear out potential wrong reads on first read
|
||||||
int analogValue = 0;
|
int analogValue = 0;
|
||||||
for (int i = 0; i < 5; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
analogValue += analogRead(PIN_VBAT); // reading value to make an average over 5 values
|
analogValue += analogReadMilliVolts(PIN_VBAT); // reading value to make an average over 5 values
|
||||||
delay(10);
|
delay(10);
|
||||||
}
|
}
|
||||||
analogValue /= 5; // calculate average value
|
|
||||||
digitalWrite(VBAT_READ_CNTRL_PIN, HIGH);
|
digitalWrite(VBAT_READ_CNTRL_PIN, HIGH);
|
||||||
battery_voltage = (float(analogValue) / 4095.0) * 1.25 * (4.9); // at 2.5db attenuation range is 0-1250mV, 4.9 is voltage divider ratio
|
analogValue /= 8; // calculate average value
|
||||||
battery_percent = (battery_voltage - 3.4) * 125.0;
|
battery_voltage = (float(analogValue)/1000.0)* (4.92); // at 2.5db attenuation range is 0-1250mV, 4.9 is voltage divider ratio
|
||||||
|
battery_percent = (battery_voltage - BAT_V_MIN) * 125.0;
|
||||||
|
if(battery_voltage > 4.4){
|
||||||
|
battery_installed = false;
|
||||||
|
}else{
|
||||||
|
battery_installed = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (battery_percent > 100.0)
|
if (battery_percent > 100.0)
|
||||||
{
|
{
|
||||||
battery_percent = 100.0;
|
battery_percent = 100.0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user