Arduino UNO R4 WiFi Bluetooth Slider Beispiel - Dual Slider Steuerung über BLE Tutorial

Überblick

Das Bluetooth Slider Beispiel bietet Dual Slider-Steuerungen, die über die DIYables Bluetooth STEM App zugänglich sind. Entwickelt für Arduino UNO R4 WiFi mit BLE (Bluetooth Low Energy) zur Steuerung von zwei unabhängigen Werten mit konfigurierbarem Bereich und Schrittwerten. Perfekt für LED-Helligkeit, Motorgeschwindigkeit, Servo-Positionierung und jede Anwendung, die einstellbare numerische Eingabe benötigt.

Hinweis: Das Arduino UNO R4 WiFi unterstützt nur BLE (Bluetooth Low Energy). Es unterstützt kein Classic Bluetooth. Die DIYables Bluetooth App unterstützt sowohl BLE als auch Classic Bluetooth auf Android und BLE auf iOS. Da dieses Board BLE verwendet, funktioniert die App auf sowohl Android als auch iOS.

Arduino UNO R4 WiFi Bluetooth Slider Beispiel - Dual Slider Steuerung über BLE Tutorial

Funktionen

  • Dual Slider: Zwei unabhängige Slider-Steuerungen
  • Konfigurierbarer Bereich: Minimum-, Maximum- und Schrittwerte festlegen
  • Echtzeit-Updates: Slider-Werte werden sofort bei Änderung gesendet
  • PWM-bereit: Slider-Werte direkt auf PWM-Ausgang abbilden
  • Funktioniert auf Android & iOS: BLE wird auf beiden Plattformen unterstützt
  • Keine Kopplung erforderlich: BLE verbindet sich automatisch ohne manuelle Kopplung
  • Niedriger Stromverbrauch: BLE verbraucht weniger Strom als Classic Bluetooth

Benötigte Hardware

1×Arduino UNO R4 WiFi
1×Alternativ: DIYables STEM V4 IoT
1×USB Kabel Type-C
1×Breadboard (Steckplatine)
1×Jumper Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno R4
1×(Empfohlen) Breadboard-Shield für Arduino Uno R4
1×(Empfohlen) Gehäuse für Arduino Uno R4
1×(Empfohlen) Stromverteiler für Arduino Uno R4
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V4 IoT 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.

Arduino UNO R4 WiFi Code

Schnelle Schritte

Befolgen Sie diese Anweisungen Schritt für Schritt:

  • Falls dies Ihr erstes Mal mit dem Arduino UNO R4 WiFi ist, lesen Sie den Arduino UNO R4 WiFi Einsteigerleitfaden.
  • Verbinden Sie das Arduino UNO R4 WiFi Board mit einem USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino UNO R4 WiFi Board und den entsprechenden COM-Port aus.
  • Navigieren Sie zum Libraries Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach "DIYables Bluetooth", dann finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie den Install Button, um die Bibliothek zu installieren.
Arduino UNO R4 DIYables Bluetooth library
  • Sie werden zur Installation einiger anderer Bibliotheksabhängigkeiten aufgefordert
  • Klicken Sie den Install All Button, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 DIYables Bluetooth dependency

