Update to ESP32-PoE
This commit is contained in:
51
ESP32-PoE-Test2/ESP32-PoE-Test2.ino
Normal file
51
ESP32-PoE-Test2/ESP32-PoE-Test2.ino
Normal file
@ -0,0 +1,51 @@
|
||||
#include <driver/adc.h>
|
||||
|
||||
|
||||
float battery_read()
|
||||
{
|
||||
//read battery voltage per %
|
||||
long sum = 0; // sum of samples taken
|
||||
float voltage = 0.0; // calculated voltage
|
||||
float output = 0.0; //output value
|
||||
const float battery_max = 3.6; //maximum voltage of battery
|
||||
const float battery_min = 3.3; //minimum voltage of battery before shutdown
|
||||
|
||||
float R1 = 470000.0; // resistance of R1 (100K)
|
||||
float R2 = 470000.0; // resistance of R2 (10K)
|
||||
|
||||
for (int i = 0; i < 500; i++)
|
||||
{
|
||||
sum += adc1_get_voltage(ADC1_CHANNEL_7);
|
||||
delayMicroseconds(1000);
|
||||
}
|
||||
Serial.print("Out :");
|
||||
Serial.println(sum);
|
||||
// calculate the voltage
|
||||
voltage = sum / (float)500;
|
||||
voltage = (voltage * 1.1) / 4096.0; //for internal 1.1v reference
|
||||
// use if added divider circuit
|
||||
voltage = voltage / (R2/(R1+R2));
|
||||
//round value by two precision
|
||||
voltage = roundf(voltage * 100) / 100;
|
||||
Serial.print("voltage: ");
|
||||
Serial.println(voltage, 2);
|
||||
output = ((voltage - battery_min) / (battery_max - battery_min)) * 100;
|
||||
if (output < 100)
|
||||
return output;
|
||||
else
|
||||
return 100.0f;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
adc1_config_width(ADC_WIDTH_12Bit);
|
||||
adc1_config_channel_atten(ADC1_CHANNEL_7, ADC_ATTEN_11db); //set reference voltage to internal
|
||||
Serial.begin(115200);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
Serial.print("Battery Level: ");
|
||||
Serial.println(battery_read(), 2);
|
||||
delay(1000);
|
||||
}
|
||||
Reference in New Issue
Block a user