Spisu treści:

ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15: 4 kroki
ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15: 4 kroki

Wideo: ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15: 4 kroki

Wideo: ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15: 4 kroki
Wideo: Transformator i zasilanie WeMos D1 mini WiFi ESP8266 2024, Listopad
Anonim
ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15
ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15

Aktualizacja 1 lipca 2018 - Dodano uwagę na przeprogramowanie, gdy GPIO0 jest wyjściem

To bardzo krótka notatka jak używać pinów GPIO0/GPIO2 i GPIO15 na module ESP8266.

Aktualizacja: Sprawdź również Jak korzystać z pinów ESP8266-01

Wstęp

ESP8266 to tani układ obsługujący Wi-Fi. Występuje w różnych typach modułów i może być programowany na różne sposoby. Wszystkie moduły sprawiają, że GPIO0 i GPIO2 są dostępne. Większość modułów, innych niż ESP8266-01, udostępnia również GPIO15. Te GPIO kontrolują sposób uruchamiania modułu i jako takie wymagają specjalnej obsługi, jeśli mają być w ogóle używane. GPIO6-GPIO11 również wymagają specjalnego traktowania, jak opisano poniżej.

Krok 1: Flash GPIO Pins – GPIO6 do GPIO11

Większość płyt ESP8266 ma układ flash podłączony do niektórych lub wszystkich GPIO6-GPIO11. Większość programów korzysta z pamięci flash, a także z pamięci RAM, więc jeśli nie upewnisz się, że twój kod działa tylko z pamięci RAM, nie możesz używać tych pinów do innych celów.

Dokładna liczba pinów używanych w zakresie GPIO6 do GPIO11 zależy od typu sprzętu flash używanego w twoim module. Quad IO wykorzystuje 4 linie do przesyłania danych (łącznie 6 pinów), co daje do 4 razy większą prędkość niż standard. Dual IO wykorzystuje 2 linie dla danych (łącznie 4 piny) Standard używa jednej linii dla danych (łącznie 3 piny).

O ile nie wiesz dokładnie, czego wymaga twoja płyta, najlepiej po prostu zignorować GPIO6 do GPIO11 i nie odwoływać się do nich w swoim kodzie.

Krok 2: Piny GPIO0, GPIO2 i GPIO15

Piny GPIO0, GPIO2 i GPIO15
Piny GPIO0, GPIO2 i GPIO15

Te piny określają, w jakim trybie uruchamia się układ.

W celu normalnego wykonania programu GPIO0 i GPIO2 muszą być podciągnięte do Vcc (3,3 V), a GPIO15 do GND, każdy z rezystorem w zakresie od 2K do 10K. Rezystor 2K zapewnia lepszą odporność na zakłócenia. OLIMEX używa rezystorów 2K SparkFun używa rezystorów 10K. Używam rezystorów 3K3.

Ustawienia tych wejść są sprawdzane tylko podczas włączania (lub resetowania) układu. Następnie piny są dostępne do ogólnego użytku, ale jak omówiono poniżej, ich użycie jest ograniczone przez te zewnętrzne rezystory podciągające/opadające.

Krok 3: Używanie GPIO0, GPIO2 i GPIO15 jako wyjść

Używanie GPIO0, GPIO2 i GPIO15 jako wyjść
Używanie GPIO0, GPIO2 i GPIO15 jako wyjść

Jak wspomniano powyżej, te piny będą już miały rezystor podłączony do VCC (GPIO0 i GPIO2) lub GND dla GPIO15. Określa to, w jaki sposób należy podłączyć dowolne urządzenie zewnętrzne, takie jak przekaźnik lub led+rezystor. W przypadku GPIO0 i GPIO2 należy podłączyć zewnętrzny przekaźnik między VCC a pin, aby nie zakłócał działania rezystora podciągającego. Odwrotnie, zewnętrzny przekaźnik podłączony do GPIO15 musi być podłączony między GND a pinem, aby nie zakłócał działania rezystora pull down.