BLE Code

  • Gehen Sie in der Arduino IDE zu File Examples DIYables Bluetooth ArduinoBLE_Slider Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - Bluetooth Slider Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Slider feature: * - Control values using sliders (0-100) * - Support for dual sliders * - Configurable range and step * * Compatible Boards: * - Arduino UNO R4 WiFi * - Arduino Nano 33 BLE / BLE Sense * - Arduino Nano 33 IoT * - Arduino MKR WiFi 1010 * - Arduino Nano RP2040 Connect * - Any board supporting the ArduinoBLE library * * Setup: * 1. Upload the sketch to your Arduino * 2. Open Serial Monitor to see connection status * 3. Use DIYables Bluetooth App to connect and control sliders * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothSlider.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Slider"; const char* SERVICE_UUID = "19B10000-E8F2-537E-4F6C-D104768A1214"; const char* TX_UUID = "19B10001-E8F2-537E-4F6C-D104768A1214"; const char* RX_UUID = "19B10002-E8F2-537E-4F6C-D104768A1214"; // Create Bluetooth instances DIYables_ArduinoBLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Slider app instance (min=0, max=100, step=1) DIYables_BluetoothSlider bluetoothSlider(0, 100, 1); // Variables to store current slider values int currentSlider1 = 0; int currentSlider2 = 0; // PWM output pins (for LED brightness control example) const int PWM_PIN_1 = 9; const int PWM_PIN_2 = 10; void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Slider Example"); // Initialize PWM pins pinMode(PWM_PIN_1, OUTPUT); pinMode(PWM_PIN_2, OUTPUT); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add slider app to server bluetoothServer.addApp(&bluetoothSlider); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send initial slider positions bluetoothSlider.send(currentSlider1, currentSlider2); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Set up slider callback for value changes bluetoothSlider.onSliderValue([](int slider1, int slider2) { // Store the received values currentSlider1 = slider1; currentSlider2 = slider2; // Print slider values (0-100) Serial.print("Slider 1: "); Serial.print(slider1); Serial.print(", Slider 2: "); Serial.println(slider2); // Map slider values (0-100) to PWM range (0-255) int pwm1 = map(slider1, 0, 100, 0, 255); int pwm2 = map(slider2, 0, 100, 0, 255); // Control LED brightness analogWrite(PWM_PIN_1, pwm1); analogWrite(PWM_PIN_2, pwm2); // TODO: Add your control logic here based on slider values // Examples: // - Servo control: servo.write(map(slider1, 0, 100, 0, 180)); // - Motor speed: analogWrite(MOTOR_PIN, pwm1); // - Volume control: setVolume(slider1); // - Brightness control: setBrightness(slider2); }); // Optional: Handle requests for current slider values (when app loads) bluetoothSlider.onGetConfig([]() { // Send the stored slider values back to the app bluetoothSlider.send(currentSlider1, currentSlider2); Serial.print("App requested values - Sent: Slider1="); Serial.print(currentSlider1); Serial.print(", Slider2="); Serial.println(currentSlider2); }); // You can change slider configuration at runtime: // bluetoothSlider.setRange(0, 255); // Change range to 0-255 // bluetoothSlider.setStep(5); // Change step to 5 (coarser control) Serial.println("Waiting for Bluetooth connection..."); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Optional: Update slider positions based on sensor input // Example: Send current values periodically /* static unsigned long lastUpdate = 0; if (millis() - lastUpdate >= 5000) { lastUpdate = millis(); bluetoothSlider.send(currentSlider1, currentSlider2); } */ delay(10); }
  • Klicken Sie den Upload Button in der Arduino IDE, um den Code auf das Arduino UNO R4 WiFi hochzuladen
  • Öffnen Sie den Serial Monitor
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
COM6
Send
DIYables Bluetooth - Slider Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS

Hinweis: Die DIYables Bluetooth App unterstützt sowohl BLE als auch Classic Bluetooth auf Android und BLE auf iOS. Da das Arduino UNO R4 WiFi BLE verwendet, funktioniert die App auf sowohl Android als auch iOS. Für BLE ist keine manuelle Kopplung erforderlich — einfach scannen und verbinden.

  • Öffnen Sie die DIYables Bluetooth App
  • Beim ersten Öffnen der App wird sie nach Berechtigungen fragen. Bitte erteilen Sie folgende Berechtigungen:
    • Nearby Devices Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
    • Location Berechtigung (nur Android 11 und älter) - von älteren Android-Versionen zum Scannen nach BLE-Geräten benötigt
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon eingeschaltet ist
  • Tippen Sie auf dem Startbildschirm auf den Connect Button. Die App wird nach BLE-Geräten scannen.
DIYables Bluetooth App - Home Screen with Scan Button
  • Finden und tippen Sie "Arduino_Slider" in den Suchergebnissen an, um sich zu verbinden.
  • Nach der Verbindung geht die App automatisch zurück zum Startbildschirm. Wählen Sie die Slider App aus dem App-Menü.
DIYables Bluetooth App - Home Screen with Slider App

