// Motor A connections
//int enA = 9;
int in1 = 8;
int in2 = 7;
// Motor B connections
//int enB = 3;
int in3 = 6;
int in4 = 5;
// Motor C connections
//int enB = 3;
int in1b = 10;
int in2b = 9;
//Taster
int Taster1 = 2;
int Taster2 = 3;
int Taster3 = 4;
//Zeitvariable
const long intervalL = 1000; // Zeit für Motor Linkslauf
const long intervalR = 1200; // Zeit für Motor Rechtslauf (milliseconds)
unsigned long previousMillis_M1 = 0; // will store last time M1 was updated
unsigned long previousMillis_M2 = 0; // will store last time M2 was updated
unsigned long previousMillis_M3 = 0; // will store last time M3 was updated
int speed = 0;
void setup() {
// Set all the motor control pins to outputs
//pinMode(enA, OUTPUT);
//pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(in1b, OUTPUT);
pinMode(in2b, OUTPUT);
pinMode(Taster1, INPUT_PULLUP);
pinMode(Taster2, INPUT_PULLUP);
pinMode(Taster3, INPUT_PULLUP);
// Turn off motors - Initial state
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
digitalWrite(in1b, LOW);
digitalWrite(in2b, LOW);
//digitalWrite(enA, HIGH);
//digitalWrite(enB, HIGH);
}
void loop() {
unsigned long currentMillis = millis();
//Motor3
if (digitalRead(Taster3) == LOW) {
//Motor3 links
digitalWrite(in1b, LOW);
digitalWrite(in2b, HIGH);
// save the last time
previousMillis_M3 = currentMillis;
}
if (currentMillis - previousMillis_M3 >= intervalL) {
if (digitalRead(in2b)== HIGH) {
//Motor3 rechts
digitalWrite(in1b, HIGH);
digitalWrite(in2b, LOW);
}
}
if (currentMillis - previousMillis_M3 >= intervalL+intervalR) {
//Motor3 aus
digitalWrite(in1b, LOW);
digitalWrite(in2b, LOW);
}
//Motor2
if (digitalRead(Taster2) == LOW) {
//Motor3 links
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// save the last time
previousMillis_M2 = currentMillis;
}
if (currentMillis - previousMillis_M2 >= intervalL) {
if (digitalRead(in4)== HIGH) {
//Motor3 rechts
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
}
if (currentMillis - previousMillis_M2 >= intervalL+intervalR) {
//Motor3 aus
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
//Motor1
if (digitalRead(Taster1) == LOW) {
//Motor3 links
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
// save the last time
previousMillis_M1 = currentMillis;
}
if (currentMillis - previousMillis_M1 >= intervalL) {
if (digitalRead(in2)== HIGH) {
//Motor3 rechts
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
}
}
if (currentMillis - previousMillis_M1 >= intervalL+intervalR) {
//Motor3 aus
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
//Motor2 links
// digitalWrite(in3, LOW);
// digitalWrite(in4, HIGH);
//delay(1000);
//Motor2 rechts
// digitalWrite(in3, HIGH);
//digitalWrite(in4, LOW);
//delay(1000);
//Motor2 aus
//digitalWrite(in3, LOW);
//digitalWrite(in4, LOW);
//delay(1000);
//Motor1 links
// digitalWrite(in1, LOW);
//digitalWrite(in2, HIGH);
//delay(1000);
//Motor1 rechts
// digitalWrite(in1, HIGH);
// digitalWrite(in2, LOW);
//delay(1000);
//Motor1 aus
//digitalWrite(in1, LOW);
// digitalWrite(in2, LOW);
//delay(1000);
//Motor3 links
// digitalWrite(in1b, LOW);
// digitalWrite(in2b, HIGH);
//delay(1000);
//Motor3 rechts
// digitalWrite(in1b, HIGH);
// digitalWrite(in2b, LOW);
//delay(1000);
//Motor3 aus
// digitalWrite(in1b, LOW);
// digitalWrite(in2b, LOW);
//delay(1000);
//accelerate motor
//for (speed = 0; speed < 255; ++speed) {
//digitalWrite(in1, 0);
//analogWrite(in2, speed);
//delay(20);
//}
}