Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Rabenauge,
Es klappt immer noch nicht. Beim hochgebocktem Chassis schon, sobald das Ding auf dem Boden steht, fährt es vor und zurück, Er zuckt nur mal kurz nach links. Drehen auf der Stelle geht einfach nicht. Auch die Räder lassen sich leicht festhalten, wenn die Motoren drehen. Könntest Du Dir bitte die dreh-Funktion anschauen? Evtl. ohne der Rampe? Länger drehen?
Hier noch ein paar daten...
Du wolltest eine stromlaufplan des Chassis:
Anhang 28409
die zusätzlichen Verbindungen sehen so aus:
----------------------------------------------------------------------
Farbe Pin Motor-shield
br 8 S2_ENA_M_3
sw 9 S2_ENB_M_1
gn 53 S2_IN_1
ws 51 S2_IN_2
or 49 S2_IN_3
ge 47 S2_IN_4
rt 10 S1_ENA_M_4
br 11 S1_ENB_M_2
gr 52 S1_IN_1
vi 50 S1_IN_2
sw 48 S1_IN_3
bl 46 S1_IN_4
-------------------------------------------------------------------------
das ist der code:
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...