Serwisy partnerskie:
Close icon
Serwisy partnerskie

Nauka elektroniki z modułem ESP32, część 3. Wejścia i wyjścia analogowe

Article Image
W poprzedniej części tego cyklu przedstawialiśmy wejścia i wyjścia cyfrowe. Pokazaliśmy, jak podłączyć przyciski i przełączniki, a także jak sterować obciążeniami takimi jak diody LED, przekaźniki i sygnalizatory dźwiękowe. Demonstrowaliśmy również użycie monitora szeregowego wbudowanego w środowisko Arduino IDE. W niniejszej trzeciej części wkroczymy w świat analogowy, przedstawiając przetwornik analogowo-cyfrowy (ADC) modułu ESP32. Projektem praktycznym będzie tester baterii alkalicznych 1,5 V.

Celem tego odcinka jest przekazanie czytelnikowi wiedzy z zakresu:

  • konfigurowanie i obsługa prostych wejść/wyjść analogowych
  • dołączanie czujników analogowych do systemu
  • posługiwanie się systemami liczbowymi: dwójkowym, ósemkowym i szesnastkowym oraz kodem ASCII.

Wejścia analogowe ESP32

ESP32 zawiera dwa 12-bitowe przetworniki analogowo-cyfrowe (ADC), obsługujące łącznie 18 kanałów analogowych, jednak w danej wersji płytki rozwojowej nie wszystkie mogą być wyprowadzone. Na przykład płytka 30-pinowa, której używamy w większości naszych projektów praktycznych, dysponuje zaledwie sześcioma kanałami przetwornika ADC1 i dziewięcioma ADC2. Kolejnym ograniczeniem jest to, że ADC2 nie można używać podczas korzystania z Wi-Fi. Jeśli Wi-Fi nie potrzebujemy, nie stanowi to oczywiście problemu. W przeciwnym przypadku, gdy chcemy używać wielu kanałów analogowych, mamy kłopot.

Przetwornik analogowo-cyfrowy (ADC) w układzie ESP32 wykorzystuje metodę „kolejnych przybliżeń”. Polega ona na tym, że analogowy sygnał wejściowy jest w komparatorze porównywany z sygnałem wyjściowym przetwornika cyfrowo-analogowego. Sygnał cyfrowy na wejściu DAC-a (wartość 12-bitowa) pochodzi ze specjalnego rejestru kolejnych przybliżeń (SAR). W rejestrze tym tworzony jest ciąg wartości, które szybko przybliżają się do wartości odpowiadającej sygnałowi analogowemu. Cały proces kończy się, gdy dane w rejestrze SAR zostaną przez DAC przekształcone na taką wartość analogową, którą komparator uzna za identyczną z sygnałem wejściowym.

Odczyt napięć analogowych

W zeszłym odcinku do odczytywania cyfrowych pinów wejściowych modułu ESP32 używaliśmy funkcji digitalRead(). Wynikiem był stan HIGH lub LOW. Odpowiednikiem tej funkcji dla wejść analogowych jest analogRead().

Jak można się spodziewać, funkcja analogRead() wymaga podania jako argumentu numeru pinu wejścia/wyjścia. Pamiętajmy, że pin przypisujemy zazwyczaj przed główną częścią programu, używając instrukcji w rodzaju:

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Chcesz częściej widzieć nasze artykuły w Google? Dodaj ELPORTAL do ulubionych źródeł
Firma:
AUTOR
Źródło
Elektronika dla Wszystkich wrzesień 2026
Udostępnij
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"