Arduino UNO Q - Berührungssensor

Ein Berührungssensor funktioniert wie eine digitale Taste — er gibt HIGH aus, wenn er berührt wird, und LOW, wenn er nicht berührt wird. Auf Arduino UNO Q können Sie Berührungen lokal auf der MCU überwachen oder den Bridge-Modus verwenden, um Berührungsereignisse von der Linux-Seite aus via Telegram zu erkennen und darauf zu reagieren.

In diesem Tutorial lernen Sie:

Arduino UNO Q Berührungssensor

Erforderliche Hardware

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Berührungssensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for 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 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 drei Stifte:

  • GND: Mit GND (0V) verbinden
  • VCC: Mit 3,3V oder 5V verbinden
  • SIGNAL: Digitaler Ausgang — gibt LOW aus, wenn nicht berührt, HIGH, wenn berührt. Mit einem digitalen Pin auf Arduino UNO Q MCU verbinden.
Berührungssensor Pinbelegung

Funktionsweise

  • Wenn der Sensor nicht berührt ist, ist der SIGNAL-Pin LOW
  • Wenn der Sensor berührt wird, ist der SIGNAL-Pin HIGH

Der Berührungssensor verhält sich genau wie eine kurzzeitige Drucktaste — er kann mit digitalRead() ausgelesen und benötigt keine Bibliothek.

Schaltplan

Arduino UNO Q Berührungssensor Schaltplan

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

Berührungssensor-Pin Arduino UNO Q MCU
GND GND
VCC 3.3V
SIGNAL D7

Programmierung für Berührungssensor

  • Richten Sie den Arduino UNO Q MCU-Pin als digitalen Eingang ein:
pinMode(SENSOR_PIN, INPUT);
  • Lesen Sie den Sensorzustand:
int state = digitalRead(SENSOR_PIN);
  • Überprüfen und reagieren Sie:
if (state == HIGH) Serial.println("Touched"); else Serial.println("Not touched");

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Die STM32 MCU liest den Berührungssensor direkt via digitalen Pin — alle Sensordaten laufen auf der MCU
  • Die Qualcomm MPU führt Debian Linux aus und verwaltet Wi-Fi, Python und Cloud-Konnektivität
  • In diesem Abschnitt wird nur die MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren via Bridge zusammenarbeiten.

Die MCU liest den Berührungssensor alle 500ms und gibt den Zustand an den Serial Monitor aus.

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-touch-sensor */ #define SENSOR_PIN 7 void setup() { Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); Serial.println("Arduino UNO Q Touch Sensor ready"); } void loop() { int state = digitalRead(SENSOR_PIN); if (state == HIGH) Serial.println("Touched"); else Serial.println("Not touched"); delay(500); }

Schnelle Schritte

Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, bevor Sie fortfahren.

  • Verdrahten: Verbinden Sie den Berührungssensor wie im Schaltplan dargestellt mit Arduino UNO Q MCU.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihre Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.
Neue App im Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, zum Beispiel: TouchSensor
  • Klicken Sie auf Erstellen, um zu bestätigen.
Arduino App Lab App-Ordner und -Dateien auf Arduino UNO Q
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien wie in der Standardeinstellung.
  • Keine Bibliothek erforderlich — der Berührungssensor verwendet nur die eingebaute digitalRead()-Funktion.
  • Upload: Klicken Sie auf die Ausführungsschaltfläche in Arduino App Lab.
Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab auf Arduino UNO Q
  • Halten Sie Ihren Finger auf den Sensor und beobachten Sie den Serial Monitor.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Touch Sensor ready [2026-04-29 09:00:02] Not touched [2026-04-29 09:00:02] Not touched [2026-04-29 09:00:03] Touched [2026-04-29 09:00:03] Touched [2026-04-29 09:00:04] Not touched

Bridge: Linux + MCU

Dieser Abschnitt zeigt, wie beide Prozessoren des Arduino UNO Q programmiert werden, damit die Linux-Seite Berührungsereignisse via Bridge erkennen kann:

  • Der Berührungssensor ist mit dem MCU-Digitalpin verbunden — die MCU überwacht Zustandsänderungen in loop() und setzt ein Ereignisflag, wenn berührt
  • Die MPU kann den Digitalpin nicht direkt lesen — sie ruft Bridge-Funktionen auf, um den aktuellen Zustand abzufragen oder das Berührungsereignis zu verbrauchen
  • Die MPU hat Wi-Fi — mit vollständigem Debian Linux kann sie auf Berührungsereignisse reagieren und Telegram-Benachrichtigungen senden
  • Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT für den Router — öffnen Sie sie niemals im Benutzercode

Kurz gesagt: MCU erkennt Berührungsereignisse in loop() → MPU fragt via Bridge ab → MPU löst Aktionen über Wi-Fi aus.

MCU-Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-touch-sensor */ #include "Arduino_RouterBridge.h" #define SENSOR_PIN 7 int last_state = LOW; bool touch_event = false; String get_state(String arg) { return (last_state == HIGH) ? "touched" : "not_touched"; } String get_event(String arg) { if (touch_event) { touch_event = false; return "touched"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(SENSOR_PIN, INPUT); Bridge.provide("get_state", get_state); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q Touch Sensor Bridge ready"); } void loop() { int state = digitalRead(SENSOR_PIN); if (state != last_state) { last_state = state; if (state == HIGH) { touch_event = true; Monitor.println("Touch detected!"); } else { Monitor.println("Touch released."); } } }

