Arduino UNO Q - Schaltfläche steuert LED
Dieses Tutorial zeigt, wie Sie eine Schaltfläche verwenden, um eine LED mit Arduino UNO Q zu steuern. Zwei Anwendungen werden behandelt:
Anwendung 1 — LED folgt dem Tastenzustand:
- LED schaltet sich ein, wenn die Taste gedrückt wird
- LED schaltet sich aus, wenn die Taste losgelassen wird
Anwendung 2 — LED schaltet sich bei jedem Tastendruck um:
- Jedes Drücken der Taste schaltet die LED zwischen EIN und AUS um
- Das Loslassen der Taste ändert den LED-Zustand nicht
- Enthält Versionen mit und ohne Entprellungskontakt (mit ezButton)

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
Verdrahtungsschema

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Anwendung 1 — LED folgt dem Tastenzustand
MCU-Code
Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (übernimmt die Echtzeit-Hardwaresteuerung) und den 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.
Wenn die Taste gedrückt wird (LOW), schaltet sich die LED ein. Wenn sie losgelassen wird (HIGH), schaltet sich die LED aus:
Schnelle Schritte
- Erstes Mal mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q Tutorial, um Ihre Entwicklungsumgebung einzurichten, bevor Sie fortfahren.
- Verdrahten Sie die Komponenten: Verbinden Sie die Taste mit Pin 7 und die LED (mit 220-Ohm-Widerstand) mit Pin 3 gemäß dem Verdrahtungsschema.
- Verbindung herstellen: Schließen Sie den Arduino UNO Q mit einem USB-C-Kabel an Ihren Computer an.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
- Neue App erstellen: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, zum Beispiel: DIYables_ButtonLED
- Klicken Sie auf Erstellen, um zu bestätigen.
- Sie werden einen Satz von Ordnern und Dateien sehen, die in Ihrer neuen App generiert werden.

- Finden Sie die Datei sketch/sketch.ino — hier werden Sie die MCU-Skizze einfügen.

