Hallo zusammen,
heute will ich kurz zeigen wie man die Touch Pins des ESP32 Dev Board C nutzt.
Sicher kennen einige von Ihnen die Nachttischlampen die man durch Berührung des Metalls ein- und ausschalten kann, unsere Touch-Panels für Arduino & Co oder den neuen Bodenfeuchtesensor . Diese arbeiten, genau wie die meisten Touch-Display kapazitiv, d.h. anhand einer Veränderung der Kapazität. Am anschaulichsten wird dieses Prinzip beim Drehkondesators verdeutlicht:
Durch die Änderung der Überlappung verändert sich auch die Kapazität. Kapazitive Sensoren gibt es in den unterschiedlichsten Ausführungen und für die unterschiedlichsten Funktionen. Um das an einem ESP zu testen brauchen wir:
- ESP32 Dev Board C
- 1x LED
- Jumper Wire M-F
Die Komponenten schließen wir nach Tabelle an:
ESP32 | LED |
GND | - |
G2 | + |
G4 |
Das Jumperkabel befestigen wir lose auf Pin G4 des ESP.
In unserem PinOut sehen wir welche Pins mit Touch funktionieren, hier ein Ausschnitt:
Der dazugehörige Sketch:
#define TOUCH_PIN 4 //Für Touch: 2, 4, 12, 13, 14, 15, 27 #define LED 2 int touch_value = 100; void setup(){ Serial.begin(9600); Serial.println("Touch Test"); pinMode(LED, OUTPUT); digitalWrite (LED, LOW); } void loop(){ touch_value = touchRead(TOUCH_PIN); Serial.println(touch_value); if (touch_value < 50) { digitalWrite (LED, HIGH); } else { digitalWrite (LED, LOW); } delay(1000); }
Die BUILDIN_LED kann für dieses Beispiel nicht genutzt werden, da der serielle Monitor in Verwendung ist und das Dev Board nur eine Onboard LED hat.
Bis zum nächsten Beitrag :)
5 comments
Dennis S.
" Mit einer maximalen Stromaufnahme von 25mA sind die GPIOs save" ???
Bei LED´s wird nicht Imax sondern IB angegeben, also nicht die maximale Stromaufnahme, sondern der maximale Betriebsstrom. Aufgrund der Halbleitereigenschaften der LED zieht diese Strom bis zum Selbstmord oder der GPIO Port gibt auf. Es ist also gar nichts “save”.
Holger hat hier vollkommen recht: Keine LED an GPIOs ohne Vorwiderstand !!!
Moritz
Vielen Dank für die Rückmeldung. Ich finde es sollte jeder selbst entscheiden, ob er Zeit damit verbringt Widerstände zu verlöten. Im Vergleich zu meiner Arbeitszeit ist es deutlich günstiger LEDs zu verbraten. Mit einer maximalen Stromaufnahme von 25mA sind die GPIOs save
Holger
Ergänzung
Eine LED benötigt immer! einen Vorwiederstand, wenn sie nicht aus einer Konstantstromquelle ( Iconst =<I Led max) betrieben wird. Leider hat das der Autor des Beitrages übersehen. Der maximale Ausgangsstrom der GIPO wird mit 40mA angegeben, es sind keine Konstantstromausgänge. Der Betrieb ohne Vorwiederstand führt dazu, das nach einiger Zeit entweder die LED oder der GIPO defekt sind (wie im Beitrag oben richtig bemerkt). Wer nicht rechnen will:
Mit einem 100 Ohm Widerstand ist man bei Uv =3,3V immer auf der sicheren Seite.
Andreas
Weiße LED schon. Ein paar Minuten leben alle :-)
Eine Blaue wie auf dem Bild geht schon mal kurz zum testen, nach ein paar Stunden gibts die auch auf.
Ich hab für Tests immer ein paar aufm Tisch liegen, bei denen der richtige Vorwiderstand bereits angelötet ist.
Für Faule: https://www.elektronik-kompendium.de/sites/bau/1109111.htm
Volker Henn
Kann eine LED am ESP32 gefahrlos OHNE Vorwiederstand betrieben werden?