Code:
//bridge S1
#define S1_IN_1 52 // H-bridge_1 OUT1.1
#define S1_IN_2 50 // H-bridge_1 OUT1.2
#define S1_ENB_M_2 11 // H-bridge_1 Enable motor-2
#define S1_IN_3 48 // H-bridge_1 OUT2.3
#define S1_IN_4 46 // H-bridge_1 OUT2.4
#define S1_ENA_M_4 10 // H-bridge_1 Enable motor-4
//bridge S2
#define S2_IN_1 53 // H-bridge_2 OUT1.1
#define S2_IN_2 51 // H-bridge_2 OUT1.2
#define S2_ENA_M_3 8 // H-bridge_2 Enable motor-3
#define S2_IN_3 49 // H-bridge_2 OUT2.3
#define S2_IN_4 47 // H-bridge_2 OUT2.4
#define S2_ENB_M_1 9 // H-bridge_2 Enable motor-1
// boolean running = false;
void setup()
{
// setup Motor 1 pins
pinMode(S1_IN_1, OUTPUT);
pinMode(S1_IN_2, OUTPUT);
// setup Motor 2 pins
pinMode(S1_IN_3, OUTPUT);
pinMode(S1_IN_4, OUTPUT);
// setup Motor 3 pins
pinMode(S2_IN_1, OUTPUT);
pinMode(S2_IN_2, OUTPUT);
// setup Motor 4 pins
pinMode(S2_IN_3, OUTPUT);
pinMode(S2_IN_4, OUTPUT);
}
void vorwaerts()
{
//Motor_1 & 2 vorwärts
digitalWrite(S1_IN_1, LOW); // set leg 1 of the H-bridge_1 low
digitalWrite(S1_IN_2, HIGH); // set leg 2 of the H-bridge_1 high
digitalWrite(S1_IN_3, LOW); // set leg 3 of the H-bridge_1 low
digitalWrite(S1_IN_4, HIGH); // set leg 4 of the H-bridge_1 high
//Motor_3 & 4 vorwärts
digitalWrite(S2_IN_1, LOW); // set leg 1 of the H-bridge_2 low
digitalWrite(S2_IN_2, HIGH); // set leg 2 of the H-bridge_2 high
digitalWrite(S2_IN_3, LOW); // set leg 3 of the H-bridge_2 low
digitalWrite(S2_IN_4, HIGH); // set leg 4 of the H-bridge_2 high
Ramp(0,255,2,10);
}
void rueckwaerts()
{
//Motor_1 & 2 rückwärts
digitalWrite(S1_IN_1, HIGH); // set leg 1 of the H-bridge_1 low
digitalWrite(S1_IN_2, LOW); // set leg 2 of the H-bridge_1 high
digitalWrite(S1_IN_3, HIGH); // set leg 3 of the H-bridge_1 low
digitalWrite(S1_IN_4, LOW); // set leg 4 of the H-bridge_1 high
//Motor_3 & 4 rückwärts
digitalWrite(S2_IN_1, HIGH); // set leg 1 of the H-bridge_2 low
digitalWrite(S2_IN_2, LOW); // set leg 2 of the H-bridge_2 high
digitalWrite(S2_IN_3, HIGH); // set leg 3 of the H-bridge_2 low
digitalWrite(S2_IN_4, LOW); // set leg 4 of the H-bridge_2 high
Ramp(0,255,2,10);
}
void drehen_links()
{
//Motor_1 & 2 vorwärts
digitalWrite(S1_IN_1, HIGH); // set leg 1 of the H-bridge_1 low
digitalWrite(S1_IN_2, LOW); // set leg 2 of the H-bridge_1 high
digitalWrite(S1_IN_3, LOW); // set leg 3 of the H-bridge_1 low
digitalWrite(S1_IN_4, HIGH); // set leg 4 of the H-bridge_1 high
//Motor_3 & 4 rückwärts
digitalWrite(S2_IN_1, HIGH); // set leg 1 of the H-bridge_2 low
digitalWrite(S2_IN_2, LOW); // set leg 2 of the H-bridge_2 high
digitalWrite(S2_IN_3, LOW); // set leg 3 of the H-bridge_2 low
digitalWrite(S2_IN_4, HIGH); // set leg 4 of the H-bridge_2 high
Ramp_dreh(0,255,2,20);
}
void loop()
{
vorwaerts();
rueckwaerts();
drehen_links();
}
void Ramp(int Start, int End, int Inc, int Del) //int Motor entfernt
{
/* Ramps from PWM of Start to End
adding Inc each time
delay of Del MS each time thru the loop
*/
for(int i=Start;i<End;i = i + Inc)
{
analogWrite(S1_ENA_M_4, i); // Motor 4 enable
analogWrite(S1_ENB_M_2, i); // Motor 2 enable
analogWrite(S2_ENA_M_3, i); // Motor 3 enable
analogWrite(S2_ENB_M_1, i); // Motor 1 enable
delay(Del);
}
}
void Ramp_dreh(int Start, int End, int Inc, int Del) //int Motor entfernt
{
/* Ramps from PWM of Start to End
adding Inc each time
delay of Del MS each time thru the loop
*/
for(int i=Start;i<End;i = i + Inc)
{
analogWrite(S1_ENA_M_4, i); // Motor 4 enable
analogWrite(S1_ENB_M_2, i); // Motor 2 enable
analogWrite(S2_ENA_M_3, i); // Motor 3 enable
analogWrite(S2_ENB_M_1, i); // Motor 1 enable
delay(Del);
}
}
von dem Code habe ich schon einighes verstanden, weiss aber echt nicht was ich noch probieren könnte...
Lesezeichen