Artykuł dotyczy modułu WeMos D1 ESP-Wroom-02, ale jest aktualny dla wielu innych modułów, które w większości zbudowane są w podobny sposób.
Większość znanych mi modułów opartych o układ ESP8266 posiada wybudowany dzielnik napięcia podpięty do wejścia analogowego A0.
Źródło: https://www.letscontrolit.com/wiki/index.php/File:Voltage-divider.gif
Wartości rezystorów:
- R1 = 220k
- R2 = 100k
Vout jest podłączone do A0, a maksymalne napięcie Vin (wg większości źródeł) nie powinno przekraczać 1V.
W pełni naładowany akumulator typu Li-Ion (również Li-Pol) posiada napięcie 4,2V.
Napięcie wyjściowe Vout obliczamy stosując drugie prawo Kirchhoffa (patrz wzór z rysunku).
4,2 * (100k / (100k + 220k)) = 1,3125V
Jak widać, przekroczyliśmy maksymalne napięcie Vout dla pinu A0 o 0,3125V.
Dla podanego dzielnika, maksymalne napięcie wejściowe wynosi:
1 / (100k / (100k + 220k)) = 3,2V
Musimy zatem dodać dodatkowy rezystor w szereg z rezystorem R1 a naszą baterią o wartości 100k.
Maksymalne napięcie wejściowe wyniesie wtedy równo 4,2V.
Jeśli chcesz mierzyć napięcia do 5V, np. z USB, należy zastosować rezystor 180k.
Przy założeniu, że stosujemy rezystor 100k, przykładowy kod będzie wyglądał jak poniżej.
void setup(void) { Serial.begin(9600); } void loop(void) { int rawVoltage = analogRead(A0); float voltage = 4.2 * rawVoltage / 1024.0; Serial.print("Voltage: "); Serial.println(voltage); delay(10000); }