Arduino UNO Q - Schalter (EIN/AUS Umschalter)
Ein EIN/AUS-Schalter (auch Umschalter genannt) behält seine Position bei, wenn er umgelegt wird — im Gegensatz zu einem Druckknopf, der nur beim Halten aktiviert wird. In diesem Tutorial lernen Sie, wie Sie den Zustand eines EIN/AUS-Schalters mit Arduino UNO Q lesen, erkennen, wenn er umgeschaltet wird, und seinen Zustand remote über Telegram überprüfen.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den EIN/AUS-Schalter
Pinbelegung
Die meisten gängigen EIN/AUS-Schalter haben zwei Anschlüsse — es spielt keine Rolle, welcher Anschluss wo verbunden wird.

Funktionsweise
- Verbinden Sie einen Anschluss mit GND und den anderen mit einem Arduino UNO Q Pin, der als INPUT_PULLUP konfiguriert ist
- Schalter ist EIN → Pin liest LOW
- Schalter ist AUS → Pin liest HIGH
※ Notiz:
Wie ein Druckknopf benötigt auch ein EIN/AUS-Schalter Entprellung. Die ezButton Bibliothek behandelt die Entprellung intern, daher ist kein zusätzlicher Code erforderlich.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wir empfehlen, Drähte an die Schalterkontakte zu löten und die Verbindungen mit Schrumpfschlauch abzudecken, um eine zuverlässige und langlebige Verbindung zu gewährleisten.
MCU-Code — EIN/AUS-Schalter
Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (verwaltet die Echtzeit-Hardwaresteuerung) und die Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Die ezButton Bibliothek behandelt sowohl die Entprellung als auch das Auslesen des Zustands. Verwenden Sie isPressed(), um den AUS→EIN-Übergang zu erkennen, und isReleased() für EIN→AUS:
※ Notiz:
Zwei häufige Anwendungsfälle:
- Ebenenbasiert: Überprüfen Sie getState() == LOW, um zu wissen, ob der Schalter derzeit EIN ist.
- Kantenbasiert: Verwenden Sie isPressed() für AUS→EIN und isReleased() für EIN→AUS-Übergänge.
Schnelle Schritte
- Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Getting Started with Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Schalter verdrahten: Verbinden Sie einen Anschluss mit GND und den anderen mit Pin 7 gemäß dem Schaltplan.
- Verbinden: Stecken Sie den Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer.
- Arduino App Lab öffnen: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
- Neue App erstellen: Klicken Sie auf die Schaltfläche Create New App.

- Geben Sie der App einen Namen, z. B.: DIYables_Switch
- Klicken Sie auf Create, um zu bestätigen.
- Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert werden.

- Finden Sie die sketch/sketch.ino Datei — hier werden Sie die MCU-Skizze einfügen.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for ezButton created by ArduinoGetStarted.com and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie auf die Schaltfläche Run in Arduino App Lab, um zu kompilieren und auf den STM32 hochzuladen.