Aby aktywować urządzenie zewnętrzne, GPIO0 lub GPIO2 musi być ustawiony na LOW (aktywny LOW), podczas gdy GPIO15 musi być ustawiony na HIGH (aktywny na wysokim poziomie).

Powyższy schemat pokazuje, jak używać GPIO0 i GPIO2 i GPIO15 jako wyjść. Obwód ten zawiera również niezbędne rezystory pullup/pulldown. Należy zauważyć, że moduł przekaźnika 5V napędzany przez GPIO0 jest optoizolowany i ma oddzielne wspólne połączenie dla wejścia. Ważne jest aby napięcie 5V VCCA nie było podawane na pin ESP8266.

Jak przeprogramować podczas używania GPIO0 jako wyjścia?

Uwaga: GPIO0 musi być uziemione, aby przejść do trybu programowania. Jeśli szkicujesz, jedziesz wysoko, uziemienie może uszkodzić układ ESP8266. Bezpiecznym sposobem przeprogramowania ESP8266, gdy twój kod steruje wyjściem GPIO0 jest:- a) Wyłączenie płyty b) zwarcie GPIO0 do masy c) włączenie zasilania płyty, która przechodzi w tryb programowania z powodu zwarcia na GPIO0 d) usunięcie zwarcie z GPIO0, aby nie zwierać wyjścia podczas działania programu e) przeprogramuj płytkę f) w razie potrzeby wyłącz i włącz ponownie płytę.

Krok 4: Używanie GPIO0, GPIO2 i GPIO15 jako wejść

Używanie GPIO0, GPIO2 i GPIO15 jako wejść
Używanie GPIO0, GPIO2 i GPIO15 jako wejść

Używanie tych pinów jako wejść jest nieco trudne. Jak wspomniano powyżej podczas włączania i resetowania, styki te należy pociągnąć w górę lub w dół, zgodnie z wymaganiami, aby moduł ESP8266 uruchomił się w normalnym trybie pracy. Oznacza to, że generalnie nie można po prostu podłączyć zewnętrznego przełącznika do tych pinów, ponieważ po włączeniu zwykle nie można zagwarantować, że przełącznik nie będzie ciągnął wejścia do masy, a tym samym uniemożliwić prawidłowe uruchomienie modułu.

Sztuczka polega na tym, aby nie podłączać zewnętrznego przełącznika bezpośrednio z GPIO0 lub GPIO2 do GND, ale zamiast tego podłączyć go do innego pinu GPIO, który jest doprowadzony do masy (jako wyjście) dopiero po uruchomieniu ESP8266. Pamiętaj, że gdy są używane jako wyjścia, piny GPIO zapewniają bardzo niską rezystancję połączenia z VCC lub GND, w zależności od tego, czy są one sterowane HIGH, czy LOW.

Tutaj będą brane pod uwagę tylko GPIO0 i GPIO2. Korzystając z tej metody, możesz uzyskać jedno (1) dodatkowe wejście za pomocą tych dwóch (2) GPIO.

Podobną metodę można zastosować dla GPIO15, używając innego pinu GPIO do podłączenia jego przełącznika do + VCC, ale nie zapewnia to dodatkowego wejścia, równie dobrze możesz po prostu użyć drugiego pinu GPIO bezpośrednio jako wejścia.

Powyższy obwód wykorzystuje jako przykład moduł ESP8266-01. Bez użycia tej sztuczki ESP8266-01 nie ma żadnych wolnych pinów do wykorzystania jako wejście, jeśli już używasz pinów RX/TX do połączenia UART.

Ponieważ metoda setup() szkicu jest uruchamiana dopiero po uruchomieniu modułu ESP8266, można bezpiecznie ustawić wyjście GPIO0 na LOW, a więc zapewnić uziemienie dla S1 podłączonego do GPIO2. Następnie możesz użyć digitalRead(2) w innym miejscu szkicu, aby odczytać ustawienie przełącznika.

Wniosek

Ta krótka notatka pokazuje, jak używać GPIO0, GPIO2 i GPIO15 jako wyjścia i jak uzyskać dodatkowe wejście za pomocą GPIO0 i GPIO2 razem.

Zalecana: