Arduino UNO R4 WiFi Bluetooth Rotator Beispiel - Winkelsteuerung über BLE Tutorial

Überblick

Das Bluetooth Rotator Beispiel bietet Winkelpositionssteuerung über die DIYables Bluetooth STEM App. Entwickelt für Arduino UNO R4 WiFi mit BLE (Bluetooth Low Energy) zur drahtlosen Steuerung von Rotationswinkeln und Servomotoren von Ihrem Smartphone aus. Unterstützt begrenzte und kontinuierliche Rotationsmodi. Perfekt für Servosteuerung, Robotik, Pan-Tilt-Mechanismen und Winkelpositionierung.

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

Arduino UNO R4 WiFi Bluetooth Rotator Beispiel - Winkelsteuerung über BLE Tutorial

Funktionen

  • Begrenzter Modus: Min/Max Winkelbereich festlegen (z.B. 0° bis 180°)
  • Kontinuierlicher Modus: Vollständige 360° kontinuierliche Rotation
  • Echtzeit-Winkel: Empfangen Sie Winkel-Updates während der Benutzer rotiert
  • Servo-Integration: Direkte Servomotorsteuerung
  • Anfangswinkel-Synchronisation: Aktuelle Position beim Verbinden senden
  • Funktioniert auf Android & iOS: BLE wird auf beiden Plattformen unterstützt
  • Keine Kopplung erforderlich: BLE verbindet sich automatisch ohne manuelle Kopplung

Benötigte Hardware

1×Arduino UNO R4 WiFi
1×Alternativ: DIYables STEM V4 IoT
1×USB Kabel Type-C
1×(optional) Servomotor
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.

Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.

Arduino UNO R4 WiFi Code

Schnelle Schritte

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Falls Sie den Arduino UNO R4 WiFi zum ersten Mal verwenden, schauen Sie sich den Arduino UNO R4 WiFi Einstiegsleitfaden an.
  • Verbinden Sie das Arduino UNO R4 WiFi Board über ein 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" und finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie auf Install, um die Bibliothek zu installieren.
Arduino UNO R4 DIYables Bluetooth Bibliothek
  • Sie werden gefragt, ob Sie einige andere Bibliotheksabhängigkeiten installieren möchten
  • Klicken Sie auf Install All, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 DIYables Bluetooth Abhängigkeiten

BLE Code

  • Gehen Sie in der Arduino IDE zu File Examples DIYables Bluetooth ArduinoBLE_Rotator Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - Bluetooth Rotator Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Rotator feature: * - Rotatable disc/knob control (0-360 degrees) * - Continuous or limited angle range * - Perfect for servo control, compass display, volume knobs * * 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 * * Optional: Servo motor for visual feedback * * Setup: * 1. Upload the sketch to your Arduino * 2. Open Serial Monitor to see connection status * 3. Use DIYables Bluetooth App to connect and rotate the knob * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothRotator.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Rotator"; 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 Rotator app instance // Option 1: Continuous mode (0-360, wraps around) // DIYables_BluetoothRotator bluetoothRotator(ROTATOR_MODE_CONTINUOUS); // Option 2: Limited mode (constrained angle range) DIYables_BluetoothRotator bluetoothRotator(ROTATOR_MODE_LIMITED, 0, 180); // Variables to store current angle float currentAngle = 0.0; // Optional: Servo control (uncomment if using Servo library) // #include <Servo.h> // Servo myServo; // const int SERVO_PIN = 9; void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Rotator Example"); // Optional: Initialize servo // myServo.attach(SERVO_PIN); // myServo.write(0); bluetoothServer.begin(); bluetoothServer.addApp(&bluetoothRotator); bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); bluetoothRotator.send(currentAngle); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothRotator.onRotatorAngle([](float angle) { currentAngle = angle; Serial.print("Rotator angle: "); Serial.print(angle); Serial.println("°"); // TODO: Add your control logic here based on angle // Examples: // - Servo control: servo.write(map(angle, 0, 360, 0, 180)); // - Stepper motor: stepper.moveTo(angleToSteps(angle)); // - LED ring: setLEDPosition(angle); // - Volume control: setVolume(map(angle, 0, 360, 0, 100)); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); delay(10); }
  • Klicken Sie auf den Upload Button in der Arduino IDE, um den Code auf den 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 - Rotator 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 klassisches Bluetooth unter Android und BLE unter iOS. Da der 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 werden Berechtigungen angefordert. Bitte gewähren Sie folgende:
    • 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 - Startbildschirm mit Scan Button
  • Finden und tippen Sie auf "Arduino_Rotator" in den Scan-Ergebnissen, um sich zu verbinden.
  • Nach der Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Rotator App aus dem App-Menü.
