Inhaltsverzeichnis:

ESP8266 mit GPIO0/GPIO2/GPIO15-Pins - Gunook
ESP8266 mit GPIO0/GPIO2/GPIO15-Pins - Gunook

Video: ESP8266 mit GPIO0/GPIO2/GPIO15-Pins - Gunook

Video: ESP8266 mit GPIO0/GPIO2/GPIO15-Pins - Gunook
Video: Electronics: ESP8266, GPIO0 or GPIO2 as input 2024, November
Anonim
ESP8266 mit GPIO0/GPIO2/GPIO15-Pins
ESP8266 mit GPIO0/GPIO2/GPIO15-Pins

Update 1. Juli 2018 -- Hinweis zur Neuprogrammierung hinzugefügt, wenn GPIO0 ein Ausgang ist

Dies ist ein sehr kurzer Hinweis zur Verwendung der GPIO0 / GPIO2- und GPIO15-Pins auf dem ESP8266-Modul.

Update: Sehen Sie sich auch an, wie Sie die ESP8266-01-Pins verwenden

Einführung

ESP8266 ist ein kostengünstiger WLAN-fähiger Chip. Es gibt verschiedene Modultypen und kann auf verschiedene Weise programmiert werden. Alle Module machen GPIO0 und GPIO2 zugänglich. Die meisten Module außer ESP8266-01 machen auch GPIO15 zugänglich. Diese GPIOs steuern den Start des Moduls und erfordern daher eine besondere Behandlung, wenn sie überhaupt verwendet werden sollen. GPIO6-GPIO11 erfordern ebenfalls eine spezielle Behandlung, wie unten beschrieben.

Schritt 1: Flash-GPIO-Pins – GPIO6 bis GPIO11

Die meisten ESP8266-Boards haben einen Flash-Chip, der mit einigen oder allen GPIO6-GPIO11 verbunden ist. Die meisten Programme verwenden sowohl Flash-Speicher als auch RAM. Wenn Sie also nicht ausdrücklich sicherstellen, dass Ihr Code nur aus dem RAM ausgeführt wird, können Sie diese Pins nicht für andere Zwecke verwenden.

Die genaue Anzahl der verwendeten Pins im Bereich GPIO6 bis GPIO11 hängt von der Art der auf Ihrem Modul verwendeten Flash-Hardware ab. Quad IO verwendet 4 Leitungen für Daten (insgesamt 6 Pins) für eine bis zu 4-fache Geschwindigkeit des Standards. Dual IO verwendet 2 Leitungen für Daten (insgesamt 4 Pins) Standard verwendet eine einzelne Leitung für Daten (insgesamt 3 Pins).

Sofern Sie nicht genau wissen, was Ihr Board benötigt, ignorieren Sie am besten einfach GPIO6 bis GPIO11 und beziehen sich nicht auf sie aus Ihrem Code.

Schritt 2: GPIO0, GPIO2 und GPIO15 Pins

GPIO0, GPIO2 und GPIO15 Pins
GPIO0, GPIO2 und GPIO15 Pins

Diese Pins bestimmen, in welchem Modus der Chip startet.

Für die normale Programmausführung müssen GPIO0 und GPIO2 auf Vcc (3.3V) und GPIO15 auf GND gezogen werden, jeweils mit einem Widerstand im Bereich von 2K bis 10K Widerstand. Ein 2K-Widerstand bietet eine bessere Störfestigkeit. OLIMEX verwendet 2K-Widerstände SparkFun verwendet 10K-Widerstände. Ich verwende 3K3-Widerstände.

Die Einstellungen dieser Eingänge werden nur beim Einschalten (oder Reset) des Chips überprüft. Danach stehen die Pins für den allgemeinen Gebrauch zur Verfügung, aber wie unten diskutiert wird ihre Verwendung durch diese externen Pull-Up/Down-Widerstände eingeschränkt.

Schritt 3: Verwenden von GPIO0, GPIO2 und GPIO15 als Ausgänge

Verwenden von GPIO0, GPIO2 und GPIO15 als Ausgänge
Verwenden von GPIO0, GPIO2 und GPIO15 als Ausgänge

Wie oben erwähnt, haben diese Pins bereits einen Widerstand, der entweder mit VCC (GPIO0 und GPIO2) oder GND für GPIO15 verbunden ist. Dies bestimmt, wie ein externes Gerät, wie ein Relais oder LED+Widerstand, angeschlossen werden muss. Für GPIO0 und GPIO2 muss ein externes Relais zwischen VCC und dem Pin angeschlossen werden, damit es die Wirkung des Pull-Up-Widerstands nicht stört. Umgekehrt muss ein an GPIO15 angeschlossenes externes Relais zwischen GND und dem Pin angeschlossen werden, damit es die Wirkung des Pull-Down-Widerstands nicht stört.

