Vielen Dank für die Hilfe. Ich hab es bereits mit dem bluetooth sketch kombiniert. Der Motor hat sich allerdings erst gedreht als ich die Pins 0 und 1 statt 2 und 3 verwendet habe. Jedenfalls wenn ich den ON-Button in der App drücke dreht sich der Motor um 360 Grad. Das einzige Problem was ich jetzt noch habe ist, dass wenn ich den OFF-Button drücke der Motor sich dennoch weiterdreht anstatt anzuhalten. Über den OFF-Button soll ja eine 0 gesendet werden.
<#include <SoftwareSerial.h>
#include <Stepper.h>
// Definieren der Pins für die Verbindung zum Bluetooth-Modul
#define BT_RX_PIN 1
#define BT_TX_PIN 0
// Definiere die Anschlüsse des Schrittmotors
#define IN1 8
#define IN2 10
#define IN3 9
#define IN4 11
// Erstellen eines SoftwareSerial-Objekts für die Kommunikation mit dem Bluetooth-Modul
SoftwareSerial bluetooth(BT_RX_PIN, BT_TX_PIN);
// Konfiguriere den Schrittmotor
const int stepsPerRevolution = 2048; // Schritte pro Umdrehung des Motors
Stepper myStepper(stepsPerRevolution, IN1, IN2, IN3, IN4);
void setup() {
// Öffnen der seriellen Verbindung für die Kommunikation mit dem Computer
Serial.begin(9600);
// Öffnen der seriellen Verbindung für die Kommunikation mit dem Bluetooth-Modul
bluetooth.begin(9600);
// Setze die Geschwindigkeit des Schrittmotors in Umdrehungen pro Minute (UPM)
myStepper.setSpeed(16); // Experimentiere mit verschiedenen Werten für die Geschwindigkeit
myStepper.step(0);
char command = '1';
// Warten, bis das Bluetooth-Modul initialisiert ist
delay(1000);
}
void loop() {
// Überprüfen, ob Daten von der seriellen Verbindung des Computers empfangen wurden
if (Serial.available()) {
// Lesen der empfangenen Daten von der seriellen Schnittstelle des Computers
char dataToSend = Serial.read();
Serial.println(dataToSend);
// Senden der Daten an das Bluetooth-Modul
bluetooth.write(dataToSend);
}
// Überprüfen, ob Daten vom Bluetooth-Modul empfangen wurden
if (bluetooth.available()) {
// Lesen der empfangenen Daten vom Bluetooth-Modul
char command = bluetooth.read();
// Wenn der Befehl '1' ist, schalte den Motor ein
if (command == '1') {
// Drehe den Motor um 360 Grad im Uhrzeigersinn
myStepper.step(2048);
delay(5); // Warte für 1 Sekunde
}
// Wenn der Befehl '0' ist, schalte den Motor aus
else if (command == '0') {
// Setze den Motor auf Ruhezustand
myStepper.step(0);
delay(5); // Warte für 1 Sekunde
}
}
}
/>