Serwisy partnerskie:
Close icon
Serwisy partnerskie

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

Article Image
W pierwszej części naszego cyklu przedstawiliśmy ogólnie moduł ESP32, zaprezentowaliśmy też jego środowisko programistyczne. Pokazaliśmy, jak przy użyciu komputera monitorować czujniki dotykowe wbudowane w ten moduł. Projekt praktyczny dotyczył wykorzystania ESP32 w przenośnym nadajniku sygnału alarmowego. W niniejszym odcinku przyjrzymy się bardziej szczegółowo wejściom i wyjściom cyfrowym. Pokażemy, jak podłączać przyciski i przełączniki, a także jak sterować różnymi obciążeniami – takimi jak diody LED, przekaźniki i sygnalizatory dźwiękowe. Przedstawimy również monitor portu szeregowego – bardzo przydatne narzędzie stanowiące część środowiska Arduino IDE. Użycie monitora portu szeregowego to doskonały sposób na testowanie programu.
Nauka elektroniki
Jest to nasz nowy cykl edukacyjny, poświęcony wykorzystaniu popularnego modułu ESP32 do nauki podstaw elektroniki i programowania. Nie zakładamy u Czytelnika żadnych wcześniejszych umiejętności programistycznych ani doświadczenia w elektronice. Jeśli znacie się na jednym, ale nie na drugim, to dobrze trafiliście, a jeśli w obu tych dziedzinach jesteście kompletnymi nowicjuszami, to też nie ma powodu do obaw, ponieważ cykl polega na stopniowym i praktycznym zdobywaniu wiedzy. Będzie mnóstwo czasu na jej poszerzanie i wiele okazji do wypróbowania nowych rzeczy.
Nie zamieszczamy zbyt wielu podstawowych informacji teoretycznych, ponieważ można je znaleźć w innych miejscach, między innymi w numerach „Practical Electronics” w odcinkach serii „Teach-In”: https://bit.ly/pe-ti, https://bit.ly/pe-ti-bundle
W prezentowanym cyklu pojawią się projekty i zadania, które pomogą Wam lepiej zrozumieć poruszane tematy.
Light icon

Celem tego odcinka cyklu jest nabycie następujących umiejętności:

  • korzystanie z monitora portu szeregowego
  • konfigurowanie i obsługa prostych wejść i wyjść cyfrowych
  • poznanie sposobów sterowania większymi obciążeniami za pomocą wyjść ESP32.

Użycie monitora portu szeregowego

Podczas testowania nawet najprostszego programu często okazuje się, że potrzebujemy jakiegoś sposobu, aby dowiedzieć się, co się w nim dzieje. Bez zaawansowanego interfejsu użytkownika (klawiatury, wyświetlacza) nie jest to łatwe. Środowisko Arduino IDE ułatwia to dzięki wbudowanemu monitorowi portu szeregowego. Zanim jednak zaczniemy korzystać z tego narzędzia, musimy je zainicjować w funkcji setup() w następujący sposób:

void setup() {
Serial.begin(9600); // Inicjalizacja monitora portu szeregowego
}

Zwróciliście chyba uwagę na parametr użyty w wywołaniu funkcji Serial.begin(). Określa on szybkość transmisji szeregowej w bitach na sekundę. Zazwyczaj ustawia się ją na 9600 lub 115200 bitów na sekundę, ale w razie potrzeby można wybrać inne wartości. Opcjonalny drugi argument określa liczbę bitów danych i bitów stopu oraz sposób kontroli parzystości. Domyślnie stosuje się osiem bitów danych, brak bitu parzystości i jeden bit stopu. Takie ustawienie powinno działać poprawnie zarówno z Arduino IDE, jak i z wieloma innymi aplikacjami. W przypadku niektórych urządzeń zewnętrznych może być jednak konieczna zmiana tych ustawień.
Poniższy przykładowy program konfiguruje interfejs szeregowy (UART) do pracy z szybkością 9600 bitów na sekundę, ośmioma bitami danych, bitem parzystości i dwoma bitami stopu:

void setup() {
Serial.begin(9600, SERIAL_8E2); // Inicjalizacja monitora portu szeregowego
}

Aby wysłać komunikat tekstowy do monitora portu szeregowego, można użyć funkcji Serial.print() lub Serial.println(). Jedyna różnica między tymi funkcjami polega na tym, że druga z nich dodaje na końcu komunikatu znak nowego wiersza. Oto przykład:

Serial.print("Wybrany pin = ");

Instrukcja ta spowoduje wyświetlenie ciągu znaków ujętego w cudzysłowy. Element, który wyślemy jako następny, pojawi się bezpośrednio za powyższym ciągiem (za końcową spacją). Jeśli więc chcielibyśmy dopisać tam numer pinu zapisany w zmiennej selectedPin, a następnie przejść do następnego wiersza, użylibyśmy:

Serial.println(selectedPin);

Programy przedstawione na listingach pokazują, w jaki sposób monitor portu szeregowego może zarówno odbierać dane z modułu ESP32, jak i wysyłać do niego dane. W pierwszym przykładzie wykorzystano czujnik Halla wbudowany w ESP32. Pamiętajmy, że po wpisaniu lub pobraniu z Internetu kodu źródłowego należy w menu Tools włączyć monitor portu szeregowego, jak pokazano na rysunku 1, oraz wybrać szybkość transmisji.

Rysunek 1. Uruchamianie monitora szeregowego z menu Tools środowiska IDE

Po uruchomieniu programu w oknie monitora pojawi się lista wartości z czujnika, aktualizowana co 500 ms. Są to wartości natężenia pola magnetycznego. Zmieniają się, aczkolwiek są dość małe. Czujnik Halla można przetestować, umieszczając w pobliżu górnej powierzchni modułu ESP32 mały magnes. Gdy magnes zostanie przesunięty w kierunku modułu ESP32, nastąpi wyraźna zmiana zmierzonego natężenia pola. Jeśli kierunek pola zostanie odwrócony, zaobserwujemy zmianę znaku mierzonych wartości.

Listing 2.1. Wykorzystanie monitora szeregowego do wyświetlania danych z magnetycznego czujnika Halla wbudowanego w ESP32

/* Wykorzystanie monitora szeregowego do wyświetlania danych otrzymanych z czujnika pola magnetycznego Halla wbudowanego w ESP32 */

int magField = 0;	// Inicjalizacja danych z czujnika

void setup() {
Serial.begin(115200);	// Zainicjuj monitor szeregowy
}

void loop() {
// Pętla główna powtarza się w nieskończoność
magField = hallRead();		// Aktualizacja danych
								// z czujnika
Serial.println(magField);	// Wyświetlanie na monitorze
								// szeregowym
delay(500);	// Krótkie opóźnienie między odczytami
}

Drugi przykład ilustruje, w jaki sposób przez łącze szeregowe można wysyłać pojedyncze znaki z komputera do modułu. Dane do wysłania (pojedynczy znak, po którym następuje znak nowego wiersza) wprowadza się w polu tekstowym monitora portu szeregowego. Program pozwala przełączać diodę LED na module ESP32 (linia GPIO2) między stanem włączonym a wyłączonym poprzez wysyłanie litery „X” (małej lub wielkiej) wpisanej z klawiatury.

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 sierpień 2026
Udostępnij
UK Logo