DIYables Bluetooth App - Startbildschirm mit Rotator App

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

  • Sie sehen einen Drehregler, der 0° bis 180° anzeigt
  • Drehen Sie den Regler, um Winkelwerte an den Arduino zu senden
DIYables Bluetooth App - Rotator Bildschirm

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

COM6
Send
Bluetooth connected! Angle changed: 45.00° Angle changed: 90.00° Angle changed: 135.00°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Kreative Anpassung - Code an Ihr Projekt anpassen

Rotationsmodi

// Begrenzter Modus: Min- und Max-Winkel festlegen DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_LIMITED, 0, 180); // Kontinuierlicher Modus: vollständige 360° Rotation DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);

Winkeländerungen behandeln

bluetoothRotator.onRotatorAngle([](float angle) { Serial.print("Angle: "); Serial.println(angle); // Servomotor steuern myServo.write((int)angle); });

Aktuellen Winkel senden

// Aktuellen Winkel an die App senden (z.B. beim Verbinden) bluetoothRotator.sendAngle(currentAngle);

Programmierbeispiele

Servomotor-Steuerung

#include <Servo.h> Servo myServo; float currentAngle = 90; void setup() { myServo.attach(9); myServo.write(currentAngle); bluetoothRotator.onRotatorAngle([](float angle) { currentAngle = angle; myServo.write((int)angle); Serial.print("Servo: "); Serial.println(angle); }); } void loop() { bluetoothServer.loop(); }

Pan-Tilt Kamerahalterung

Servo panServo; Servo tiltServo; // Verwenden Sie zwei Rotator-Instanzen für Pan und Tilt // Oder verwenden Sie einen einzigen Rotator für eine Achse // und einen Slider für die andere void setup() { panServo.attach(9); tiltServo.attach(10); bluetoothRotator.onRotatorAngle([](float angle) { panServo.write((int)angle); Serial.print("Pan: "); Serial.println(angle); }); }

Fehlerbehebung

Häufige Probleme

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

  • Stellen Sie sicher, dass der Arduino UNO R4 WiFi eingeschaltet ist und der Sketch hochgeladen wurde
  • Stellen Sie sicher, dass das Bluetooth Ihres Telefons aktiviert ist
  • Unter Android 11 und älter aktivieren Sie auch die Standortdienste

2. Servo reagiert nicht

  • Überprüfen Sie, ob der Servo mit dem richtigen Pin verbunden ist
  • Stellen Sie sicher, dass die Servo-Bibliothek eingebunden und attach() aufgerufen wurde
  • Stellen Sie eine ausreichende Stromversorgung für den Servo sicher

3. Winkelbereich scheint falsch

  • Überprüfen Sie die Min/Max-Werte im Konstruktor
  • Stellen Sie sicher, dass Sie ROTATOR_MODE_LIMITED für begrenzten Bereich verwenden

4. Regler setzt sich bei Wiederverbindung auf 0 zurück

  • Senden Sie den aktuellen Winkel mit sendAngle(), wenn das Gerät sich wieder verbindet
  • Der Beispielcode behandelt dies im onRotatorAngle Callback

5. 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

Projektideen

  • Servomotor-Controller
  • Pan-Tilt Kamerahalterung
  • Roboterarm-Gelenksteuerung
  • Regler-basierte Thermostatsteuerung
  • Kompass-/Richtungsanzeige

Nächste Schritte

Nachdem Sie das Bluetooth Rotator Beispiel gemeistert haben, probieren Sie:

  1. Bluetooth Slider - Für lineare Wertsteuerung
  2. Bluetooth Joystick - Für 2D-Positionssteuerung
  3. Bluetooth Analog Gauge - Für visuelles Feedback
  4. Mehrere Bluetooth Apps - Kombinieren von Rotator mit anderen Apps

Support

Für zusätzliche Hilfe:

  • Überprüfen Sie die API-Referenz-Dokumentation
  • 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!