Python-Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-touch-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Touch state: {state}") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Verdrahten: Verbinden Sie den Berührungssensor wie im Schaltplan dargestellt mit Arduino UNO Q.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis die Platine erkannt wird.
  • Erstellen Sie eine neue App: Klicken Sie auf Neue App erstellen, nennen Sie sie TouchSensorBridge, und klicken Sie auf Erstellen.
  • Fügen Sie die MCU-Skizze ein: Kopieren Sie den MCU Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
  • Fügen Sie den Python-Code ein: Kopieren Sie den Python Bridge-Code oben und fügen Sie ihn in die Python-Datei der App ein.
  • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Add sketch library in Arduino App Lab on Arduino UNO Q
  • Search for Arduino_RouterBridge created by Arduino and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
Arduino_RouterBridge Arduino

This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

0.4.1
Install
More Info
  • Upload: Klicken Sie auf die Ausführungsschaltfläche in Arduino App Lab.
Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab auf Arduino UNO Q
  • Berühren Sie den Sensor und beobachten Sie, wie die Python-Konsole die Zustandsänderung meldet.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-04-29 09:00:01] Arduino UNO Q Touch Sensor Bridge ready [2026-04-29 09:00:03] Touch detected! [2026-04-29 09:00:04] Touch released.
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Touch state: not_touched [2026-04-29 09:00:02] Touch state: not_touched [2026-04-29 09:00:03] Touch state: touched [2026-04-29 09:00:04] Touch state: not_touched

Telegram

Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn der Berührungssensor aktiviert wird.

MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.

Python-Code (Telegram)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q 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-uno-q/arduino-uno-q-touch-sensor */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 last_notified_state = "not_touched" def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): global last_notified_state # Auto-notify on touch event event = Bridge.call("get_event") if event == "touched" and last_notified_state != "touched": last_notified_state = "touched" msg = "👆 Touch sensor touched!" print(msg) send_message(CHAT_ID, msg) elif event == "none": state = Bridge.call("get_state") if state == "not_touched": last_notified_state = "not_touched" # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Touch Sensor Bot\n" "/state - Read current touch sensor state\n" "/event - Check if a touch event occurred") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Touch state: {result}") elif text == "/event": result = Bridge.call("get_event") send_message(chat_id, f"Touch event: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihr tatsächliches Bot-Token von BotFather.
  • Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
  • Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze).
  • Klicken Sie auf die Ausführungsschaltfläche. Berühren Sie den Sensor und überprüfen Sie Telegram auf die Benachrichtigung.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:00] Waiting for Telegram messages... [2026-04-29 09:10:05] 👆 Touch sensor touched! [2026-04-29 09:10:22] Received: /state
Telegram
Telegram 12:45
Welcome to Telegram!
ArduinoBot 10:19
Chatting with Arduino...
telegram-botfather
BotFather Yesterday
Your bot has been created.

ArduinoBot

bot
Today
/state
10:15 AM ✓✓
Touch state: not_touched
10:16 AM
/event
10:17 AM ✓✓
Touch event: none
10:18 AM
👆 Touch sensor touched!
10:19 AM

OpenClaw

You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial

Projektideen

Sie können viele nützliche Projekte mit dem Berührungssensor und Arduino UNO Q erstellen:

  • Berührbare intelligente Lampe: Berühren Sie den Sensor, um eine LED oder ein Relais via Bridge umzuschalten — die MPU verwaltet die Umschaltlogik und protokolliert jede Berührung mit einem Zeitstempel
  • Türklingel: Platzieren Sie den Berührungssensor in der Nähe eines Türrahmens — wenn berührt, gibt die MPU eine Sounddatei ab oder sendet eine Telegram-Benachrichtigung, um Sie auf einen Besucher hinzuweisen
  • Geheimer Klopf-Zähler: Zählen Sie aufeinanderfolgende Berührungen innerhalb von 3 Sekunden via Python-Logik — wenn die Anzahl einem vordefinierten Muster entspricht, löst Bridge ein Entsperr-Relais aus
  • Präsenzaktivierte Anzeige: Berühren Sie den Sensor, um ein OLED-Display zu aktivieren — die MCU schaltet das Display via Bridge beim ersten Berührung ein und nach 10 Sekunden Inaktivität aus
  • Laborsicherheitsbestätigung: Erfordern Sie eine Berührungsbestätigung vor einer Bridge-Befehl, um ein High-Power-Relais zu aktivieren — die Python-Seite überprüft get_event(), bevor das Steuersignal gesendet wird

Fordern Sie sich selbst heraus

Möchten Sie mit dem Berührungssensor auf Arduino UNO Q noch weiter gehen? Versuchen Sie diese Herausforderungen:

  • Einfach: Zählen Sie die Anzahl der Berührungen seit dem Start und geben Sie die Anzahl via eine get_count(String) Bridge-Funktion frei — die Python-Seite gibt die Anzahl jedes Mal aus, wenn sie sich erhöht.
  • Mittel: Implementieren Sie einen Doppeltipp-Detektor: Die MCU zeichnet Berührungszeitstempel auf und setzt ein double_tap-Flag, wenn zwei Berührungen innerhalb von 500ms auftreten — die Python-Seite ruft dies via get_event() auf und sendet eine Telegram-Benachrichtigung.
  • Fortgeschritten: Erstellen Sie eine berührungsbasierte Morsecode-Eingabe: Die MCU unterscheidet zwischen kurzen Berührungen (Punkt) und langen Berührungen (>500ms, Strich) — die Python-Seite dekodiert die Sequenz und sendet den dekodierten Buchstaben an Telegram.

Verwandte Tutorials

※ 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!