Arduino - Berührungssensor

Berührungssensor (auch Berührungstaste oder Berührungsschalter genannt) wird häufig verwendet, um Geräte zu steuern (z. B. eine berührbare Lampe). Er hat dieselbe Funktion wie ein Knopf. Er wird in vielen neuen Geräten anstelle des Knopfes verwendet, weil er das Produkt optisch ansprechender wirken lässt.

In diesem Tutorial lernen wir, wie man den Berührungssensor mit Arduino verwendet.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Berührungssensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den Berührungssensor

Pinbelegung

Der Berührungssensor hat 3 Anschlüsse:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V oder 3,3 V) verbunden werden
  • SIGNAL-Pin: ist ein Ausgangspin: niedrig, wenn er nicht berührt ist, hoch, wenn er berührt wird. Dieser Pin muss mit dem Eingangspin des Arduino verbunden werden.
Berührungssensor-Pinbelegung

Wie es funktioniert

  • Wenn der Sensor NICHT berührt wird, ist der SIGNAL-Pin des Sensors LOW
  • Wenn der Sensor berührt wird, ist der SIGNAL-Pin des Sensors HIGH

Arduino - Berührungssensor

Der SIGNAL-Pin des Berührungssensors ist mit dem Eingangspin eines Arduino verbunden.

Durch das Auslesen des Zustands des Arduino-Pins (als Eingangspin konfiguriert) können wir feststellen, ob der Berührungssensor berührt wird oder nicht.

Verdrahtungsdiagramm

Arduino-Berührungssensor-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie programmiert man für einen Berührungssensor

  • Initialisiert den Arduino-Pin in den digitalen Eingangsmodus, indem die Funktion pinMode() verwendet wird. Zum Beispiel Pin 7
pinMode(7, INPUT_PULLUP);
  • Liest den Zustand des Arduino-Pins, indem er die Funktion digitalRead() verwendet.
int inputState = digitalRead(7);

※ Notiz:

Es gibt zwei weit verbreitete Anwendungsfälle:

  • Der erste: Wenn der Eingangszustand HIGH ist, tue etwas. Wenn der Eingangszustand LOW ist, tue etwas anderes, und zwar umgekehrt.
  • Der zweite: Wenn sich der Eingangszustand von LOW zu HIGH (oder HIGH zu LOW) ändert, tue etwas.

Je nach Anwendung wählen wir einen von ihnen aus. Zum Beispiel bei der Verwendung eines Touch-Sensors zur Steuerung einer LED:

  • Wenn wir möchten, dass die LED AN ist, wenn der Sensor berührt wird, und AUS, wenn der Sensor nicht berührt wird, sollten wir den ersten Anwendungsfall verwenden.
  • Wenn wir möchten, dass die LED bei jedem Berühren des Sensors zwischen EIN und AUS umgeschaltet wird, sollten wir den zweiten Anwendungsfall verwenden.
  • Wie man die Zustandsänderung von LOW zu HIGH erkennt
// Konstanten ändern sich nicht. Sie werden hier verwendet, um Pin-Nummern festzulegen: const int SENSOR_PIN = 7; // der Arduino-Eingangspin, der mit dem SIGNAL-Pin des Sensors verbunden ist // Variablen ändern sich: int lastState = LOW; // der vorherige Zustand vom Eingangspin int currentState; // der aktuelle Zustand vom Eingangspin void setup() { // Initialisiere serielle Kommunikation mit 9600 Bit pro Sekunde: Serial.begin(9600); // initialisiere den Pin des Arduino als Eingangspin pinMode(SENSOR_PIN, INPUT); } void loop() { // lese den Zustand des Eingabepins: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); // speichere den letzten Zustand lastState = currentState; }

Berührungssensor - Arduino-Code

Wir werden vier Beispielcodes ausführen:

  • Liest den Wert des Berührungssensors aus und gibt ihn im Serial Monitor aus.
  • Steuert die LED entsprechend dem Zustand des Berührungssensors.
  • Erkennt, ob der Berührungssensor berührt oder losgelassen ist.
  • Schaltet die LED um, wenn der Berührungssensor berührt wird (dies ist am häufigsten verwendet).

