Ich glaube ich möchte mich vorerst auf einen Antrieb begrenzen, da ich etwas im Zeiitdruck bin, muss meine Arbeit nächsten Donnerstag abgeben.
Momentan habe ich ein Pulsen im Stepper wenn dieser nicht läuft hat jemand einen Ahnung warum?
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); // Erstellung des Motorshield Objekt
Adafruit_StepperMotor *myMotor1 = AFMS.getStepper(200, 1); // Motor auf der linken Seite wird über den Port 1 (M1 und M2) angesteuert.
int freig1 = 7;
int freig2 = 5;
int level = 4;
int pump1 = 8;
int pump2 = 9;
int pump3 = 10;
int zylinder = 11;
int start = 12;
byte status1;
byte status2;
byte status3;
byte status4;
byte status5;
void setup() {
pinMode(freig1,INPUT);
pinMode(freig2,INPUT);
pinMode(level,INPUT);
pinMode(pump1,OUTPUT);
pinMode(pump2,OUTPUT);
pinMode(pump3,OUTPUT);
pinMode(zylinder,OUTPUT);
pinMode(start,INPUT);
Serial.begin(9600);
Serial.println("Stepper test!");
AFMS.begin();
myMotor1->setSpeed(150); // 300U/min
myMotor1->setSpeed(150); // 300U/min
}
void loop() {
status1 = digitalRead(start);
status2 = digitalRead(freig1);
status3 = digitalRead(freig2);
if(status1==HIGH)
if (status2==LOW) // Schlitten ist
if(status3==LOW)
{
delay(2000);
myMotor1->step(2100, BACKWARD, DOUBLE);
delay(2000);
{
digitalWrite(zylinder,HIGH); //Zylinder fährt aus
delay(10000);
digitalWrite(zylinder,LOW); //Zylinder fährt wieder ein
delay(5000);
}
{
myMotor1->step(2100, FORWARD, DOUBLE);
delay(5000);
{
if(status2 == LOW)
if(status3 == LOW)
{
digitalWrite(pump1,HIGH);
delay(5000);
digitalWrite(pump1,LOW);
delay(2000);
}
}
}
}
if (status3==LOW)
if(status1==HIGH)
if(status2==HIGH)
{
digitalWrite(pump2,LOW); //Warten auf bis der Schlittenbelgt ist
delay (2000);
}
}