Liste der Anhänge anzeigen (Anzahl: 1)
hallo Rabenauge,
danke erstmal dass Du Dich so reihängst...
Zitat:
Zitat von
Rabenauge
Hättste das Motorshield aus deiner vorherigen Einkaufsliste genommen...
Erstens _kenne_ ich das Ding (benutz es selber ab und an), zweitens kann es mehr. Ok: es blockiert mehr Pins aber beim Mega...der hat noch lange genug.
Und: das Shield bekommste ungefähr für den Preis eines deiner Treiberdinger da...und das steuert dir deine vier Motoren auch an.
ich habe es nur genommen, weils in dem kompletten Bausatz dabei war. Bei den Pins bin ich sowieso noch unsicher - beim draufstecken des Motorshields auf den Mega wären ja quasi "alle" Pins zumindest abgedeckt, so dass man überhaupt nicht drankommt - deshalb fand ich die nicht-steckbaren eigentlich besser, da die ja sowieso nur für die Motoren da sind und wenn sie neben den Motoren untergebracht sind...
Zitat:
Zitat von
Rabenauge
Hast du ne ANLEITUNG (bitte nicht irgendwelches Internetgesülz, sondern wenns geht vom Hersteller) zu dem Ding?? Mir schwant da nämlich was, aber ich würd gerne dazu nen Anschlusschema sehn.
siehe Anhang...
Zitat:
Zitat von
Rabenauge
Und nochwas: vergiss mal das zweite der Dinger für eine Weile- wir bringen _eines_ davon zum laufen, alles andere fangen wir gar nich an.
Wenn das eine läuft, kümmern wir uns um Nummer 2 (mir schwant auch da noch ne Kleinigkeit)...
ok...
Zitat:
Zitat von
Rabenauge
Ich hab mir mal das Beispiel-ähhh-Programm von Sainsmart besorgt.
Mehr an Doku hat der Laden offenbar nich zu dem Ding aber:
den gleichen Code haben sie mir auf Anfrage auch zugeschickt. Probleme hatte ich mit den speedpins 1 und 2, da muss man offensichtlich auch irgendwelche Pins verbinden wie die 8. 9, 6 und 7 mit den INT1,2, 3,4 verbinden...
Zitat:
Zitat von
Rabenauge
Probier den mal aber setz die Jumper richtig (nein, ich weiss nicht, wie..)
meinst Du die jumper an dem Motorshield? Den Code werde ich noch testen (mit den Jumpern...
Liste der Anhänge anzeigen (Anzahl: 1)
an dem Anderen bin ichn noch dran, habe aber ein Schaltplan für das Modul gefunden
Anhang 28367
- - - Aktualisiert - - -
so, jetzt habe ich folgendes gemacht:
von dieser webseite:
mit dieser einstellung:
Zitat:
Jumpers:
ENA Removed
ENB Removed
PWM1 Installed - wahrscheinlich durch die Verbindung ENA - Arduino3
PWM2 Installed - ENB verbunden mit Arduino6
On the header:
GND ==> GND on Arduino
5V ==> N/C (5V Logic power is available from on-board regulator)
ENB ==> Arduino 6
ENA ==> Arduino 3
IN1 ==> Arduino 2
IN2 ==> Arduino 4
IN3 ==> Arduino 7
IN4 ==> Arduino 8
Power Terminal Block:
5V ==> N/C
GND ==> Ground on Motor Power Supply
VCC ==> +12V (for 12 volt motor)
OUT1 Terminal Block:
Pin1 ==> Motor 1 +
Pin2 ==> Motor 1 -
OUT2 Terminal Block:
Pin1 ==> Motor 2 +
Pin2 ==> Motor 2 -
diesen
Code:
/*
L298N Test Code
hacker.instanet.net
Tim Laren timl@instanet.com
This example code is in the public domain.
*/
#define OUT1PIN1 2 // H-bridge OUT1.1
#define OUT1PIN2 4 // H-bridge OUT1.2
#define ENABLE1 3 // H-bridge Ena 1
#define OUT2PIN1 7 // H-bridge OUT2.1
#define OUT2PIN2 8 // H-bridge OUT2.2
#define ENABLE2 6 // H-bridge Ena 2
void setup() {
// setup motor pins
pinMode(OUT1PIN1, OUTPUT);
pinMode(OUT1PIN2, OUTPUT);
pinMode(ENABLE1, OUTPUT);
digitalWrite(ENABLE1, HIGH); // set the enables to high
}
void loop() {
digitalWrite(OUT1PIN1, LOW); // set leg 1 of the H-bridge low
digitalWrite(OUT1PIN2, HIGH); // set leg 2 of the H-bridge high
delay(5000);
digitalWrite(OUT1PIN1, HIGH); // set leg 1 of the H-bridge high
digitalWrite(OUT1PIN2, LOW); // set leg 2 of the H-bridge low
delay(5000);
}
Motor RH dreht ca. 5sec, stoppt und dreht 5sec in andere Richtung
jetzt werde ich versuchen das für zwei Motoren zu erweitern...
edit:
zunächstmal geht auch Beschleunigung - mit diesem
Code:
/*
L298N Test Code w/ Speed Control
hacker.instanet.net
Tim Laren timl@instanet.com
This example code is in the public domain.
*/
#define OUT1PIN1 2 // H-bridge OUT1.1
#define OUT1PIN2 4 // H-bridge OUT1.2
#define ENABLE1 3 // H-bridge Ena 1
#define OUT2PIN1 7 // H-bridge OUT2.1
#define OUT2PIN2 8 // H-bridge OUT2.2
#define ENABLE2 6 // H-bridge Ena 2
void setup() {
// setup Motor 1 pins
pinMode(OUT1PIN1, OUTPUT);
pinMode(OUT1PIN2, OUTPUT);
// setup Motor 2 pins
pinMode(OUT2PIN1, OUTPUT);
pinMode(OUT2PIN2, OUTPUT);
}
void loop() {
digitalWrite(OUT1PIN1, LOW); // set leg 1 of the H-bridge low
digitalWrite(OUT1PIN2, HIGH); // set leg 2 of the H-bridge high
Ramp(ENABLE1,0,255,1,10);
Ramp(ENABLE1,255,0,-1,10);
digitalWrite(OUT1PIN1, HIGH); // set leg 1 of the H-bridge high
digitalWrite(OUT1PIN2, LOW); // set leg 2 of the H-bridge low
Ramp(ENABLE1,0,255,1,10);
Ramp(ENABLE1,255,0,-1,10);
}
void Ramp(int Motor, int Start, int End, int Inc, int Del) {
/* 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(Motor, i); // Motor 1 Speed
delay(Del);
}
}
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...