| Touchsensoren des ESP32Berührungssensoren kann man zu Testzwecken sehr leicht mithilfe von Reißzwecken konstruieren. Der ESP32 stellt für diverse Experimente und Projekte zehn interne Touchsensoren zur Verfügung. Diese Touch Pins
des Mikrocontrollers reagieren auf Kapazitäten, wie z.B. menschliche Haut, die ebenfalls eine Kapazität darstellt. In dem Fall,
dass die ESP32-Lösung zuverlässig arbeitet, kann man auf mechanische Taster und Schalter verzichten. Die Berührungssensoren, das
ist ein der Unterschiede zu den mechanischen Schalter, arbeiten prellfrei. Die Funktionalität beruht auf Messung der Kapazität
zwischen dem Sensor und der Umgebung. Bei Berührung mit z.B. einem Finger verändert sie sich, kann gemessen und schließlich für
Steuerungsvorgänge angewendet werden. Folgende GPIOs können als kapazitive Sensoren genutzt werden:
Pinout des ESP32 (Touchsensoren). Auf dem Pinout sind die Touch fähige Pins grün gekenzeichnet. BeispielDie Funktionalität des Touchsystems des ESP32 kann man an einem praktischen Beispiel erläutern. An dem kleinen Experiment
nehmen eine RGB-Leuchtiode, drei Widerstände und drei Reißzwecken teil.
Der SchaltplanSchaltplan Die TestschaltungTestschaltung Das Programm// *************************************************************************************// ESP32 // Touch-Sensoren des ESP32 // ESP32-Dev-KitC V4 // Arduino IDE 1.8.19 // ************************************************************************************* int Touch_Messwert; int Touch_LED_Tabelle [3][4] = { { 14, 23, 0, 0 }, // Touch GPIO, LED GPIO, LOW-HIGH, Status { 12, 22, 0, 0 }, { 13, 21, 0, 0 } }; // *********************************************************************************** void setup() { for (int i=0; i<3; i++) { pinMode (Touch_LED_Tabelle [i][1], OUTPUT); } } // *********************************************************************************** void loop() { for (int i=0; i<3; i++) { int Touch_Messwert = touchRead(Touch_LED_Tabelle [i][0]); delay(50); if ((Touch_Messwert < 15) and (not Touch_LED_Tabelle [i][3])) { Touch_LED_Tabelle [i][3] = true; Touch_LED_Tabelle [i][2] = !Touch_LED_Tabelle [i][2]; digitalWrite(Touch_LED_Tabelle [i][1], Touch_LED_Tabelle [i][2]); } if ((Touch_Messwert > 20) and (Touch_LED_Tabelle [i][3])) { Touch_LED_Tabelle [i][3] = false; } } } // *********************************************************************************** Die Aufgabe des Programms ist schnell erklärt. Die drei Reißzwecke-Sensoren werden kontinuierlich in einer
For-Schleife abgefragt. Sobald eine Finger-Berührung erkannt wird, wird die zugehörige farbige Leuchtdiode der RGB-Leuchtdiode geschaltet.
Dabei handelt es sich um eine UM-Funktion. War die LED AUS, wird sie eingeschaltet. War sie AN, wird sie abgeschaltet. Auf diese
Weise kann man der RGB-Leuchtdiode manuell sieben Farbtöne verpassen.
// ESP32 (serielle Ausgabe) // Touch-Sensoren des ESP32 // ESP32-Dev-KitC V4 // Arduino IDE 1.8.19 // ************************************************************************************* int Touch_Messwert; int Touch_LED_Tabelle [3][4] = { { 14, 23, 0, 0 }, // Touch GPIO, LED GPIO, LOW-HIGH, Status { 12, 22, 0, 0 }, { 13, 21, 0, 0 } }; // *********************************************************************************** void setup() { for (int i=0; i<3; i++) { pinMode (Touch_LED_Tabelle [i][1], OUTPUT); } Serial.begin (57600); } // *********************************************************************************** void loop() { for (int i=0; i<3; i++) { int Touch_Messwert = touchRead(Touch_LED_Tabelle [i][0]); Serial.print("Aktuelle Messung Touchsensor GPIO: "); Serial.print(Touch_LED_Tabelle [i][0]); Serial.print(" Messergebnis: "); Serial.println(Touch_Messwert); delay(50); if ((Touch_Messwert < 15) and (not Touch_LED_Tabelle [i][3])) { Serial.println("Betätigt"); Touch_LED_Tabelle [i][3] = true; Touch_LED_Tabelle [i][2] = !Touch_LED_Tabelle [i][2]; digitalWrite(Touch_LED_Tabelle [i][1], Touch_LED_Tabelle [i][2]); } if ((Touch_Messwert > 20) and (Touch_LED_Tabelle [i][3])) { Touch_LED_Tabelle [i][3] = false; } } } // ***********************************************************************************
|
Google-Suche auf MEINE-SCHALTUNG.de : |