Liest den Wert des Touch-Sensors aus und gibt ihn im Serial Monitor aus

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-touch-sensor */ // Konstanten ändern sich nicht. Sie werden hier verwendet, um Pin-Nummern festzulegen: const int SENSOR_PIN = 7; // der Arduino-Eingangspin, der mit dem SIGNAL-Pin des Sensors verbunden ist void setup() { // Serielle Kommunikation mit 9600 Bit/s initialisieren: Serial.begin(9600); // Initialisiere den Arduino-Pin als Eingang pinMode(SENSOR_PIN, INPUT); } void loop() { // Lese den Zustand des Eingangspins aus: int state = digitalRead(SENSOR_PIN); // Zustand über den Serial Monitor ausgeben Serial.println(state); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Berühren Sie den Sensor mit Ihrem Finger und heben Sie ihn anschließend wieder ab.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

LED gemäß dem Zustand des Sensors steuern

Wenn der Sensor berührt wird, schalte die LED ein. Wenn der Sensor nicht berührt wird, schalte die LED aus.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-touch-sensor */ // Konstanten ändern sich nicht. Sie werden hier verwendet, um Pin-Nummern festzulegen: const int SENSOR_PIN = 7; // Der Arduino-Eingangspin, der mit dem SIGNAL-Pin des Sensors verbunden ist void setup() { // Initialisiere die serielle Kommunikation mit 9600 Bits pro Sekunde: Serial.begin(9600); // Initialisiere den Pin des Arduino als Eingang pinMode(SENSOR_PIN, INPUT); // Initialisiere den digitalen Pin LED_BUILTIN als Ausgang. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // Lies den Zustand des Eingangspins aus: int state = digitalRead(SENSOR_PIN); // Steuere die LED entsprechend dem Zustand des Sensors digitalWrite(LED_BUILTIN, state); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Berühren Sie den Sensor mit Ihrem Finger und halten Sie ihn gedrückt.
  • Siehe LED-Zustand ⇒ Die LED sollte eingeschaltet sein.
  • Heben Sie Ihren Finger vom Sensor ab.
  • Siehe LED-Zustand ⇒ Die LED sollte ausgeschaltet sein.

Erkennt, ob der Sensor berührt oder losgelassen wird

// Konstanten ändern sich nicht. Sie werden hier verwendet, um Pin-Nummern festzulegen: const int SENSOR_PIN = 7; // der Eingangspin des Arduino, der mit dem SIGNAL-Pin des Sensors verbunden ist // Variablen werden geändert: int lastState = LOW; // der vorherige Zustand vom Eingangspin int currentState; // der aktuelle Zustand vom Eingangspin void setup() { // Serielle Kommunikation mit 9600 Bits pro Sekunde initialisieren: Serial.begin(9600); // Initialisiere den Arduino-Pin als Eingang pinMode(SENSOR_PIN, INPUT); } void loop() { // lese den Zustand des Eingangs-Pins aus: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); else if(lastState == HIGH && currentState == LOW) Serial.println("The sensor is is released"); // speichere den letzten Zustand lastState = currentState; }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Berühren Sie den Sensor mit Ihrem Finger und halten Sie ihn darauf.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Lösen Sie Ihren Finger vom Sensor.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
The sensor is touched The sensor is is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Schaltet die LED um, wenn der Sensor berührt wird.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-touch-sensor */ // Konstanten ändern sich nicht. Sie werden hier verwendet, um Pin-Nummern festzulegen: const int SENSOR_PIN = 7; // der Arduino-Eingangspin, der mit dem SIGNAL-Pin des Sensors verbunden ist // Variablen werden sich ändern: int lastState = LOW; // der vorherige Zustand vom Eingangspin int currentState; // der aktuelle Zustand des Eingangspins int ledState = LOW; // der aktuelle LED-Zustand void setup() { // Serielle Kommunikation mit 9600 Bit/s initialisieren: Serial.begin(9600); // initialisiere den Arduino-Pin als INPUT pinMode(SENSOR_PIN, INPUT); // Initialisiere den digitalen Pin LED_BUILTIN als OUTPUT. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // lese den Zustand des Eingangspins aus: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH){ // LED-Zustand umschalten if(ledState == LOW) ledState = HIGH; else if(ledState == HIGH) ledState = LOW; // LED steuern digitalWrite(LED_BUILTIN, ledState); } // speichere den letzten Zustand lastState = currentState; }

Schnelle Schritte

  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE.
  • Klicke in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf Arduino hochzuladen.
  • Lege deinen Finger auf den Sensor und lasse los.
  • Sieh dir den LED-Status an ⇒ Die LED sollte eingeschaltet sein.
  • Lege deinen Finger auf den Sensor und lasse los.
  • Sieh dir den LED-Status an ⇒ Die LED sollte ausgeschaltet sein.
  • Lege deinen Finger auf den Sensor und lasse los.
  • Sieh dir den LED-Status an ⇒ Die LED sollte eingeschaltet sein.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!