add examples
This commit is contained in:
25
examples/BatteryMonitor/BatteryMonitor.ino
Normal file
25
examples/BatteryMonitor/BatteryMonitor.ino
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <Battery.h>
|
||||
|
||||
Battery battery(3400, 4200, A0);
|
||||
/**
|
||||
* 1 cell li-ion/li-poly battery wired to A0 before voltage booster, on demand sensing on pin 3, linear mapping function
|
||||
* https://github.com/rlogiacco/BatterySense#lesser-than-5v-with-voltage-booster
|
||||
**/
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
battery.begin(5000, 1.0);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
digitalWrite(13, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(13, LOW);
|
||||
delay(500);
|
||||
|
||||
Serial.print("Battery voltage is ");
|
||||
Serial.print(battery.voltage());
|
||||
Serial.print(" (");
|
||||
Serial.print(battery.level());
|
||||
Serial.println("%)");
|
||||
}
|
||||
25
examples/BetterApprox/BetterApprox.ino
Normal file
25
examples/BetterApprox/BetterApprox.ino
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <Battery.h>
|
||||
|
||||
Battery battery(3000, 4200, A0);
|
||||
/**
|
||||
* 1 cell li-ion/li-poly battery wired to A0, continuous sensing, sigmoidal mapping function, cut off at 3000mV
|
||||
* https://github.com/rlogiacco/BatterySense#lesser-than-5v-with-voltage-booster
|
||||
**/
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
battery.begin(5000, 1.0, &sigmoidal);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
digitalWrite(13, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(13, LOW);
|
||||
delay(500);
|
||||
|
||||
Serial.print("Battery voltage is ");
|
||||
Serial.print(battery.voltage());
|
||||
Serial.print("mV (");
|
||||
Serial.print(battery.level());
|
||||
Serial.println("%)");
|
||||
}
|
||||
43
examples/CustomRatio/CustomRatio.ino
Normal file
43
examples/CustomRatio/CustomRatio.ino
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <Battery.h>
|
||||
|
||||
Battery battery(7200, 8400, A0);
|
||||
/**
|
||||
* 2 cells (2S1P) li-ion/li-poly battery wired to A0, continuous sensing
|
||||
* https://github.com/rlogiacco/BatterySense#higher-than-5v-with-internal-voltage-regulator
|
||||
*
|
||||
* +--------+
|
||||
* | |
|
||||
* | +-+
|
||||
* | | | 33k
|
||||
* | | |
|
||||
* ----- +-+
|
||||
* --- |---------+ A0
|
||||
* | +-+
|
||||
* | | |
|
||||
* | | | 10k
|
||||
* | +-+
|
||||
* | |
|
||||
* +--------+---------+ GND
|
||||
*
|
||||
**/
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
float ratio = (33 + 10) / 10;
|
||||
// 5V board, change to 3300 for a 3.3V board
|
||||
battery.begin(5000, ratio);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
digitalWrite(13, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(13, LOW);
|
||||
delay(500);
|
||||
|
||||
Serial.print("Battery voltage is ");
|
||||
Serial.print(battery.voltage());
|
||||
Serial.print("mV (");
|
||||
Serial.print(battery.level());
|
||||
Serial.println("%)");
|
||||
}
|
||||
26
examples/OnDemandDoubleLiIon/OnDemandDoubleLiIon.ino
Normal file
26
examples/OnDemandDoubleLiIon/OnDemandDoubleLiIon.ino
Normal file
@@ -0,0 +1,26 @@
|
||||
#include <Battery.h>
|
||||
|
||||
Battery battery(6000, 8400, A0);
|
||||
/**
|
||||
* 2 cells li-ion/li-poly battery wired to A0, on demand P-CH sensing on pin 3, sigmoidal mapping function
|
||||
* https://github.com/rlogiacco/BatterySense#higher-than-5v-activated-on-demand
|
||||
**/
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
battery.onDemand(3, HIGH);
|
||||
battery.begin(5000, 2.0, &sigmoidal);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
digitalWrite(13, HIGH);
|
||||
delay(500);
|
||||
digitalWrite(13, LOW);
|
||||
delay(500);
|
||||
|
||||
Serial.print("Battery voltage is ");
|
||||
Serial.print(battery.voltage());
|
||||
Serial.print("mV (");
|
||||
Serial.print(battery.level());
|
||||
Serial.println("%)");
|
||||
}
|
||||
58
examples/RGBBatteryIndicator/RGBBatteryIndicator.ino
Normal file
58
examples/RGBBatteryIndicator/RGBBatteryIndicator.ino
Normal file
@@ -0,0 +1,58 @@
|
||||
#include <Battery.h>
|
||||
|
||||
// 9V alkaline battery
|
||||
Battery battery(5000, 9000, A0);
|
||||
|
||||
#define RED 5
|
||||
#define GREEN 6
|
||||
#define BLUE 7
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
battery.begin(5000, 2.0, &sigmoidal);
|
||||
pinMode(RED, OUTPUT);
|
||||
pinMode(GREEN, OUTPUT);
|
||||
pinMode(BLUE, OUTPUT);
|
||||
}
|
||||
long ms = 0;
|
||||
bool on = true;
|
||||
|
||||
void loop() {
|
||||
long v = battery.voltage();
|
||||
if (battery.level(v) >= 75) {
|
||||
// blue: everything is fine
|
||||
digitalWrite(RED, LOW);
|
||||
digitalWrite(GREEN, LOW);
|
||||
digitalWrite(BLUE, HIGH);
|
||||
} else if (battery.level(v) >= 50) {
|
||||
// green: battery is ok, but not full
|
||||
digitalWrite(RED, LOW);
|
||||
digitalWrite(GREEN, HIGH);
|
||||
digitalWrite(BLUE, LOW);
|
||||
} else if (battery.level(v) >= 20) {
|
||||
// yellow: battery is getting low
|
||||
digitalWrite(RED, HIGH);
|
||||
digitalWrite(GREEN, HIGH);
|
||||
digitalWrite(BLUE, LOW);
|
||||
} else if (battery.level(v) >= 5) {
|
||||
// red: time to change the battery
|
||||
digitalWrite(RED, HIGH);
|
||||
digitalWrite(GREEN, LOW);
|
||||
digitalWrite(BLUE, LOW);
|
||||
} else {
|
||||
// blinking red: level is critical
|
||||
digitalWrite(RED, on);
|
||||
digitalWrite(GREEN, LOW);
|
||||
digitalWrite(BLUE, LOW);
|
||||
}
|
||||
if (millis() - ms > 250) {
|
||||
Serial.print("Battery voltage is ");
|
||||
Serial.print(v);
|
||||
Serial.print(" (");
|
||||
Serial.print(battery.level(v));
|
||||
Serial.println("%)");
|
||||
ms = millis();
|
||||
on = !on;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user