18-10-2020, 23:11
Po kilku dniach dokonałem paru zmian.
200mAh - to nie dużo.
Jak wiadomo zasilanie płytki przechodzi przez stabilizator LDO. 3.3V o naprawdę małym spadku ale istotnym około 0,2-0,25. I tak jeżeli napięcie spadnie do 3,5V na baterii to płytka nie działa stabilnie. A wiadomo że ten rodzaj akumulatora działa poprawnie od 4,2 do 3,0V. Co zrobiłem:
- Zastosowałem jedno ogniwo 18650 - jest moc
- dodałem opornik 200kR od A0 do VIN
- oprogramowałem wyświetlanie napięcia na wysokości zegarka
- oprogramowałem wyłączanie przy napięciu 3,55.
- dla upartych oprogramowałem wyłączanie przy napięciu 3,51 by nie dało się korzystać poniżej.
W sekcji loop dla jednosekundowego przebiegu dodałem:
4.88 - taki współczynnik jest zgody co do 0,01V z miernikiem dla VIN i należy go dobrać każdorazowo przy odpowiednim rezystorze do jego rzeczywistej oporności. Ja to zrobiłem doświadczalnie.
200mAh - to nie dużo.
Jak wiadomo zasilanie płytki przechodzi przez stabilizator LDO. 3.3V o naprawdę małym spadku ale istotnym około 0,2-0,25. I tak jeżeli napięcie spadnie do 3,5V na baterii to płytka nie działa stabilnie. A wiadomo że ten rodzaj akumulatora działa poprawnie od 4,2 do 3,0V. Co zrobiłem:
- Zastosowałem jedno ogniwo 18650 - jest moc
- dodałem opornik 200kR od A0 do VIN
- oprogramowałem wyświetlanie napięcia na wysokości zegarka
- oprogramowałem wyłączanie przy napięciu 3,55.
- dla upartych oprogramowałem wyłączanie przy napięciu 3,51 by nie dało się korzystać poniżej.
W sekcji loop dla jednosekundowego przebiegu dodałem:
4.88 - taki współczynnik jest zgody co do 0,01V z miernikiem dla VIN i należy go dobrać każdorazowo przy odpowiednim rezystorze do jego rzeczywistej oporności. Ja to zrobiłem doświadczalnie.
Kod:
int rawVoltage = analogRead(A0);
float voltage = 4.88 * rawVoltage / 1024.0;
if (voltage < 3.55){
Serial.println("Napiecie ponizej 3,55 naladuj baterie");
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 8);// Display static text
display.print(" NISKI");
display.setCursor(0, 16);
display.print(" POZIOM");
display.setCursor(0, 24);
display.print(" BATERII");
display.display();
delay(1000);
display.clearDisplay();
display.display();
ESP.deepSleep(0);
}
if (voltage < 3.51){
Serial.println("Napiecie ponizej 3,51 bateria skrajnie wyczerpana");
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 8);// Display static text
display.print(" BATERIA");
display.setCursor(0, 16);
display.print("WYCZERPANA");
display.display();
delay(500);
display.clearDisplay();
display.display();
ESP.deepSleep(0);
}