GPIO (General Purpose Input/Output) begegnet Einsteigern bei der ersten LED und beim ersten Taster. Wer pinMode überspringt, wundert sich später über einen Taster, der scheinbar ohne Berührung schaltet.
GPIO sind Pins, die per Software als digitaler Eingang oder als digitaler Ausgang eingestellt werden. Physisch ist ein Pin nur eine Metallfläche mit Anschluss innen. Mit pinMode(PIN, OUTPUT) wird er zum Ausgang erklärt, mit pinMode(PIN, INPUT) zum Eingang; erst danach sind digitalWrite und digitalRead sinnvoll nutzbar.
In setup() steht pinMode(2, OUTPUT); danach schaltet digitalWrite(2, HIGH) in loop() den Pin beim ESP32 auf 3,3 V und lässt eine LED leuchten, deren Strom ein Vorwiderstand begrenzt. Für einen Taster an Pin 4 passt pinMode(4, INPUT_PULLUP): Der interne Pull-up-Widerstand zieht den Eingang auf High, der Taster zieht ihn gegen Masse (GND). Dann liefert digitalRead(4) HIGH oder LOW, und eine if-Bedingung reagiert auf den Druck. digitalWrite(PIN, LOW) setzt den Ausgang auf 0 V, also auf Masse.
Verwechselt wird der Pin-Modus gern mit dem Signalwert. OUTPUT oder INPUT sagt, in welche Richtung der Pin arbeitet; HIGH und LOW sind die Zustände, die gelesen oder gesetzt werden. Ein offener Eingang ohne Pull-up oder Pull-down ist floating, sein Pegel ist zufällig.
Ein GPIO ist nicht fest verdrahtet, sondern erst durch pinMode Eingang oder Ausgang. digitalWrite schreibt, digitalRead liest – pinMode entscheidet.
📌 pinMode · digitalWrite/digitalRead · Pull-up
📚 IoT von Grund auf · Tag 2 von 30
#esp32 #Mikrocontroller #embedded