- Drücken Sie die Taste und halten Sie sie gedrückt — die LED sollte sich einschalten. Lassen Sie sie los — die LED sollte sich ausschalten.
Anwendung 2 — LED schaltet sich bei jedem Tastendruck um
MCU-Code — Ohne Entprellungskontakt
Diese Version erkennt einen HIGH→LOW-Übergang und schaltet die LED um. Ohne Entprellungskontakt können schnelle Kontaktprellungen mehrere Umschaltungen pro Tastendruck verursachen:
Schnelle Schritte
- Verwenden Sie die gleiche Verdrahtung und App aus Anwendung 1.
- Ersetzen Sie die Skizze durch den obigen Code und klicken Sie auf "Ausführen".
- Drücken Sie die Taste mehrmals und lassen Sie sie los — die LED sollte sich jedes Mal umschalten.
- Sie können ein unregelmäßiges Verhalten (doppeltes Umschalten) bemerken — dies ist auf Tastenprellung zurückzuführen.
MCU-Code — Mit Entprellungskontakt (mit ezButton)
Die ezButton-Bibliothek behandelt das Entprellen automatisch — jedes Tastendrücken löst genau ein isPressed()-Ereignis aus:
Schnelle Schritte
- Verwenden Sie die gleiche Verdrahtung und App von oben.
- Ersetzen Sie die Skizze durch die Entprellungsversion und klicken Sie auf "Ausführen".
- 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.
- Drücken Sie die Taste mehrmals und lassen Sie sie los — die LED schaltet sich nun genau einmal pro Tastendruck um.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: den MPU (Qualcomm, führt Debian Linux aus) und den 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.
- Die Taste und die LED sind mit dem MCU (STM32) verbunden — die Taste ist mit einem digitalen Eingabe-Pin und die LED mit einem digitalen Ausgabe-Pin am STM32 verdrahtet. Der MCU handhabt die Umschaltungslogik und das Entprellen mit ezButton.
- Der MPU kann die Taste nicht direkt lesen oder die LED steuern — er muss den LED-Zustand vom MCU über Bridge.call() anfragen.
- Der MPU hat Wi-Fi — da der MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann er den LED-Zustand bei Bedarf ü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 nie direkt
Kurz gesagt: MPU fragt LED-Zustand an → MCU liest aktuellen Zustand → MCU meldet EIN oder AUS → MPU protokolliert oder leitet weiter.
MCU-Skizze — Taste-LED-Umschaltung mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — LED-Zustand vom 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 (unter Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code — diese sind durch den 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 Bridge MCU-Skizze oben in sketch/sketch.ino ein, installieren Sie die Bibliotheken ezButton und Arduino_RouterBridge und klicken Sie auf "Ausführen".
- Python-Skript hinzufügen: Fügen Sie den oben aufgeführten Python-Code in die Python-Registerkarte derselben App ein.
- App ausführen: Klicken Sie auf "Ausführen" — die Python-Seite fragt den LED-Zustand alle 3 Sekunden ab.
- Drücken Sie die Taste mehrmals, um die LED umzuschalten.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte "Konsole" → Unterregisterkarte "MCU Monitor", um Umschaltereignisse in Echtzeit protokolliert zu sehen.
App Lab-Konsolenausgabe
Telegram-Integration
Überprüfen Sie den aktuellen LED-Zustand aus der Ferne von überall über Telegram.
Wenn Sie noch keinen Telegram-Bot haben, siehe Wie man einen Telegram-Bot erstellt, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits auf dem STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für LED-Zustand:
- 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 die LED 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, wenn noch nicht geschehen).
- Telegram-Skript einfügen: Kopieren Sie den oben aufgeführten Python-Code in die Python-Registerkarte Ihrer App in Arduino App Lab.
- Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
- App ausführen: Klicken Sie auf "Ausführen" — der Bot beginnt, auf Telegram-Nachrichten zu warten.
- Testen Sie es: Drücken Sie die Taste, um die LED umzuschalten, und senden Sie dann /state — bestätigen Sie, dass der Zustand übereinstimmt.
App Lab-Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können den OpenClaw an dieses Tutorial anpassen, indem Sie die Anleitung auf dem Arduino Uno Q - OpenClaw Tutorial folgen
Anwendungs-/Projektideen
- Telegram-LED-Monitor: Drücken Sie eine physische Taste, um eine Lampe umzuschalten, und überprüfen Sie den Zustand aus der Ferne über Telegram
- Physischer Alarm-Schalter: Verwenden Sie eine Taste, um einen Alarm zu aktivieren/deaktivieren, und bestätigen Sie den Zustand von überall
- Präsentationssteuerelement: Umschalten Sie eine Anzeige oder Benachrichtigungslicht mit einer Taste, während Sie den Zustand aus der Ferne überprüfen
- Nachtmodus-Schalter: Drücken Sie eine Taste, um den Nachtmodus auf Geräten umzuschalten; überwachen Sie über Telegram
- Zugangsbestätigung: Drücken Sie eine Taste, um den Eintritt zu bestätigen; überprüfen Sie den LED-/Gatter-Zustand über Telegram
Fordern Sie sich selbst heraus
- Einfach: Fügen Sie eine zweite LED hinzu, die sich ausschaltet, wenn sich die erste LED einschaltet (wechselnde LEDs)
- Mittel: Erweitern Sie die Bridge-Skizze, um die Gesamtzahl der Tastendrücke zu zählen, und machen Sie die Anzahl als get_press_count() zugänglich
- Fortgeschritten: Bauen Sie einen Telegram-Bot, der automatisch eine Benachrichtigung sendet, wenn sich der LED-Zustand ändert — verwenden Sie eine Überwachungsschleife in Python, die den Zustand abruft und mit dem vorherigen Wert vergleicht