Moin,
ich hab hier ein Projekt in dem ich echt nicht weiterkomme und würde mich freuen wenn Ihr mir weiterhelfen könntet. Ich möchte einen Schrittmotor über eine RC-Fernsteuerung steuern, also über den PWM Ausgang eines RC_Empfängers. Bei Knüppelmittelstellung ist die Drehgeschwindigkeit =0. Je nach Knüppelausschlag dreht der Motor links oder Rechts rum und dreht auch entsprechend schnell. Im Prinzip funktioniert es schon, Der Motor wechselt die Drehrichtung und ändert auch seine Geschwindigkeit entsprechend dem Knüppelausschlag. Leider dreht sich der Motor nur sehr langsam und Brummt. Ich vermute das sich AccelStepper und PulseIn irgendwie in die Quere kommen...aber wie gesagt ist nur eine Vermutung....davon verstehe ich nicht wirklich etwas. Hier mein Code:
#include <AccelStepper.h>
int PWM_PIN1 = 3; //Define Digital PIN
// Definiere die Pins für den Schrittmotor
#define STEP_PIN 5
#define DIR_PIN 4
// Erstelle ein AccelStepper-Objekt
AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
void setup() {
// Setze die maximale Geschwindigkeit und Beschleunigung
stepper.setMaxSpeed(5000); // Maximalgeschwindigkeit
stepper.setAcceleration(100); // Beschleunigung
pinMode(PWM_PIN1, INPUT);
Serial.begin(115200);
}
void loop() {
int pwm1 = pulseIn(PWM_PIN1, HIGH); //Read PWM Pulse
Serial.print("PWM CH1: ");
Serial.println(pwm1);
// Map den PWM-Wert auf die Geschwindigkeit (0-1000)
int speed = map(pwm1, 1000, 2000, -5000, 5000);
// Setze die Geschwindigkeit des Schrittmotors
stepper.setSpeed(speed);
// Bewege den Motor
stepper.runSpeed();
}
tippe oder füge den Code hier ein