Wpis z mikrobloga

Mirki, kupiłem sobie takie coś (TTGO WiFi & Bluetooth Battery ESP32 Module ESP32 0.96 inch OLED - https://www.aliexpress.com/item/32835829447.html ).
Czy da się zmierzyć ile jest % baterii albo jej napięcie? Z tego co zdążyłem przeczytać to dzięki ADC mogę anlogowo odczytać. Ale czy na tej płytce to w ogóle jest podpięte i bez problemu to odczytam? Skleiłem taki kod:

#define BATTERY_PIN 35
float vBat;

void setup() {
Serial.begin(115200);
adcAttachPin(BATTERY_PIN);
adcStart(BATTERY_PIN);
analogReadResolution(10);
}
void loop() {
vBat = analogRead(BATTERY_PIN) * 2.0 * (3.3 / 1024.0);
}

i zwraca jakieś wartości gdy podłącze pod USB, ale na pewno nie jest to wartość dla baterii. Próbowałem coś takiego:

VBAT = (127.0f/100.0f) * 3.30f * float(analogRead(34)) / 4096.0f;
Ale nadal to samo, albo 0 albo jakieś dziwne wartości.
Nawet nie wiem jaki jest poprawny PIN dla tego ADC. Jak mogę to sprawdzić? Pomoże ktoś?

Wołam #esp32 #arduino #elektronika #cplusplus
  • 7
@morsisko: Szczerze powiedziawszy to nawet nie wiem do jakiego GPIO się mam odwołać (nie jestem elektronikiem, sorki ;p). Ale zrobiłem sobie test i:
GPIO36 - zwraca 0
GPIO39 - zwraca 0
GPIO34 - zwraca 0
GPIO35 - zwraca 0
GPIO32 - zwraca 428, 425, 422, 459, 453, 432, 410, 416, 459

Jak podłączę kabel pod usb to:
GPIO32 - zwraca 24, 179, 122, 42, 52, 192, 128, 48, 101, 196, 160
@loginek0: Ale co masz podłączone pod ten pin? Jeżeli nic to nie dziwne że są to jakieś losowe wartości. ESP32 ma 12 bitowy ADC, co znaczy że otrzymasz wartość 0-4095, która teoretycznie liniowo powinna odpowiadać napięciu, gdzie 0 to 0V a 4095 to 3.3V. A sprawdzić to możesz np porównując odczyt ADC z tym co podaje multimetr
@morsisko: Szczerze powiedziawszy nic nie ruszałem z płytką - tj. nic nie podłączałem. Tak jak ją kupiłem - włożyłem tylko baterię i tyle. Schemat płytki tutaj:
https://ae01.alicdn.com/kf/HTB1yyTQSFXXXXXoaXXXq6xXFXXXu.jpg?size=64336&height=620&width=554&hash=0a36712b6bc25e91f59c5eb027ac763c

To co powinienem w takim razie podłączyć pod konkretne gpio? Wybacz, nie jestem elektronikiem, myślałem, że to będzie już "wbudowane" - gdzieś przeczytałem komentarz, że płytka ma wbudowany monitor baterii i da się odczytać jej level..
@loginek0: Żeby otrzymać prawidłowy odczyt z ADC coś musi być podłączone do tego pinu z którego odczytujesz, czyli powinieneś połączyć GND tego co mierzysz (w tym wypadku baterii, ale podejrzewam że skoro masz taką płytkę to ta masa jest już połączona, możesz sprawdzić multimetrem), a + baterii podłączasz do pinu którym chcesz mierzyć, ten pin musi mieć na rozpisce pinów "ADC" (pin 35 ma ADC7 więc jest ok). U ciebie pojawia