- Schalter umschalten zwischen EIN und AUS. Der Schalterzustand und die Übergänge werden im nächsten Abschnitt über den Bridge Monitor protokolliert.
- Pro-Tipp: Fügen Sie Ihren eigenen Code in jeden Block ein — z. B. LED einschalten, wenn der Schalter EIN ist, und ausschalten, wenn AUS.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, führt Debian Linux aus) und der MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren über RPC über die Arduino_RouterBridge Bibliothek — niemals über rohe serielle Anschlüsse.
- Der Schalter ist mit der MCU (STM32) verbunden — an einem digitalen Eingangspin des STM32 verdrahtet. Der MCU liest und entprellt den Schalter mit der ezButton Bibliothek.
- Die MPU kann den Schalter nicht direkt lesen — sie muss den Zustand vom MCU über Bridge.call() anfordern. Der MCU antwortet sofort.
- Die MPU hat Wi-Fi — Da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie den Schalterzustand auf Anfrage über Telegram melden.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide() Funktionen auf der MCU-Seite auf
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie sie niemals direkt
Kurz gesagt: MPU fordert Schalterzustand an → MCU liest Pin → MCU meldet EIN oder AUS → MPU protokolliert oder leitet weiter.
MCU-Skizze — Schalter mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — Schalterzustand von Linux abrufen:
- Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen wird, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
- ⚠️ Warnung: Öffnen Sie niemals direkt /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code — diese sind vom Arduino Router reserviert und der Zugriff darauf bricht die Bridge.
Schnelle Schritte
- MCU-Skizze hochladen: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie die obige Bridge MCU-Skizze in sketch/sketch.ino ein, installieren Sie die Bibliotheken ezButton und Arduino_RouterBridge, und klicken Sie auf Run.
- Python-Skript hinzufügen: Fügen Sie den obigen Python-Code in den Python-Tab derselben App ein.
- App ausführen: Klicken Sie auf Run — die Python-Seite fragt den Schalterzustand alle 2 Sekunden ab.
- Schalter umschalten zwischen EIN und AUS.
- Konsole überprüfen: Öffnen Sie die Registerkarte Konsole → Unterregisterkarte MCU Monitor, um Übergänge in Echtzeit protokolliert zu sehen.
App Lab-Konsolenausgabe
Telegram-Integration
Überprüfen Sie den aktuellen Schalterzustand remote von überall über Telegram.
Wenn Sie noch keinen Telegram-Bot haben, lesen Sie How to Create a Telegram Bot, um Ihr Bot-Token vor dem Fortfahren zu erhalten.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits auf den STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für Schalterzustand:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
- Senden Sie /state, um zu überprüfen, ob der Schalter derzeit EIN oder AUS ist.
Schnelle Schritte
- MCU-Skizze hochladen: Verwenden Sie die Bridge MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls noch nicht geschehen).
- Telegram-Skript einfügen: Kopieren Sie den obigen Python-Code in den Python-Tab Ihrer App in Arduino App Lab.
- Token setzen: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
- App ausführen: Klicken Sie auf Run — der Bot beginnt, auf Telegram-Nachrichten zu warten.
- Testen Sie es: Schalter auf EIN, dann senden Sie /state — bestätigen Sie, dass es „EIN" anzeigt.
App Lab-Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können den OpenClaw für dieses Tutorial anpassen, indem Sie auf die Anleitung im Tutorial Arduino Uno Q - OpenClaw verweisen.
Anwendungs-/Projektideen
- Telegram-gemeldeter Moduswechsel: Verwenden Sie einen physischen Schalter, um zwischen zwei Betriebsmodi umzuschalten — überprüfen Sie den aktiven Modus über Telegram
- Monitor für Ferngeräte: Verdrahten Sie einen Schalter mit einem Relais, das ein Gerät steuert — überprüfen Sie den EIN/AUS-Status remote
- Sicherheitstor: Schalter umschalten, um einen sensorgestützten Alarm zu aktivieren oder deaktivieren — Telegram meldet den aktuellen bewaffneten Zustand
- Laborbank-Stromversorgung: Verwenden Sie den Schalter, um einen Satz von Ausgängen zu aktivieren/deaktivieren — Monitor von Telegram
- Smart-Home-Auslöser: Schalter umschalten, um eine geplante Aufgabe zu starten oder zu stoppen, die auf der Linux-Seite der MPU ausgeführt wird
Fordern Sie sich selbst heraus
- Einfach: Fügen Sie eine LED zum Stromkreis hinzu, die aufleuchtet, wenn der Schalter EIN ist, und ausgeht, wenn EIN aus ist
- Mittel: Erweitern Sie die Bridge-Skizze, um zu verfolgen, wie oft der Schalter umgeschaltet wurde, und machen Sie die Anzahl über get_toggle_count() verfügbar
- Fortgeschritten: Erstellen Sie einen Telegram-Bot, der automatisch eine Nachricht sendet, wenn sich der Schalterzustand ändert — verwenden Sie eine Überwachungsschleife im Hintergrund in Python