Arduino Motor mit Joystick steuern?
Hier erstmal der Code:
#include <Stepper.h>
#define stepp 360
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
Stepper steps(stepp, IN4, IN2, IN3, IN1);
int joyy = A1;
int joyx = A3;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int val1 = analogRead(joyy);
Serial.print(val1);
int val2 = analogRead(joyx);
Serial.print(val2);
if (val2 >= 500)
{
int speed1 = 200;
steps.setSpeed(speed1);
steps.step(-2);
val2 = analogRead(joyx);
}
else
if (val1 >= 500)
{
int speed2 = 200;
steps.setSpeed(speed2);
steps.step(2);
val1 = analogRead(joyy);
}
}
Mein Problem ist, dass sich der Motor alleine dreht. Ich kann ihn momentan mit dem Joystick ansteuern und in die gewünschte Richtung drehen lassen. Sobald ich allerdings den Joystick aus der Hand lege, dreht der Motor entgegen dem Uhrzeigersinn. Ich habe schon vieles probiert aber bekomme es nicht gelöst.
Der Motor ist der 28byj-48.
1 Antwort
Sind die Pins alle richtig belegt? Ist der stepper motor nach initialisieren des Codes inaktiv? Brauch der Motor wirklich 360 steps pro Umdrehung? Ich fand einige Quellen online die sagen 64 schritte, einige 4096, andere 2048. Bitte schau in dein Datasheet wie viele Schritte pro Umdrehung nötig sind. Ich fand auch eine komplett andere Umsetzung für deinen Code, schau mal hier:
https://cdn-reichelt.de/documents/datenblatt/A300/SBC-MOTO1_ANL.pdf