add examples

This commit is contained in:
2021-12-14 11:30:20 +01:00
parent c4c5e65f64
commit 20b30eee1f
13 changed files with 625 additions and 0 deletions

View 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;
}
}