Spisu treści:
- Wstęp
- Krok 1: Flash GPIO Pins – GPIO6 do GPIO11
- Krok 2: Piny GPIO0, GPIO2 i GPIO15
- Krok 3: Używanie GPIO0, GPIO2 i GPIO15 jako wyjść
- Krok 4: Używanie GPIO0, GPIO2 i GPIO15 jako wejść
- Wniosek
Wideo: ESP8266 przy użyciu pinów GPIO0/GPIO2/GPIO15: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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ść
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 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:
Pierwsze kroki z Digispark Attiny85 przy użyciu Arduino IDE: 4 kroki
Rozpoczęcie pracy z Digispark Attiny85 przy użyciu Arduino IDE: Digispark to oparta na Attiny85 płytka rozwojowa mikrokontrolera podobna do linii Arduino, tylko tańsza, mniejsza i nieco mniej wydajna. Z całą gamą osłon rozszerzających jego funkcjonalność i możliwością korzystania ze znanego identyfikatora Arduino
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: 3 kroki
Pierwsze kroki z Stm32 przy użyciu Arduino IDE: STM32 to dość potężna i popularna płyta obsługiwana przez Arduino IDE. Aby z niej skorzystać, musisz zainstalować płyty dla stm32 w Arduino IDE, więc w tej instrukcji opowiem, jak zainstalować płyty stm32 i jak zaprogramować to
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem
Gniazdo ISP od 6 pinów do 8 pinów: 4 kroki
Gniazdo ISP od 6 do 8 pinów: Głównym powodem, dla którego zbudowałem ten projekt, było zaprogramowanie ATTiny45, który ma 8-pinowe połączenie, podczas gdy mój USBtinyISP (od Ladyada) ma tylko 10-pinowe i 6-pinowe połączenie. Po szperaniu w Internecie przez około 3-4 tygodnie nie znalazłem nic, co