Pomiar napięcia Arduino - Jak to zrobić bez błędów?

Artur Wójcik .

4 marca 2026

Pomiar napięcia Arduino z użyciem sondy w wodzie. Na ekranie komputera widać kod i wyniki pomiarów wilgotności gleby.

Sam pomiar napięcia na Arduino jest prosty dopiero wtedy, gdy rozumiesz, co naprawdę robi przetwornik ADC, skąd bierze się napięcie odniesienia i po co w ogóle stosuje się dzielnik rezystorowy. W praktyce nie chodzi wyłącznie o odczyt liczby z pinu A0, ale o wynik, który da się bezpiecznie przeliczyć na wolty i porównać z multimetrem. W tym artykule pokazuję, jak to zrobić bez zgadywania, z przykładami dla typowych napięć i z komentarzem do najczęstszych błędów.

Najpierw ustal zakres wejścia, potem liczby z ADC

  • `analogRead()` zwraca kod ADC, a nie napięcie. Na klasycznych płytkach AVR zakres 10-bitowy to zwykle 0-1023.
  • Napięcie odniesienia decyduje o skali pomiaru. Przy 5,00 V krok wynosi około 4,88 mV, ale rzeczywiste Vref warto zmierzyć.
  • Do napięć wyższych niż referencja potrzebny jest dzielnik. Bez niego łatwo uszkodzić wejście analogowe.
  • Wspólna masa jest obowiązkowa. Bez niej odczyt nie ma poprawnego punktu odniesienia.
  • Uśrednianie i krótki kondensator przy wejściu pomagają w praktyce. To najprostszy sposób na stabilniejszy wynik.
  • Przy 230 V AC Arduino nie mierzy się bezpośrednio. Tu potrzebna jest izolacja i odpowiedni tor pomiarowy.

Jak Arduino zamienia napięcie na liczbę

Arduino nie mierzy napięcia „wprost”. Wejście analogowe trafia do przetwornika ADC, który zamienia poziom napięcia na liczbę całkowitą, a ta liczba jest tylko proporcją względem napięcia referencyjnego. Na klasycznych płytkach AVR, takich jak Uno, Nano czy Mega, `analogRead()` zwykle daje wartości od 0 do 1023, więc krok pomiaru przy referencji 5 V wynosi około 4,88 mV.

To ważne rozróżnienie, bo wiele problemów bierze się właśnie z mylenia odczytu z napięciem. Jeśli referencja ma 5,00 V, to kod 512 oznacza mniej więcej 2,50 V na pinie, ale jeśli rzeczywiste Vref ma 4,92 V, wynik już się zmienia. Na części nowszych płytek możesz też spotkać inną rozdzielczość ADC i wtedy przelicznik trzeba dopasować do ustawienia `analogReadResolution()`.

Jeśli korzystasz z zewnętrznej referencji, na klasycznych AVR ustawiasz `analogReference(EXTERNAL)` i dopiero potem podajesz właściwe napięcie na AREF. Nie każda płytka zachowuje się tak samo, więc nie zakładam z góry identycznych zasad dla całej rodziny Arduino.

Tryb ADC Zakres odczytu Przeliczenie na napięcie
10 bit 0-1023 raw * Vref / 1023.0
12 bit 0-4095 raw * Vref / 4095.0
Inna rozdzielczość zależna od płytki sprawdź ustawienie i dokumentację

Gdy to już jest jasne, można bezpiecznie przejść do samego podłączenia wejścia.

Jak podłączyć dzielnik napięcia, żeby niczego nie spalić

Jeżeli mierzone napięcie mieści się w zakresie wejścia analogowego, możesz podłączyć je bezpośrednio. Jeżeli jest wyższe, potrzebujesz dzielnika rezystorowego, czyli dwóch rezystorów, które obniżają napięcie do bezpiecznego poziomu. Najprostszy układ wygląda tak: `Vin` trafia na `R1`, z węzła pomiarowego schodzisz przez `R2` do masy, a punkt pośredni łączysz z pinem analogowym.

Wspólna masa jest obowiązkowa. Masa mierzonego układu i masa Arduino muszą być połączone, inaczej wynik będzie przypadkowy albo całkiem błędny. Tak samo ważne jest to, żeby napięcie na pinie nie przekraczało referencji z zapasem. Ja zwykle zostawiam kilka procent marginesu, bo zasilacze, akumulatory i instalacje 12 V potrafią podnieść się wyżej, niż sugeruje nazwa nominalna.

  • R1 jest po stronie wyższego napięcia.
  • R2 schodzi do masy.
  • Punkt między rezystorami łączysz z wejściem analogowym.
  • Dla dłuższych przewodów i szumu pomaga kondensator 100 nF między pinem a masą.
  • Przy napięciach sieciowych 230 V AC nie używa się samego dzielnika i pinu Arduino bez izolacji.

Takie połączenie jest proste, ale działa dobrze tylko wtedy, gdy potem poprawnie policzysz wynik w kodzie.

Jak przeliczyć odczyt na wolty w kodzie

Najwygodniej liczyć to w dwóch krokach: najpierw przekształcam odczyt ADC na napięcie na pinie, a dopiero potem cofam go przez wzór dzielnika. Dla układu z rezystorami `R1` i `R2` wzór wygląda tak: Vin = Vout × (R1 + R2) / R2. W praktyce oznacza to, że jeśli na pinie masz 2,50 V, a dzielnik ma proporcję 3:1, to źródło daje około 10 V.

const byte PIN_VOLT = A0;
const float VREF = 5.00;      // wpisz zmierzone napięcie odniesienia
const float R1 = 30000.0;     // rezystor po stronie wyższego napięcia
const float R2 = 10000.0;     // rezystor do masy

float readVoltage()
{
  long sum = 0;

  for (byte i = 0; i < 20; i++) {
    sum += analogRead(PIN_VOLT);
    delayMicroseconds(200);
  }

  float raw = sum / 20.0;
  float vout = raw * VREF / 1023.0;
  return vout * (R1 + R2) / R2;
}

Warto zwrócić uwagę na dwie rzeczy. Po pierwsze, VREF lepiej zmierzyć multimetrem niż wpisywać z pamięci, bo USB i stabilizatory rzadko dają idealne 5,00 V. Po drugie, uśrednianie kilkunastu odczytów zmniejsza rozrzut, który w prostych układach bywa większy, niż się intuicyjnie spodziewa początkujący.

Na płytkach z inną rozdzielczością niż 10 bitów zmieniasz tylko mianownik i ustawienia ADC. W tym miejscu robi się już praktyka doboru elementów, bo nie każdy dzielnik jest równie dobry dla każdego napięcia.

Jak dobrać wartości rezystorów do typowych zastosowań

Dobór dzielnika to kompromis między bezpieczeństwem, poborem prądu i stabilnością odczytu. Zbyt małe rezystory niepotrzebnie obciążają badany układ, a zbyt duże zwiększają podatność na szum i potrafią rozjechać wynik, zwłaszcza przy dłuższych przewodach. Ja zwykle zaczynam od prostych par rezystorów i dopiero później dopracowuję je pod konkretny projekt.

Zastosowanie Przykładowe wartości Co daje taki układ Uwagi praktyczne
Pomiar 0-5 V bez dzielnika pełny zakres ADC pilnuj, żeby sygnał nie przekraczał referencji
Akumulator 12 V 30 kΩ / 10 kΩ około 3,0 V przy 12 V i 3,75 V przy 15 V dobry margines dla ładowanego akumulatora
Instalacja 24 V 120 kΩ / 22 kΩ około 3,7 V przy 24 V i 4,6 V przy 30 V sensowny kompromis dla automatyki i zasilaczy
Pomiar dokładniejszy AREF + dobrany dzielnik lepsza rozdzielczość w węższym zakresie wymaga poprawnej konfiguracji referencji

Jeśli z dzielnika chcesz zasilać tylko wejście analogowe, prąd zwykle jest niewielki. Przy 30 kΩ i 10 kΩ dla 15 V mówimy o około 0,375 mA, więc układ nie obciąża źródła mocno. To właśnie dlatego taki sposób sprawdza się w monitorowaniu baterii i zasilaczy, ale nie zastępuje pomiaru wysokiej klasy, gdy liczy się każda dziesiąta wolta.

Wybór rezystorów wygląda banalnie, ale to właśnie on najczęściej decyduje o tym, czy odczyt będzie stabilny, czy frustrująco pływający.

Najczęstsze błędy przy pomiarze napięcia

