PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Motorshield Sainsmart L298N



ahave
16.06.2014, 13:30
hallo,

das Thema wurde kurz im diesem Thread ( start mit Arduino (https://www.roboternetz.de/community/threads/64940-Start-mit-Arduino) ) angeschnitten, ich befürchte aber sowas lesen nicht viele, deshalb dachte ich, ich frage mal direkt danach...

Ich habe diesen Motortreiber (http://www.sainsmart.com/sainsmart-l298n-dual-h-bridge-stepper-motor-driver-controller-board-module-for-arduino-robot.html), habe den Eindruck, dass die Motoren nur mit gedrosselten Leistung laufen. Probiert habe ich es mit mehreren Programmen, Die PWM war immer mit 255 eingestellt. Ich vermute ein Problem mit der Verdrahtung...

Die sieht so aus:

28496

das Accupack hat 6xAA Zellen, also um die 8V, am Motor selbst kommen aber nur 5V an. Gemessen mit einem Multimeter bei laufendem Motor an den OUT-Anschlüssen...

Kennt jemamnd das Problem?

Andree-HB
16.06.2014, 14:06
...mal ein leistungsfähiges Netzteil anschliessen - wahrscheinlich bricht durch die Last die Spannung zusammen.
Der Treiber kann zudem nur max. 500mA liefern, die erreicht man schnell (gerade mit vier Motoren)

(ausserdem kann man eine pwm-modulierte Spannung nicht problemlos mit einem normalen Multimeter messen)

ahave
16.06.2014, 14:33
danke für die schnelle Antwort,

und ja, es sind ja zwei treiber für vier motoren...

abgesehen von dem fürchterlichen Deutsch, steht das irgedwo hier verschlüsselt drinn?
---------------------------------------
Beschreibung:
Fahrer: L298N verdoppeln H-Brücke DC Motor Driver IC
Ansteueranschluss Stromversorgung: +5 V ~ +35 V; (wenn andere vom Vorstand mit Strom versorgt werden müssen, sollten Stromversorgung +7 V ~ +35 V sein)
Antriebsteile des Peak-Strom: 2A
Logic-Klemme Stromversorgung: +5 V ~ +7 V (Stromversorgung innerhalb der Platine: +5 V)
Logic Teil der Betriebsstrom: 0 ~ 36mA
Steuersignalanschlüsse Eingangsspannungsbereich: Low:-0.3V? Vin? 1,5 V; Hoch: 2.3V? Vin? Vss
Aktivieren Signal Eingangsspannungsbereich: Niedrig: -0.3? Vin? 1.5V (Steuersignal inaktiv); Hoch: 2.3V? Vin? Vss (Steuersignal aktiv)
Maximale Leistungsaufnahme: 20W (bei 75 ° C)
Lagertemperatur: -25 ~ +130 ° C
Andere Erweiterungen: Kontrollleuchten, Logik-Einheit Stromversorgung Schnittstelle
Größe (L x W x H): 55 x 49 x 33mm (enthält die Höhe der Säule und Kupfer Kühlkörper)
--------------------------------------

wäre das hier (http://www.ebay.de/itm/F05710-L293D-Motor-Drive-Schild-Expansion-Board-fur-Mega-UNO-Duemilanove-/281279349563?pt=Wissenschaftliche_Ger%C3%A4te&hash=item417d8e433b)besser, oder ist das alles der gleiche mist? Echte Alternative?

danke...

Rabenauge
16.06.2014, 14:47
Das verlinkte ist ein Nachbau des alten Adafruit-Shields.,
Infos dazu gibts bei Adafruit (nach V1.2 suchen).
Das Ding hab ich da- mit huckepack aufgedoppelten Treibern (ja das geht wirklich).
Mist an dem ist, dass es abartig viele Pins belegt.
Beim MEGA nicht soo tragisch, beim Uno bleibt nicht viel frei: die analogen (sind auch hochgeführt, da braucht man nur Stecker oder Buchsenleisten anlöten), und zwei digitale (ich glaub, 2 und 13), alles andere blockiert das Ding.

Ich denke dass deine Teile vorteilhafter sind, vor allem eben, weil sie nicht so viele Pins brauchen (beim Shield kannst du z.B. die Servoanschlüsse, wenn du vier Motoren dran hast, _nicht_ mehr benutzen!). Kann man mitm Mega umgehen, aber toll ist das trotzdem nicht.
Das Shield ist übrigens mit 600ma Dauer angegeben-für deine Minimotoren sollt das reichen, für grössere aber nicht (drum hab ich meine Treiber aufgedoppelt).

Wenn es wirklich nicht an meinem Vorschlag (wie ich dir im anderen Thread schrieb) lag, denke ich auch, dir bricht die Akkuspannung ein. NiMh ist halt nur Gerümpel wenn man bisschen Strom braucht. Kannst, wenn du kein vernünftiges Netzteil hast, ja mal nen Satz _gute_ Batterien probieren, zum testen.

Klebwax
16.06.2014, 15:03
das Accupack hat 6xAA Zellen, also um die 8V, am Motor selbst kommen aber nur 5V an. Gemessen mit einem Multimeter bei laufendem Motor an den OUT-Anschlüssen...

Kennt jemamnd das Problem?

Merkwürdige Akkus, von den 6 Stück 8V liefern. Ich würde da eher 7,5 V oder weniger erwarten, vor allem unter Last.

Wo kommt eigentlich die Vorstellung her, das ICs am Ausgang grundsätzlich die Versorgungsspannung liefern? Das schafft nur ein Stück Draht, ein Schalter oder ein Relais. Jedes aktive Bauteil im Strompfad braucht Spannung, um arbeiten zu können. Das ist nun aber kein Geheimnis und da du das verwendete IC ja kennst, ist die Größe der erforderlichen Spannung leicht nachlesbar.
28497

MfG Klebwax

PS, was mit deiner geposteten Alternative ist, kannst im Datenblatt des verwendeten Chips finden

ahave
16.06.2014, 15:15
Merkwürdige Akkus, von den 6 Stück 8V liefern. Ich würde da eher 7,5 V oder weniger erwarten, vor allem unter Last.

Wo kommt eigentlich die Vorstellung her, das ICs am Ausgang grundsätzlich die Versorgungsspannung liefern? Das schafft nur ein Stück Draht, ein Schalter oder ein Relais. Jedes aktive Bauteil im Strompfad braucht Spannung, um arbeiten zu können. Das ist nun aber kein Geheimnis und da du das verwendete IC ja kennst, ist die Größe der erforderlichen Spannung leicht nachlesbar.
28497

MfG Klebwax

PS, was mit deiner geposteten Alternative ist, kannst im Datenblatt des verwendeten Chips finden

@Klebwax:
nichts für ungut, aber eigentlich habe ich Hilfe erwartet und keine Belehrungen. Warum gehts Du davon aus dass Anfänger alles wissen und keine Fehler machen? Wenn das so wäre bräuchte man kein Forum...

@Rabenauge:
der Versuch mit den Batterien (6x AA Alkaline von Duracell, 6x1,5=9V - richtig?) hat nichts weltbewegendes gebracht, vielleicht 10% besser...

dussel07
16.06.2014, 17:48
Ich weiß, is ne blöde Frage: hast Du die Brücken gesteckt 5V -> enable ??
Zu sehen sind sie nicht aber - - - -

ahave
16.06.2014, 18:03
ein abgedroschener Spruch, er gilt aber immer noch - es gibt keine dummen Fragen...

nein, habe ich nicht, weil ich die ENB-pins ja mit dem mega2560 verbinden muss und damit ist für die Jumper kein Platz mehr. Oder habe ich da was falsch verstanden?

RoboHolIC
17.06.2014, 01:29
@Klebwax:
nichts für ungut, aber eigentlich habe ich Hilfe erwartet und keine Belehrungen. Warum gehts Du davon aus dass Anfänger alles wissen und keine Fehler machen? Wenn das so wäre bräuchte man kein Forum...

Jaja, immer schön pampig reagieren, wenn man bei versäumten Hausaufgaben ertappt wird.

Manf
17.06.2014, 07:57
Wo kommt eigentlich die Vorstellung her, das ICs am Ausgang grundsätzlich die Versorgungsspannung liefern?

aber eigentlich habe ich Hilfe erwartet und keine Belehrungen.

Jaja, immer schön pampig reagieren, wenn man bei versäumten Hausaufgaben ertappt wird.
Bevor das noch eskaliert. :0)
Es wurde die Stelle im Datenblatt gezeigt die das Problem beschreibt. Das ist natürlich eine hilfreiche Belehrung (wenn auch nur ansatzweise geduldig).
Es führt doch zu nichts weiter über den Stil zu lamentieren, wie geht es denn inhaltlich weiter?

ahave
17.06.2014, 08:25
hallo allerseits,

meine Antwort war sicher nicht pampig gemeint, nur von meiner Enttäuschung geprägt...

Man hat sich viel Mühe gegeben und den Ausschnitt aus dem Datenblatt schön gekennzeichnet, was macht man aber damit, wenn man keine Ahnung hat was "Total Drop" eigentlich ist?
Jeder von uns hier hat einen eigenen Weg hinter und vor uns, manche hatten aber wenig bis keine Möglichkeit mit Elektronik und damit verbundenem technischen Englisch aufzuwachsen. Was machen die nun, wenn sie als Antwort nur den Hinweis bekommen das verdammte Datenblatt zu lesen bzw. die BIldungslücken zu schließen? Dürfen die keinen Versuch machen sich laienhaft zwar, aber immerhin mit der Robotik zu beschäftigen? Aber genung davon...

Inhaltlich geht es so weiter, dass ich dem Hinweis auf die einbrechende Akkuspannung nachgegangen bin, die Spannung an den OUT-Klemmen während der Motor anläuft und weiterläuft gemessen. Klar kann man das nur ansatzweise, die Spannung schwankt, das Multimeter kann nur auschnittsweise das anzeigen was es eben mitkriegt:

Beim Anlaufen sinkt die Spannung unter 1V, wenn der Motor weiterdreht sind es ca. 5V. Dem entgegenwirken wollte ich mit dem Einsatz eines zweiten Akkupacks, parallel zum ersten angeschlossen. Da dieser mit abschaltbar sein sollte kann ich es nicht einfach an das zweite Shield anchließen, sondern muss den Lötkolben rausholen...

ich berichte dann wieder...

Ford Prefect
17.06.2014, 10:23
Was machen die nun, wenn sie als Antwort nur den Hinweis bekommen das verdammte Datenblatt zu lesen bzw. die BIldungslücken zu schließen? Dürfen die keinen Versuch machen sich laienhaft zwar, aber immerhin mit der Robotik zu beschäftigen?
+1
IMO sollten einige Antworten durchaus etwas wohlwollender, hilfsbereiter und anfängerfreundlicher ausfallen - und oftmals weniger vage, sondern deutlich konkreter und verbindlicher.

Rabenauge
17.06.2014, 11:55
ahave: bleib mal bei den Treibern, die du nun hast.
Offenbar sind die für deinen Roboter vorgesehn, also auch ausreichend.
Wenn da eben nur 5V rauskommen, kann das durchaus gewollt sein- du hast recht kleine Getriebemotoren drin, womöglich sollen die nur mit 5V betrieben werden.
Zudem versorgst du den Mega auch mit (ich schriebs dir schon- das würde ich mal versuchsweise anders machen, also Dino und Treiber getrennt versorgen). Du kannst deine 7.x Volt problemlos in den MEGA einspeisen, und zwar antweder über die vorgesehene Stromversorgungsbuchse, oder über den VIn-Pin. Wenn du das so machst, kannst ihn auch noch an USB anstecken zum programmieren.
Ausserdem blicke ich die Sache mit den Jumpern bei deinen Treibern nicht- keine Ahnung, was die bewirken (da fehlt ne vernünftige Anleitung einfach mal..), womöglich muss da was umgesteckt werden.

@Ford Prefect: das Problem ist, dass es für die Dinos so ziemlich alles gibt. Zudem bauen die Chinesen nach Lust und Laune nach-teilweise wirklich identisch, teilweise aber eben nicht genau so. Und: die Brüder liefern dann Datenblätter der Originale mit, meist schlecht kopiert, oder auch mal gar keine. Da ists schwer, durchzublicken, wenn man den selben Kram nicht hat.
Teilweise sind die Chinesen den Originalen auch voraus: ich hab hier nen wunderhübschen Uno R3, der umschaltbar ist von 5V auf 3.3V, zumdem hat er die Pins nicht nur auf den Steckleisten, sondern innen noch mal schön als Ministecker-jeden brav mit Masse und VCC versehen, angeordnet. Find ich besser als beim Original.
Dumm ist daran nur eines: das Ding ist nirgends dokumentiert! Z.B. weiss ich nicht, was passiert, wenn man ihn mit 3.3V betreibt-wahrscheinlich läuft er dann mit verringerter Taktrate. Da meine externen Teile alle auf 5V laufen, hab ichs nie ausprobiert bisher..

ahave
17.06.2014, 16:22
Hi Rabenauge,

ich habe jetzt noch einmal mit zwei Akkupacks je 6 Zellen "gemessen":

beim Anlaufen der Motoren (alles hochgebockt) zeigt das Multimeter Werte zwischen 2,2 und 2,8V, beim Dauerlauf sind es wieder 5V, also ist es zwar etwas besser, dafür ist das Chassis wesentlich schwerer. Beim Vorwärts- und Rückwärtsfahren gibt es nach wie vor keine Probleme, beim Wenden immer noch. Werde noch weiter probieren....


ahave: bleib mal bei den Treibern, die du nun hast. Offenbar sind die für deinen Roboter vorgesehn, also auch ausreichend.
Wenn da eben nur 5V rauskommen, kann das durchaus gewollt sein- du hast recht kleine Getriebemotoren drin, womöglich sollen die nur mit 5V betrieben werden.
das die Motortreiber nur für die in dem Smartcar eingebauten Motoren sind glaube ich eigentlich nicht, weil Sainsmart die Treiber auch getrennt von diesem Smartcar anbietet...
Da mir das keine Ruhe lässt, habe ich den L293 Treiber bestellt, das dauert jetzt natürlich wieder ein paar Tage, bis der wieder da ist...


Zudem versorgst du den Mega auch mit (ich schriebs dir schon- das würde ich mal versuchsweise anders machen, also Dino und Treiber getrennt versorgen). Du kannst deine 7.x Volt problemlos in den MEGA einspeisen, und zwar antweder über die vorgesehene Stromversorgungsbuchse, oder über den VIn-Pin. Wenn du das so machst, kannst ihn auch noch an USB anstecken zum programmieren.
das werde ich noch probieren, obwohl ich nicht glaube, dass die Megaplatine soviel verbraucht dass man es am Motorlauf merktt?



Ausserdem blicke ich die Sache mit den Jumpern bei deinen Treibern nicht- keine Ahnung, was die bewirken (da fehlt ne vernünftige Anleitung einfach mal..), womöglich muss da was umgesteckt werden.
Die Funktion der zwei Jumper ist mir auch nicht klar, wie schon erwähnt, wenn man die Treiber an den Mega mit Litzen anschließen will, ist für die Jumper gar kein Platz - es sei denn man wollte die zwei 5V pins verbinden...

Rabenauge
17.06.2014, 16:50
Hm,schade dass ich diese Dinger nicht hab-aber ich hab ein Foto (von deinem Roboter) gesehn, da waren die Jumper sehr wohl drauf.
Da sie dort jeweils Enable mit 5V verbinden, schliesse ich daraus mal, dass _dieser_ Roboter dann rein digital gesteuert wurde (ohne PWM).
Auch das geht natürlich-und vereinfacht nen paar Sachen (da man sich um die PWM nicht kümmern muss).
Wahrscheinlich müssten dann zum stoppen immer beide Motorleitungen auf Low gesetzt werden-wenn du Glück hast, haste sogar ne Bremse dann.

Kannst du probehalber auch mal probieren: die Jumper drauf, und _dann_ mal messen, was an den Motorleitungen anliegt.

Dass das Dingelchen beim drehen etwas in die Knie geht, spannungsmässig, leuchtet mir ein: wenn die Rädchen auch nur halbwegs gescheit Bodenhaftung haben, würgt das Ding sich selber ab. Das lenkt dann schwerer als Gleisketten.

Miss mal bitte die Stromaufnahme der Motoren (einzeln) unter Vollast, wenns geht. Würd mich mal interessieren, was die so brauchen (klein bedeutet nicht zwangsläufig stromsparend).

ahave
19.06.2014, 09:14
Hallo Rabenauge,


Hm,schade dass ich diese Dinger nicht hab-aber ich hab ein Foto (von deinem Roboter) gesehn, da waren die Jumper sehr wohl drauf.
Da sie dort jeweils Enable mit 5V verbinden, schliesse ich daraus mal, dass _dieser_ Roboter dann rein digital gesteuert wurde (ohne PWM).
Auch das geht natürlich-und vereinfacht nen paar Sachen (da man sich um die PWM nicht kümmern muss).
Ich habe jetzt die Pins am Motorschield so verbunden wie sie ursprünglich waren, jeweils ENA / ENB mit 5V verbunden. Der motor läuft mit voller Geschwindigkeit an, wenn er auf beiden Pins auf "HIGH" gesetzt wird, die Enableleitungen werden nicht gebraucht...
Der Versuch in dem Code eine "Beschleunigungsrampe" einzubauen scheitert aber, die Erhöhung wird auf dem Serialmonitor angezeigt, der Motor beschleunigt aber nicht, unabhängig wie groß das Delay wird. Ab der Erhöhung des Startwertes in der For-schleife auf 100 bremst er auch nicht mehr, bzw. bleibt nach dreimaligem Durchlauf nicht stehen, sondern läuft weiter.

mit diesem Code (habe ich aus Post 19 kopiert und an meine Pinbezeichnungen angepasst) habe ich das Ganze getestet:

#define S1_IN_1 50 //Motor_1 Anschluss_1
#define S1_IN_2 52 //Motor_1 Anschluss_2

void setup()
{
// setup Motor 1 pins
pinMode(S1_IN_1, OUTPUT);
pinMode(S1_IN_2, OUTPUT);

Serial.begin(9600);
}

void loop()
{
{
digitalWrite(S1_IN_2, LOW);
// digitalWrite(S1_IN_2, HIGH);
// delay(1000);
for(int j=0; j<3; j++)
{


analogWrite(S1_IN_1, LOW); //war digital
for (int i=0; i<255; i=i+5)
{
analogWrite(S1_IN_1, i); //war digital
Serial.println(i);
delay(2000);
}
}
digitalWrite(S1_IN_1, LOW);
digitalWrite(S1_IN_2, LOW);
delay(500);
}
while(1);
}





Wahrscheinlich müssten dann zum stoppen immer beide Motorleitungen auf Low gesetzt werden-wenn du Glück hast, haste sogar ne Bremse dann.das funktioniert so weit - siehe oben...


Miss mal bitte die Stromaufnahme der Motoren (einzeln) unter Vollast, wenns geht. Würd mich mal interessieren, was die so brauchen (klein bedeutet nicht zwangsläufig stromsparend).
der Motor zieht beim Drehen 160mA, wobei die Anzeige am Multimeter keine statische ist. Hält man den Motor fest, sind es 500mA. Mit den gesetzten Jumpern auf dem Motorshield ist die Anlaufspannung ca. 3,5V, der Spannungseinbruch ist also nicht so stark wie vorher, bei Nutzen des PWM. Die frage nach der Möglichkeit einer "digitalen" Beschleunigungsrampe bleibt...

EDIT: ich habe die zwei Zeilen in der FOR-schleife

von "digital" n "analog" geändert.

der Motor läuft bei i=130 an und läuft mit konstander Geschwindigkeit weiter, auch die dreimalige Ausführung der Schleife und das Halten bei "while(1)" werden nun ausgeführt, beschleunigen tut der Motor - zumindest sicht oder hörbar - nicht...

Rabenauge
19.06.2014, 18:17
Ich hab den Verdacht, dass die Jumper die ENA-Leitungen permanent auf High setzen- und du _dann_ die Drehzahl gar nicht regeln kannst.
Miss mal, ob an den 5V-Pins (da wo die Jumper drauf sind), _immer_ 5V anliegen.
Solte dem so sein, dann gibtst du permanent auf die Enable-Leitungen 5V (bei gesetzten Jumpern)- die haben also immer Vollgas.

Vermutlich dient das dazu, ggf. Pins zu sparen, wenn man die Drehzahlregelung nicht braucht.
Und mal ehlich: bei dem kleinen Ding-wozu. Bei Sainsmart irgendwo gibts ein Video mit dem Roboter: wenn das, was der da fährt, Vollgas ist, seh ich keinen Grund für ne Drehzahlregelung.
zum Kurven fahren kannst du dennoch -in Grenzen- etwas steuern, nämlich, indem die die kurveninneren Motoren "ab und zu" an-bzw. ausschaltest. Ist dann so ähnlich wie ne PWM, aber hausgemacht halt.
analogWrite() funktioniert übrigens _nur_ auf PWM-Pins, auf allen anderen nicht.
Und digitalWrite() kann nichts anderes als HIGH oder LOW!

Du sagst, du setzt beide (die übrigen..) Leitungen auf HIGH, damit er losfährt- was passiert, wenn du _eine_ High, die andere LOW setzt und: was, wenn beide auf LOW sind?

Vom Stromverbrauch her dürftest du treibermässig auf der sicheren Seite sein- 500mA Blockierstrom sollten die Treiber schaffen.
Allerdings: bei vier Motoren macht das flockige 2A Gesamtstrom (plus Kleinvieh, weil auch der Rest nen bissel was braucht)- das geht wirklich nur mit sehr guten Batterien- oder nem _ordentlichen_ Akku.
Meine Empfehlung, wenn du bei AA-Grösse bleiben willst: Sanyo Eneloop. Sind nicht die billigsten, aber rechnen sich auf Dauer allemal und packen das auch.

Kommen ja später noch Servo und weitere Technik dazu- der beste Motor und der beste Treiber sind nutzlos, wenn der Akku die nötigen Ströme einfach nicht liefern kann.