Hinweis: Sie können das Einstellungen-Symbol auf dem Startbildschirm antippen, um Apps auf dem Startbildschirm zu verstecken/anzuzeigen. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.

  • Ziehen Sie die Slider, um Werte zu ändern
DIYables Bluetooth App - Slider Screen

Schauen Sie nun zurück zum Serial Monitor in der Arduino IDE. Sie werden sehen:

COM6
Send
Bluetooth connected! Slider 1: 50, Slider 2: 0 Slider 1: 75, Slider 2: 0 Slider 1: 100, Slider 2: 25
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Verstellen Sie die Slider und beobachten Sie, wie sich die Werte in Echtzeit im Serial Monitor ändern

Kreative Anpassung - Passen Sie den Code an Ihr Projekt an

Slider-Bereich konfigurieren

// Constructor: DIYables_BluetoothSlider(min, max, step) DIYables_BluetoothSlider bluetoothSlider(0, 100, 1); // Bereich zur Laufzeit ändern bluetoothSlider.setRange(0, 255); // Schrittgröße ändern bluetoothSlider.setStep(5); // Gröbere Steuerung // Konfiguration lesen int minVal = bluetoothSlider.getMin(); int maxVal = bluetoothSlider.getMax(); int step = bluetoothSlider.getStep();

Slider-Änderungen verarbeiten

bluetoothSlider.onSliderValue([](int slider1, int slider2) { currentSlider1 = slider1; currentSlider2 = slider2; Serial.print("Slider 1: "); Serial.print(slider1); Serial.print(", Slider 2: "); Serial.println(slider2); // Auf PWM abbilden und Ausgang steuern int pwm1 = map(slider1, 0, 100, 0, 255); analogWrite(PWM_PIN_1, pwm1); });

Aktuelle Werte an App senden

bluetoothSlider.onGetConfig([]() { bluetoothSlider.send(currentSlider1, currentSlider2); }); // Oder jederzeit senden: bluetoothSlider.send(50, 75); // Beide Slider setzen

Verbindungsereignisse verarbeiten

bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); bluetoothSlider.send(currentSlider1, currentSlider2); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); });

Programmierbeispiele

LED-Helligkeitssteuerung

const int LED_PIN_1 = 9; const int LED_PIN_2 = 10; bluetoothSlider.onSliderValue([](int slider1, int slider2) { int brightness1 = map(slider1, 0, 100, 0, 255); int brightness2 = map(slider2, 0, 100, 0, 255); analogWrite(LED_PIN_1, brightness1); analogWrite(LED_PIN_2, brightness2); Serial.print("LED 1: "); Serial.print(brightness1); Serial.print(", LED 2: "); Serial.println(brightness2); });

Servo-Steuerung

#include <Servo.h> Servo servo1, servo2; void setup() { servo1.attach(9); servo2.attach(10); bluetoothSlider.onSliderValue([](int slider1, int slider2) { int angle1 = map(slider1, 0, 100, 0, 180); int angle2 = map(slider2, 0, 100, 0, 180); servo1.write(angle1); servo2.write(angle2); Serial.print("Servo 1: "); Serial.print(angle1); Serial.print("°, Servo 2: "); Serial.print(angle2); Serial.println("°"); }); }

Motorgeschwindigkeit mit Richtung

const int MOTOR_SPEED_PIN = 9; const int MOTOR_DIR_PIN = 8; bluetoothSlider.onSliderValue([](int slider1, int slider2) { // Slider 1: Geschwindigkeit (0-100%) // Slider 2: Richtungsschwelle (unter 50 = rückwärts, über 50 = vorwärts) int speed = map(slider1, 0, 100, 0, 255); bool forward = (slider2 >= 50); analogWrite(MOTOR_SPEED_PIN, speed); digitalWrite(MOTOR_DIR_PIN, forward ? HIGH : LOW); Serial.print("Speed: "); Serial.print(slider1); Serial.print("%, Direction: "); Serial.println(forward ? "Forward" : "Reverse"); });

Erweiterte Programmiertechniken

Slider mit Totzone

bluetoothSlider.onSliderValue([](int slider1, int slider2) { // Totzone um die Mitte hinzufügen (45-55 = Stop) if (slider1 >= 45 && slider1 <= 55) { Serial.println("Center - stopped"); analogWrite(MOTOR_PIN, 0); } else { int speed = map(slider1, 0, 100, 0, 255); analogWrite(MOTOR_PIN, speed); } });

Ratenbegrenzung

unsigned long lastSliderAction = 0; const unsigned long SLIDER_COOLDOWN = 50; // 50ms Minimum bluetoothSlider.onSliderValue([](int slider1, int slider2) { if (millis() - lastSliderAction >= SLIDER_COOLDOWN) { lastSliderAction = millis(); // Slider-Wert verarbeiten analogWrite(PWM_PIN, map(slider1, 0, 100, 0, 255)); } });

Fehlerbehebung

Häufige Probleme

1. Gerät kann in der App nicht gefunden werden

  • Stellen Sie sicher, dass das Arduino UNO R4 WiFi eingeschaltet ist und der Sketch hochgeladen wurde
  • Vergewissern Sie sich, dass Bluetooth auf Ihrem Telefon aktiviert ist
  • Auf Android 11 und älter aktivieren Sie auch die Standortdienste
  • Versuchen Sie, Bluetooth auf Ihrem Telefon neu zu starten

2. Slider-Änderungen werden nicht empfangen

  • Überprüfen Sie den Bluetooth-Verbindungsstatus in der App
  • Verifizieren Sie, dass der onSliderValue Callback korrekt eingerichtet ist
  • Überprüfen Sie den Serial Monitor auf Fehlermeldungen

3. PWM-Ausgang funktioniert nicht

  • Überprüfen Sie, ob der Pin PWM unterstützt (Pins 3, 5, 6, 9, 10, 11 beim UNO R4)
  • Überprüfen Sie die Verkabelung
  • Testen Sie zuerst mit einem einfachen analogWrite Sketch

4. Slider wird bei Wiederverbindung auf 0 zurückgesetzt

  • Implementieren Sie onGetConfig Callback, um gespeicherte Werte bei Wiederverbindung zu senden
  • Speichern Sie Slider-Werte in Variablen, die über Verbindungen hinweg bestehen bleiben

5. Verbindung bricht häufig ab

  • Gehen Sie näher zum Arduino (reduzieren Sie die Entfernung)
  • Überprüfen Sie auf Interferenzen von anderen BLE-Geräten
  • Stellen Sie eine stabile USB-Stromversorgung sicher

6. Upload schlägt fehl oder Board wird nicht erkannt

  • Installieren Sie das neueste Arduino UNO R4 Board-Paket über den Board Manager
  • Versuchen Sie ein anderes USB-Kabel oder einen anderen Port
  • Drücken Sie den Reset-Button am Board vor dem Upload

Projektideen

Beleuchtungssteuerung

  • Dual LED-Helligkeitsregler
  • RGB LED-Farbmixer (verwenden Sie zwei Slider für Farbton/Sättigung)
  • LED-Streifen Helligkeit und Farbtemperatur
  • Bühnenbeleuchtung Dimmer

Motorsteuerung

  • DC Motor-Geschwindigkeitsregler
  • Dual Servo-Positionierung
  • Pan-Tilt Kamerahalterung
  • Roboter-Radgeschwindigkeit

Audio

  • Lautstärkeregelung
  • Tonfrequenz und -dauer
  • Equalizer-Bänder

Nächste Schritte

Nach dem Beherrschen des Bluetooth Slider Beispiels versuchen Sie:

  1. Bluetooth Joystick - Für 2D-Richtungssteuerung
  2. Bluetooth Rotator - Für Winkel-/Rotationssteuerung
  3. Bluetooth Temperature - Für Temperaturanzeige
  4. Mehrere Bluetooth Apps - Kombination von Slider mit anderen Apps

Support

Für zusätzliche Hilfe:

  • Überprüfen Sie die API-Referenzdokumentation
  • Besuchen Sie DIYables Tutorials
  • Arduino Community Foren

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