Najwięcej problemów widzę nie w samym kodzie, tylko w okablowaniu i założeniach. Arduino bardzo chętnie „pokazuje” napięcie, które w rzeczywistości jest sumą błędu referencji, szumu i źle dobranego dzielnika.

  • Brak wspólnej masy sprawia, że wynik nie ma odniesienia i zaczyna wyglądać losowo.
  • Za duże rezystory podnoszą podatność na zakłócenia, szczególnie przy dłuższych przewodach.
  • Za mały margines nad referencją kończy się przesterowaniem wejścia przy wyższych niż nominalne napięciach.
  • Założenie, że USB daje idealne 5 V prowadzi do systematycznego błędu w przeliczeniu.
  • Nieprawidłowa konfiguracja AREF potrafi całkowicie zmienić skalę pomiaru.
  • Bezpośredni pomiar napięcia sieciowego bez izolacji jest po prostu niebezpieczny i nie powinien być robiony „na szybko”.

Jeżeli wynik skacze o kilka jednostek, nie zaczynam od wymiany Arduino. Najpierw skracam przewody, dodaję uśrednianie, sprawdzam masę i dopiero potem oceniam, czy potrzebny jest lepszy tor pomiarowy.

To prowadzi do najważniejszego pytania: kiedy zwykły ADC z Arduino wystarczy, a kiedy lepiej od razu sięgnąć po coś dokładniejszego.

Kiedy Arduino wystarczy, a kiedy lepiej wyjść poza sam ADC

Do prostych zadań Arduino naprawdę wystarcza. Monitorowanie poziomu baterii, kontrola zasilacza, alarm przy spadku napięcia czy logowanie prostych wartości w projekcie robotycznym to typowe przypadki, w których poprawnie policzony dzielnik i sensowny kod załatwiają sprawę.

Jeśli jednak potrzebujesz wyższej dokładności, pracy w silnym szumie, długiego kabla albo stabilnego pomiaru wielu kanałów, rozważ zewnętrzny przetwornik ADC albo dedykowany układ monitorujący napięcie. Przy instalacjach przemysłowych i wszędzie tam, gdzie w grę wchodzi wyższe napięcie lub izolacja, to już nie jest kwestia wygody, tylko bezpieczeństwa i jakości danych.

W praktyce najlepszy efekt daje prosta zasada: dla prostych projektów wystarczy dobrze policzony dzielnik i kalibracja, a tam, gdzie liczy się dokładność lub bezpieczeństwo, warto wyjść poza samą płytkę i dobrać lepszy tor pomiarowy.

FAQ - Najczęstsze pytania

Dzielnik napięcia to układ dwóch rezystorów, który obniża wysokie napięcie do bezpiecznego poziomu dla wejścia analogowego Arduino. Używaj go zawsze, gdy mierzone napięcie przekracza napięcie referencyjne Arduino (np. 5V).
Wspólna masa zapewnia punkt odniesienia dla pomiaru. Bez niej odczyty są niestabilne i błędne, ponieważ Arduino nie ma stabilnego punktu porównania dla mierzonego napięcia.
Odczyt ADC przeliczysz wzorem: `napięcie_na_pinie = (odczyt_ADC * VREF) / 1023.0`. Jeśli używasz dzielnika, zastosuj dodatkowy wzór: `Vin = Vout * (R1 + R2) / R2`, gdzie `Vout` to napięcie na pinie.
Nie, bezpośredni pomiar 230V AC z Arduino jest niebezpieczny i może uszkodzić płytkę. Wymaga izolacji galwanicznej i dedykowanych modułów pomiarowych, a nie tylko dzielnika rezystorowego.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

pomiar napięcia arduino dzielnik napięcia arduino
Autor Artur Wójcik
Artur Wójcik
Nazywam się Artur Wójcik i od wielu lat zajmuję się tematyką elektroniki, robotyki oraz programowania. Moje doświadczenie obejmuje zarówno analizę rynku, jak i tworzenie treści, które pomagają zrozumieć złożone zagadnienia technologiczne. Specjalizuję się w nowoczesnych rozwiązaniach w dziedzinie automatyzacji oraz w zastosowaniach sztucznej inteligencji w codziennym życiu. Moim celem jest uproszczenie skomplikowanych danych oraz dostarczanie obiektywnej analizy, która pozwala czytelnikom lepiej zrozumieć dynamiczny świat technologii. Przykładam dużą wagę do rzetelności informacji, dlatego staram się, aby każda publikacja była aktualna i oparta na sprawdzonych źródłach. Wierzę, że dostęp do rzetelnej wiedzy jest kluczowy dla każdego, kto chce nadążyć za szybkim rozwojem w dziedzinie elektroniki i robotyki.
Komentarze (0)
Dodaj komentarz