Arduino UNO Q - Potentiometer
Ein Potentiometer (auch als Drehwinkelgeber oder variabler Widerstand bezeichnet) ermöglicht es Ihnen, einen Wert manuell anzupassen, indem Sie einen Knopf drehen. Häufige Verwendungen sind die Kontrolle von Lautstärke, Helligkeit und Motorgeschwindigkeit. In diesem Tutorial lernen Sie, wie Sie einen Potentiometer an Arduino UNO Q anschließen, seinen ADC-Wert auslesen, ihn in Spannung umwandeln und die Messwerte remote über Telegram überprüfen.
※ Notiz:
Arduino UNO Q ADC-Unterschied: Die STM32 MCU auf Arduino UNO Q hat einen 12-Bit-ADC (Werte 0–4095), im Vergleich zum 10-Bit-ADC (0–1023) bei vielen anderen Arduino-Boards. Die Referenzspannung beträgt 3,3 V. Verwenden Sie diese Werte immer beim Konvertieren von ADC-Messwerten.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Potentiometer
Pinbelegung
Ein Potentiometer hat drei Pins:
- GND-Pin: mit GND verbinden
- VCC-Pin: mit 3,3 V verbinden (auf Arduino UNO Q arbeitet die MCU mit 3,3 V)
- Ausgabe-Pin: mit einem analogen Eingabe-Pin auf Arduino UNO Q verbinden

※ Notiz:
Die GND- und VCC-Pins können getauscht werden — dies kehrt die Richtung der Ausgabe um.
Funktionsweise
Das Drehen des Knopfes ändert den Widerstand zwischen dem Ausgabe-Pin und GND/VCC, was die Ausgangsspannung proportional ändert:
- Bei 0° (GND-Seite): Ausgabe = 0 V
- Bei maximalem Winkel (VCC-Seite): Ausgabe = 3,3 V (auf Arduino UNO Q)
- Dazwischen: Ausgabe = (Winkel / ANGLE_MAX) × 3,3 V

Arduino UNO Q ADC
Die Arduino UNO Q MCU (STM32U585) liest die Ausgangsspannung durch einen 12-Bit-ADC — Werte von 0 bis 4095:
| Quelle | Bereich |
|---|---|
| Drehwinkel des Knopfes | 0° bis ANGLE_MAX |
| Ausgangsspannung | 0 V bis 3,3 V |
| ADC-Wert von Arduino UNO Q | 0 bis 4095 |
| Zugeordneter Ausgabewert | VALUE_MIN bis VALUE_MAX |
Häufige Konvertierungen
- ADC zu Spannung:
- ADC zu einem steuerbaren Pegel (z. B. Helligkeit 0–255):
- ADC zu Winkel (wenn ANGLE_MAX bekannt ist):
※ Notiz:
map() gibt eine ganze Zahl zurück. Für Gleitkomma-Konvertierungen verwenden Sie floatMap() wie im Code unten gezeigt.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
MCU-Code — Potentiometer
Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (für echtzeitnahe Hardwaresteuerung) und die Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Schnelle Schritte
- Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Verdrahten Sie den Potentiometer: Verbinden Sie GND mit GND, VCC mit 3,3 V und den Ausgabe-Pin mit A0 gemäß dem Schaltplan.
- Verbinden: Stecken Sie die Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer ein.
- Ö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.

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

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

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Upload: Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab, um zu kompilieren und auf den STM32 hochzuladen.

- Drehen Sie den Potentiometer-Knopf — der ADC-Wert und die Spannung werden alle 500 ms gelesen. Die Ergebnisse sind im nächsten Abschnitt über den Bridge Monitor sichtbar.
- Pro-Tipp: Ersetzen Sie den TO DO-Kommentar mit map(adc_value, 0, 4095, 0, 255), um LED-Helligkeit via PWM zu steuern.
Linux + MCU Bridge-Programmierung
Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und die MCU (STM32, läuft Zephyr OS mit Ihrer Arduino-Skizze). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek — niemals über rohe serielle Ports.
- Der Potentiometer ist an der MCU (STM32) angeschlossen — verdrahtet mit einem analogen Eingabe-Pin (A0) auf dem STM32. Der MCU liest ADC-Werte und konvertiert sie in Spannung.
- Die MPU kann den Potentiometer nicht direkt auslesen — sie muss die Lesung vom MCU über Bridge.call() anfordern. Der MCU antwortet mit dem aktuellen ADC-Wert und der Spannung.
- Die MPU hat Wi-Fi — da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie den Potentiometer-Messwert auf Anforderung ü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 Potentiometer-Messwert an → MCU liest ADC → MCU meldet Wert und Spannung → MPU protokolliert oder leitet weiter.
MCU-Skizze — Potentiometer mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — Abfrage des Potentiometers von Linux:
- Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen ist, 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 auf sie beeinträchtigt die Bridge.
Schnelle Schritte
- Laden Sie die MCU-Skizze hoch: Ö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 Bibliothek Arduino_RouterBridge, und klicken Sie auf Ausführen.
- Fügen Sie das Python-Skript hinzu: Fügen Sie den Python-Code oben in die Python-Registerkarte der gleichen App ein.
- Führen Sie die App aus: Klicken Sie auf Ausführen — die Python-Seite fragt den Potentiometer alle Sekunden ab.
- Drehen Sie den Potentiometer-Knopf und beobachten Sie, wie der ADC-Wert und die Spannung sich in Echtzeit aktualisieren.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → Unterregisterkarte MCU Monitor.
App Lab Konsolenausgabe
Telegram-Integration
Lesen Sie den aktuellen Potentiometer-Wert remote von überall über Telegram.
Wenn Sie noch keinen Telegram-Bot haben, siehe Wie erstelle ich einen Telegram-Bot, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt bei — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits hochgeladen und auf dem STM32 ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für Potentiometer-Messwert:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN mit dem von @BotFather auf Telegram erhaltenen Token.
- Senden Sie /read, um eine Potentiometer-Messung auszulösen — das Ergebnis wird im MCU Monitor angezeigt.
Schnelle Schritte
- Laden Sie die MCU-Skizze hoch: Verwenden Sie die Bridge-MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls nicht bereits geschehen).
- Fügen Sie das Telegram-Skript ein: Kopieren Sie den Python-Code oben in die Python-Registerkarte Ihrer App im Arduino App Lab.
- Stellen Sie Ihren Token ein: Ersetzen Sie YOUR_BOT_TOKEN im Skript mit Ihrem aktuellen Bot-Token.
- Führen Sie die App aus: Klicken Sie auf Ausführen — der Bot beginnt, auf Telegram-Nachrichten zu lauschen.
- Testen Sie es: Drehen Sie den Potentiometer, senden Sie /read — der Bot antwortet mit dem ADC-Wert und der Spannung.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie die Anleitung im Arduino Uno Q - OpenClaw Tutorial lesen.
Anwendungs-/Projektideen
- Ferngesteuerter Lautstärkeregler: Verwenden Sie einen Potentiometer zur Festlegung der Audiolautstärke — lesen Sie die Stufe remote über Telegram
- Lichtstärke-Einsteller: Verwenden Sie einen Potentiometer zur Festlegung der LED-Helligkeitszielwert — überprüfen Sie die eingestellte Stufe über Telegram
- Motorgeschwindigkeit-Wähler: Ordnen Sie den Potentiometer-Wert der Motorgeschwindigkeit zu — bestätigen Sie Geschwindigkeit über Telegram
- Schwellenwert-Konfigurator: Verwenden Sie den Potentiometer zur Festlegung eines Sensor-Schwellenwerts (z. B. Temperaturalarm) — remote überprüfbar
- Kalibrierungswerkzeug: Verwenden Sie den Potentiometer zur Justierung eines Sensor-Versatzes — überprüfen Sie den Kalibrierungswert über Telegram
Fordern Sie sich selbst heraus
- Einfach: Fügen Sie eine zweite Ausgabe hinzu: ordnen Sie den ADC einem 0–100%-Pegel zu und drucken Sie ihn neben der Spannung
- Mittel: Machen Sie den Potentiometer-Wert als Prozentsatz (0–100) über einen get_level() Bridge-Callback verfügbar
- Fortgeschritten: Erstellen Sie einen Telegram-Bot, der den Potentiometer kontinuierlich überwacht und eine Benachrichtigung sendet, wenn sich der Wert um mehr als 10% vom letzten Messwert ändert