hey ich wollte mit arduino etwas pogramieren und zwar will ich das ich wen ich einen button drücke der step motor sich im uhrzeigersin dreht und wen ich den anderen drücke soll sich der motor gegen den uhrzeigersin drehen ich habe es probiert aber bei mir kommt nichts richtiges rum Danke für die Hilfe .
das ist mein bisheriger code
#include <Stepper.h>
int stepIN1Pin = 4;
int stepIN2Pin = 5;
int stepIN3Pin = 6;
int stepIN4Pin = 7;
int stepsPerRevolution = 2048;
const int button1Pin = 2;
const int button2Pin = 3;
Stepper myStepper(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin);
void setup() {
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
myStepper.setSpeed(15);
}
void loop() {
int button1State, button2State;
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
if (((button1State == LOW) && !(button2State == LOW)))
myStepper.step(stepsPerRevolution/8);
if (((button2State == LOW) && !(button1State == LOW)))
myStepper.step(-stepsPerRevolution/8);
}
Wenn du auf LOW abfragst, hast du die Taster vermutlich gegen GND geschaltet. Dann wäre
pinMode(buttonPin, INPUT_PULLUP);
besser.
Was heißt das?
Hast du das einfachste Beispiel der stepper Bibliothek zum Laufen gekriegt?
bei mir deht sich der motor sobald ich den code starte und sobald ich den ersten button gedrückt halte dreht er sich in die andere richtung und der andere button tut nichts
ich habe dir den Code mal etwas vereinfacht und übersichtlicher gemacht:
#include <Stepper.h>
int stepIN1Pin = 4;
int stepIN2Pin = 5;
int stepIN3Pin = 6;
int stepIN4Pin = 7;
int stepsPerRevolution = 2048;
const int button1Pin = 2;
const int button2Pin = 3;
Stepper myStepper(stepsPerRevolution, stepIN1Pin, stepIN3Pin, stepIN2Pin, stepIN4Pin);
void setup()
{
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
myStepper.setSpeed(15);
}
void loop()
{
bool button1State = digitalRead(button1Pin);
bool button2State = digitalRead(button2Pin);
if (button1State == LOW && button2State == HIGH)
{
myStepper.step(stepsPerRevolution/8);
}
if (button1State == HIGH && button2State == LOW)
{
myStepper.step(-stepsPerRevolution/8);
}
delay(100);
}
INPUT_PULLUP hat ja Michael bereits erklärt.
- Die beiden Variablen für die Taster habe ich dir als
bool deklariert, da du nur den Zustand HIGH bzw. LOW brauchst.
- Die
if-Schleifen finde ich so auch deutlich übersichtlicher. Auch wenn man die Klammer nicht zwingend braucht, sie bringt Ordnung ins Programm.
- Das Delay am Ende soll den Taster entprellen. Kannst du eventuell aber auch raus lassen.
Habe nichts zum Testen hier, lass mich gerne wissen ob das dein Problem löst. 
Viele Grüße
Lars