Um das externe Gerät zu aktivieren, muss GPIO0 oder GPIO2 auf LOW (Active LOW) getrieben werden, während GPIO15 auf HIGH (Active HIGH) getrieben werden muss.

Das obige Schema zeigt, wie GPIO0 und GPIO2 und GPIO15 als Ausgänge verwendet werden. Diese Schaltung enthält auch die erforderlichen Pullup/Pulldown-Widerstände. Beachten Sie, dass das von GPIO0 angesteuerte 5V-Relaismodul optoisoliert ist und einen separaten gemeinsamen Anschluss für den Eingang hat. Es ist wichtig, dass die 5V VCCA-Spannung nicht an den ESP8266-Pin angelegt wird.

So programmieren Sie neu, wenn Sie GPIO0 als Ausgang verwenden

Hinweis: GPIO0 muss geerdet werden, um in den Programmiermodus zu gelangen. Wenn Sie skizzieren, kann die Erdung Ihren ESP8266-Chip beschädigen. Der sichere Weg, den ESP8266 neu zu programmieren, wenn Ihr Code den GPIO0-Ausgang steuert, ist:- a) Schalten Sie die Platine aus b) schließen Sie GPIO0 an Masse c) schalten Sie die Platine ein, die aufgrund des Kurzschlusses an GPIO0 in den Programmmodus geht d) Entfernen der Kurzschluss von GPIO0, damit Sie den Ausgang nicht kurzschließen, wenn das Programm ausgeführt wird e) die Platine neu programmieren f) die Platine bei Bedarf aus- und wieder einschalten.

Schritt 4: Verwenden von GPIO0, GPIO2 und GPIO15 als Eingänge

Verwenden von GPIO0, GPIO2 und GPIO15 als Eingänge
Verwenden von GPIO0, GPIO2 und GPIO15 als Eingänge

Die Verwendung dieser Pins als Eingänge ist etwas schwierig. Wie oben beim Einschalten und beim Zurücksetzen erwähnt, müssen diese Pins nach Bedarf nach oben oder unten gezogen werden, damit das ESP8266-Modul im normalen Betriebsmodus startet. Dies bedeutet im Allgemeinen, dass Sie nicht einfach einen externen Schalter an diese Pins anschließen können, da Sie beim Einschalten in der Regel nicht garantieren können, dass der Schalter den Eingang nicht auf Masse zieht und so den korrekten Start des Moduls verhindert.

Der Trick besteht darin, den externen Schalter nicht direkt vom GPIO0 oder GPIO2 mit GND zu verbinden, sondern ihn stattdessen mit einem anderen GPIO-Pin zu verbinden, der erst nach dem Hochfahren des ESP8266 auf Masse (als Ausgang) getrieben wird. Denken Sie daran, dass die GPIO-Pins bei Verwendung als Ausgänge eine sehr niederohmige Verbindung zu VCC oder GND bieten, je nachdem, ob sie HIGH oder LOW angesteuert werden.

Hier werden nur GPIO0 und GPIO2 berücksichtigt. Mit dieser Methode können Sie eine (1) Additionseingabe mit diesen beiden (2) GPIOs erhalten.

Eine ähnliche Methode kann für GPIO15 verwendet werden, indem ein anderer GPIO-Pin verwendet wird, um seinen Schalter mit +VCC zu verbinden, aber dies erhält keinen zusätzlichen Eingang. Sie können auch den anderen GPIO-Pin direkt als Eingang verwenden.

Die obige Schaltung verwendet das Modul ESP8266-01 als Beispiel. Ohne diesen Trick hat der ESP8266-01 keine freien Pins, die als Eingang verwendet werden können, wenn Sie bereits die Pins RX/TX für eine UART-Verbindung verwenden.

Da die setup () -Methode des Sketches erst nach dem Start des ESP8266-Moduls ausgeführt wird, ist es sicher, den GPIO0-Ausgang dann auf LOW zu setzen und so eine Masse für S1 bereitzustellen, die mit GPIO2 verbunden ist. Sie können dann digitalRead(2) an anderer Stelle in Ihrer Skizze verwenden, um die Schaltereinstellung zu lesen.

Abschluss

Dieser kurze Hinweis zeigt, wie Sie GPIO0, GPIO2 und GPIO15 als Ausgänge verwenden und wie Sie einen zusätzlichen Eingang mit GPIO0 und GPIO2 zusammen erhalten.

Empfohlen: