Forum: Analoge Elektronik und Schaltungstechnik Motor ansteuern mit RPi & L293D


von M. H. (michiharry)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte ein RC-Car aus einem alten fergesteuerten Auto, einem 
RaspberryPi und einem L293D-Chip "bauen". Das RC-Car soll man über 
WLAN(TCP) steuern können.

Hardware:
   Wir haben eine Platine gemacht an die man den RPi, die 
Motoren(DC-motoren) und die Batterie anstecken kann. Auf der Paltine ist 
ebenfalls der L293D-Chip(Motortreiber) in einem Sockel befestigt. 
(Schaltplan anbei)

Software:
   Die Serveranwednung(Auto) habe ich in Python geschrieben. Sie 
beinhaltet ein TCP-Socket der von der Clientanwendung(PC) Befehle erhält 
und diese dann ausführt. Ausführung: Es wird mit der Standard-Bibliothek 
des RPi GPIOs (RPi.GPIO) ein PWM Signal erstellt (500Hz und 
Dutycykle/Tastgrad 0,5) Der Tastgrad kann aber über die Clientanwendung 
verändert werden.
Nun: ich schicke über die Clientanwendung den Befehl zum vorwärts 
Fahren, am RPi angekommen wird dann ein PWM erstellt und zum 
Enable1-Anschluss des L293D geschickt. Dann wird noch zu IN1 bzw IN2 vom 
RPi (nicht moduliert! also ohne PWM) Strom geschickt, also der 
Stromkreis geschlossen um die Richtung zu bestimmen.


Problem:
   Sobald die Software des RPis den Motor startet(siehe oben) hört man 
jedoch lediglich den Motor brummen (wahrscheinlich 500Hz). Er bewegt 
sich jedoch nicht.

Was machen wir falsch? Ich weiß es erfordert etwas Zeit um sich da 
"reinzudenken" aber es würde uns sehr helfen, dafür schonmal im vorraus 
vielen Dank!

MFG

von Stephan (Gast)


Lesenswert?

wo sind Euro Dioden ?

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Und wo der Stützelko und die Abblock-Kondensatoren?

Mit freundlichen Grüßen
Thorsten Ostermann

von Stephan (Gast)


Lesenswert?

Michael H. schrieb:
> am RPi angekommen wird dann ein PWM erstellt und zum
> Enable1-Anschluss des L293D geschickt.

An Enable kommt ein statischer Pegel.
Die PWN geht nach IN des 293 wenn ich das richtig sehe.

von Stephan (Gast)


Lesenswert?

Datenblatt Seite 9

von M. H. (michiharry)


Lesenswert?

Danke, danke! Das mit dem IN1/EN1 dreher ist schnell behoben, aber 
könntet ihr das mit den Dioden, Elkos und anderen Kondensatoren 
erklären? tut mir Leid, aber in der Elektrotechnik bin ich noch nicht so 
schlau, eher Laie.

von Jens (Gast)


Lesenswert?

Es gib zu deinem Motortreiber Standardschaltungen. Die solltest du 
erstmal so umsetzen. Da fehlen ja komplett alle Block-Kondensatoren.
Schau dir dazu mal das Datenblatt an, wie man den beschalten muss.
Dann misst du, wie viel Strom aus deinem Netzteil gezogen wird. 
Vielleicht ist das noch zu wenig.
Die Eingangssignale, die aus deinem RPi kommen, müssen auch zu den Daten 
im Datenblatt passen. Die mit dem Oszi messen und vergleichen.
Wenn das alles nichts bringt, dann liegt die Vermutung nahe, dass es 
vielleicht am Aufbau liegt. Dann brauchen die Leute aber alle Infos mit 
Schaltplan (vernünftig und nicht das oben) und Fotos vom Aufbau.

Gruß, Jens

von M. H. (michiharry)


Lesenswert?

Danke! ...wer lesen kann... Ja dann machen wir's mal so wie im 
Datenblatt beschrieben. Aber gibt es/kennt ihr alternativen für die 
SES5001? Es schein so als gäbe es die kaum wo. Oder wisst ihr, wie ich 
selbst alternativen finden kann?

von Jens (Gast)


Lesenswert?

Da schaust du bei Reichelt.de unter Fast recovery Dioden was es gibt mit 
50V und 2A.
Die nimmst du und baust sie ein!

Gruß, Jens

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

BYV27/200 z.B.

Mit freundlichen Grüßen
Thorsten Ostermann

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Datenblatt beschrieben. Aber gibt es/kennt ihr alternativen für die
> SES5001? Es schein so als gäbe es die kaum wo. Oder wisst ihr, wie ich

Welchen L293 habt ihr? Der L293D hat Freilaufdioden schon integriert.

von M. H. (michiharry)


Lesenswert?

Okay, bei Reichelt scheint es nichts passendes zu geben. Aber die 
BYV27/200 gibt es. Ist die schnell genug? - Bitte verzeiht meine 
unwissenheit. Und die Blockkondensatoren schlate ich in Reihe mit den 
Motoren, oder? Kann mir das bitte jemand näher erklären?

MFG

von M. H. (michiharry)


Lesenswert?

@Günther

Wir haben den L293D. Also wenn da schon Freilaufdioden integriert sind, 
warum steht es dann im Datenblatt?

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> warum steht es dann im Datenblatt?

Bitte verlinke Datenblatt zu eurem Chip, damit wir über den gleichen 
reden.

von M. H. (michiharry)


Angehängte Dateien:

Lesenswert?

Günter schrieb:
> Bitte verlinke Datenblatt zu eurem Chip, damit wir über den gleichen
> reden.

Anbei habe ich das Datenblatt als .pdf-Datei.

von Günter (Gast)


Lesenswert?

Letzter fett gedruckter Punkt auf Seite 1: Output Clamp Diodes for ... 
(L293D)

und auf Seite 2 unter den Block Diagramm die Note: Output diodes are 
internal ..

Jetzt noch der oben schon angefragte Schaltplan und wieviel Strom 
braucht der Motor? Anlaufstrom kann wesentlich höher als Nennstrom sein.

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Jetzt noch der oben schon angefragte Schaltplan und wieviel Strom
> braucht der Motor?

Also einen Schaltplan habe ich bereits angehängt (ganz oben). Wie viel 
Strom der Motor denn nun wikrlich braucht weiß ich nicht. Es steht auch 
nichts drauf. Ich habe ihn deshalb mal an einen Trafo und Messgerät 
gehängt.
Volt sind glaub ich ca. 2 und Stromstärke 1,2 A. Die Werte müssten 
soweit Stimmen.    Ich glaube aber eher, der Fehler liegt daran, dass 
der Motor mit dem PWM Signal nicht zurecht kommt, da brauche ich doch 
dann einen Kondensator, richtig?

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Volt sind glaub ich ca. 2 und Stromstärke 1,2 A. Die Werte müssten
> soweit Stimmen.    Ich glaube aber eher, der Fehler liegt daran, dass
> der Motor mit dem PWM Signal nicht zurecht kommt, da brauche ich doch
> dann einen Kondensator, richtig?

Wenn ein Motor bei 2V schon 1,2A zieht ist der L293D als Treiber nicht 
geeignet. Der kann nur 600mA liefern. Außerdem versorgst du den L293D 
mit 6V; da kommen am Motor mindestens 3V an und er zieht noch mehr 
Strom. Also ungeeigneter Motortreiber.

Als Kondensatoren brauchst du nur Abblock- und Stützkondensatoren. Hat 
mit dem eigentlichen PWM Signal nichts zu tun, sondern sollen nur die 
Betriebsspannungen sauber halten. Wenn es läuft, kann man nochmal 
schauen, ob zur Entstörung (RF Störabstrahlung) noch Kondensatoen an den 
Motor müssen.

von M. H. (michiharry)


Lesenswert?

Entschuldigung, die Werte scheinen nicht zu stimmen ...leider hab ich 
die Notiz weggeschmissen, wo ich die Werte draufgeschrieben habe.

Aber ich denke, dass Spannung und Stromstärke des Motors nichts mit 
meinem Problem zu tun hat...

Um nochmal darauf zurück zu kommen:
     Man hört nur den Motor brummen(die 500Hz des PWMs), er bewegt sich 
jedoch nicht.

von Günter (Gast)


Lesenswert?

Um die L293D Platine zu testen könnte man Vcc1, Vcc2 und GND 
angeschlossen lassen. Dann am L293D zB 1A auf HIGH, 2A auf LOW und 1-2EN 
auf HIGH legen. Dreht sich dann der Motor 2? Das wären 100% PWM. 
Sinngemäß für Motor 1

Wenn das geht liegt Problem wohl im Programm/en oder Verdrahtung?

von Günter (Gast)


Lesenswert?

Günter schrieb:
> Um die L293D Platine zu testen könnte man Vcc1, Vcc2 und GND
> angeschlossen lassen.

Andere Verbindungen lösen außer Motor

Dann am L293D zB 1A auf HIGH, 2A auf LOW und 1-2EN
> auf HIGH legen. Dreht sich dann der Motor 2? Das wären 100% PWM.
> Sinngemäß für Motor 1
>
> Wenn das geht liegt Problem wohl im Programm/en oder Verdrahtung?

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Um nochmal darauf zurück zu kommen:
>      Man hört nur den Motor brummen(die 500Hz des PWMs), er bewegt sich
> jedoch nicht.

Ob 50Hz, 500Hz, 5000Hz, daran sollte es nicht liegen. Bei ungeeigneter 
Frequenz schafft der Motor nicht seine optimale Leistung, drehen sollte 
er sich schon. Du könntest den ohmschne Widerstand der Motorwicklung mit 
einem Ohmmeter messen. 4V (die Spannung, die beim Motor ankommt mit 6V 
an Vcc29 geteilt durch den Widerstand ist der Strom, den der Treiber 
aushalten muß. Das ist der Strom, der bei Blockierung des Motors bei 
100% PWM fließt.

von M. H. (michiharry)


Lesenswert?

Ich habe mit einem Messgerät und dem Schaltplan alles auf "durchgang" 
durchmessen. Die Platine ist soweit in Ordnung, alles ist richtig 
verdrahtet.  Dass es an der Software liegt glaub ich aber eigentlich 
auch nicht. Ich bin echt am verzweifelen, deshalb vielen Dank für die 
Hilfe.

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> auch nicht. Ich bin echt am verzweifelen, deshalb vielen Dank für die
> Hilfe.

Kein Grund zum verzweifeln :)
- L293D Platine, wie oben beschrieben, testen.
- Motorwicklungwiderstand messen

Michael H. schrieb
"Dann wird noch zu IN1 bzw IN2 vom
RPi (nicht moduliert! also ohne PWM) Strom geschickt, also der
Stromkreis geschlossen um die Richtung zu bestimmen."

Ist mir unklar. 1A vom L293D braucht HIGH und 2A braucht LOW bzw 
umgekehrt für umgekehrte Drehrichtung des Motors. Mit HIGH an 1,2EN 
fließt Strom durch den Motor, LOW an 1,2EN schaltet 1Y, 2Y hochohmig - 
Motor kein Strom.

- möglicherweise doch Ansteuerungsproblem
- noch mal 'ne Nacht drüber schlafen

von Günter (Gast)


Lesenswert?

- und die Abblock- und Stützkondensatoren einbauen!

von M. H. (michiharry)


Lesenswert?

Ja danke für die hilfe. Kannst du konkret sagen, welche Kondensatoren 
ich zum Stützen und Abblocken nehmen sollte? Für den Abblockkendensator 
würde ich einfach einen 100nF Kerko nehmen. Ist das okay? Ich muss 
gestehen hier kenne ich mich gar nicht aus.

Und die Ansteuerung des L293D funktioniert so wie im Datenblatt(Seite 9, 
unterer Teil: Figure5). EN1 auf HIGH, IN1 auf HIGH und IN2 auf LOW 
ergibt Bewegung im Uhrzeigersinn. Tauscht man die Werte von den beiden 
INs dann fährt er gegen den Uhrzeigersinn.

Ich hoffe dass es funktioniert wenn die richtigen Kondensatoren eigebaut 
sind.

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Ja danke für die hilfe. Kannst du konkret sagen, welche Kondensatoren
> ich zum Stützen und Abblocken nehmen sollte? Für den Abblockkendensator
> würde ich einfach einen 100nF Kerko nehmen. Ist das okay? Ich muss
> gestehen hier kenne ich mich gar nicht aus.

Ich mich auch nicht und ist mehr eine Erfahrungssache. Abblock- 100nF 
zwischen Vcc1 und GND nahe am L293D Chip. Stützkondensator hat bei mir 
immer mit Elko 470µF und mehr zwischen VCC2 und GND geklappt. Kannst 
nehmen was da ist - 680µF, 1000µF ... - Nähe zum Chip wünschenswert.

> Ich hoffe dass es funktioniert wenn die richtigen Kondensatoren eigebaut
> sind.

Ich drück die Daumen, und hoffe nicht, daß es die Ansteuerung vom RPi 
ist, die ich auch noch in Verdacht habe. Oszi?

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Oszi?

Hab ich leider keins. Aber da man den Motor ja in 500Hz brummen Hört 
denke ich mal, dass das schon stimmt.

von M. H. (michiharry)


Lesenswert?

Okay ich hab jetzt einen Elko 470µF als Stützkondensator und
                  einen Kerko 100nF als Abblockkondensator.
Ich hoffe das passt.

Jetzt noch eine dumme Frage...beim L293D gibt es ja Logikspannung und 
Versorgungsspannung für den Motor, wo müssen die Kondensatoren jetzt 
hin?

Stütz- zwischen V-Logik und GND und Abblock- zwischen V-Motor und GND, 
oder umgekehrt?

MFG

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Stütz- zwischen V-Logik und GND und Abblock- zwischen V-Motor und GND,
> oder umgekehrt?

Stütz- 470µF zwischen V-Motor (=Vcc2) und GND, 100nF Abblock- zwischen 
V-Logik (=Vcc1) und GND. Vcc1 braucht normalerweise keinen 
Stützkondensator, da das von der allgemeinen Stromversorgung (Netzteil) 
abgedeckt sein sollte.

Dabei fällt mir ein, daß der RPi auch 3,3V nutzt!? Hoffe nicht, daß du 
Vcc1 (Logikversorgung) damit versorgst. Der L293D braucht mindestens 
4,5V! und die laut Datenblatt schon mal mit 35ma bis max. 60mA belastet 
werden können.

von M. H. (michiharry)


Lesenswert?

Ich nehme den Pin 2 (5V) vom RPi, nicht den 3,3. Aber hast du vielleicht 
eine Idee, wie ich den RPi "absichern" kann. Vielleicht mit einem 
Widerstand und einer Diode...oder so. Sodass nie mehr Strom gezogen 
wird, als der RPi verkraftet.

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> eine Idee, wie ich den RPi "absichern" kann. Vielleicht mit einem
> Widerstand und einer Diode...oder so. Sodass nie mehr Strom gezogen
> wird, als der RPi verkraftet.

Würd ich nicht machen. Wenn du Sorge hast, den RPi zu stark zu belasten, 
dann eher Vcc1 vom RPi lösen. Von Vcc2 nach Vcc1 eine Allerweltsdiode zB 
1N4148 oder auch eine Schottkydiode schalten. Anode an Vcc2. Dann aber 
doch einen Elko zB 100µF oder höher an Vcc1 nach GND parallel zum 100nF 
Kerko.

Logikspannung kommt dann vom Motorakku über die Diode. Der zusätzliche 
Elko an Vcc1 stabilisiert die Logikspannung und die darf so hoch sein 
wie Vcc2. Die Diode schützt den Elko vor Entladung durch Vcc2.

von M. H. (michiharry)


Angehängte Dateien:

Lesenswert?

Wäre das so okay? Und tut mir Leid dass es so unübersichtlich geworden 
ist...War jetzt nur auf die schnelle.

MFG

von Günter (Gast)


Lesenswert?

Am rechten Bildrand sieht es aus, als wenn Vcc1 mit Vcc2 direkt 
verbunden ist. Soll natürlich nicht sein. Ich schieb das mal auf einen 
Flüchtigkeitsfehler. Die Diode und Kondensatoren sind so wie ich gedacht 
hatte. Ist OK. GND muß allerdings mit GND vom RPi verbunden bleiben.

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Am rechten Bildrand sieht es aus, als wenn Vcc1 mit Vcc2 direkt
> verbunden ist. Soll natürlich nicht sein.

Beide sind am Pluspol der Batterie, aber nicht direkt verbunden. Das 
stimmt doch, oder?

Oder muss die Batterie an die Verbindung zwischen Anode(Diode) und Vcc2 
gelegt werden?

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Günter schrieb:
>> Am rechten Bildrand sieht es aus, als wenn Vcc1 mit Vcc2 direkt
>> verbunden ist. Soll natürlich nicht sein.
>
> Beide sind am Pluspol der Batterie, aber nicht direkt verbunden. Das
> stimmt doch, oder?

Nein, nur Vcc2 soll am Pluspol der Batterie sein. Von Vcc2 geht doch die 
Diode nach Vcc1. Im jetzigen Schaltplan vom 6.8. ist die Diode 
überbrückt da Vcc1 mit Pluspol der Batterie verbunden ist und Vcc2 mit 
dem Pluspol verbunden ist, sind Vcc1 und Vcc2 direkt verbunden! Also die 
Verbindung raus

>
> Oder muss die Batterie an die Verbindung zwischen Anode(Diode) und Vcc2
> gelegt werden?

Da ist doch schon die Verbindung! Vom Pluspol geht eine Verbindung zu 
Vcc2 und von dort ist auch die Anode der Diode angeschlossen.

Es muß nur die Verbindung Vcc1 zum Pluspol der Batterie raus.

Ich gehe davon aus, daß BAT-1 der Pluspol und BAT-2 der Minuspol einer 
6V Batterie ist.

von Stephan H. (stephan-)


Lesenswert?

36 Einträge für eine 0815 Aufgabe. Zum Testen reicht auch ein Netzteil 
aus.H und L lassen sich damit auch machen.
Aber Hauptsache man hat einen ARM Prozessor.
Tja der schönste Prozi hilft auch nicht wenn das Grundwissen fehlt oder 
man Datenblätter nicht lesen kann.

Warum kommen immer wieder Leute auf die Idee Hardware steuern zu wollen 
ohne sie zu verstehen ? Hardware läßt sich nur dann programmieren, wenn 
man sie auch verstanden hat. Egal ob C oder Assembler.

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Da ist doch schon die Verbindung! Vom Pluspol geht eine Verbindung zu
> Vcc2 und von dort ist auch die Anode der Diode angeschlossen.

   Ja stimmt, sry.


> Ich gehe davon aus, daß BAT-1 der Pluspol und BAT-2 der Minuspol einer
> 6V Batterie ist.

   Richtig :)


Und Hr Henning, wenn es so eine 0815 Aufgabe ist, könnten Sie wesentlich 
hilfreicher sein, indem Sie sinnvolle Beiträge leisten und mir helfen. 
Deshalb bin ich doch schließlich hier auf µC.net!  Aus Ihrer Arroganz 
schließe ich, dass Sie sich gut auskennen, also her mit den guten 
Ratschlägen. Danke

MFG,
michi

von Stephan H. (stephan-)


Lesenswert?

Michael H. schrieb:
> Günter schrieb:
>> Da ist doch schon die Verbindung! Vom Pluspol geht eine Verbindung zu
>> Vcc2 und von dort ist auch die Anode der Diode angeschlossen.
>
>    Ja stimmt, sry.
>
>
>> Ich gehe davon aus, daß BAT-1 der Pluspol und BAT-2 der Minuspol einer
>> 6V Batterie ist.
>
>    Richtig :)
>
>
> Und Hr Henning, wenn es so eine 0815 Aufgabe ist, könnten Sie wesentlich
> hilfreicher sein, indem Sie sinnvolle Beiträge leisten und mir helfen.
> Deshalb bin ich doch schließlich hier auf µC.net!  Aus Ihrer Arroganz
> schließe ich, dass Sie sich gut auskennen, also her mit den guten
> Ratschlägen. Danke
>
> MFG,
> michi

den sinnvollen Beitrag hatte ich bereits gegeben. s.o.

Aber einen weiteren Ratschlag gebe ich gern. Datenblatt des IC lesen und 
die Funktions dessen verinnerlichen. Dann macht das IC auch das, was es 
soll.
Wenn der Programmierer in seiner Arroganz jedoch ein PWM Signal auf den 
Enable Eingang gibt, ist es kein Wunder, das der Motor nur brummt. Und 
NEIN ich bin nicht Arrogant, denn ich würde keine ARM nehmen um den IC 
anzusteuern. Statische Pegel reichen völlig aus. Aber PWM ist ja inn. 
Machen ja alle was damit. Überlege mal was eine Pulsweitensteureung (ja 
das ist PWM) an einem Enable Eingang wohl macht ! Genau, die PWM 
choppert den IC mit variabler Breite. Tolle Wurst.

Wie gesagt, ein Netzteil/Batterie reicht dafür.

Das sind eben die Programmierer von Morgen. Raspbery, Phyton, TCP, 
etc.pp.
High Levele eben und keine Ahnung was unten passiert.
Hardware läßt sich aber nicht HighLevel programmieren ohne zu wissen wie 
ein IC funktioniert und schon gar nicht wenn man die Echtzeitfähigkeit 
eines Raspberry nur erahnen kann.. Womit wir wieder am Anfang sind.

Bringt Dein Linux ARM die Signale überhaupt in der richtigen Reihenfolge 
?
Meine Controller machen genau das. Deswegen darf ich auch Arrogant sein. 
Du weisst es warscheinlich nicht einmal. Du programmierst über einem 
System, welches du nicht kennst.

Also Netzteil/Batterie und staische Pegel drauf. Das muss laufen.
Dann schauen wir weiter.

Arroganten Gruss

von Günter (Gast)


Lesenswert?

Stephan Henning schrieb:
> Wenn der Programmierer in seiner Arroganz jedoch ein PWM Signal auf den
> Enable Eingang gibt, ist es kein Wunder, das der Motor nur brummt. Und

Wie? Warum soll das kein Wunder sein. Meinst du das geht nicht? oder 
geht das bei dir nicht?

> .... Aber PWM ist ja inn.
> Machen ja alle was damit. ...

und geht ja auch bei allen, die sich hier nicht melden.

> ... Überlege mal was eine Pulsweitensteureung (ja
> das ist PWM) an einem Enable Eingang wohl macht ! Genau, die PWM
> choppert den IC mit variabler Breite. Tolle Wurst.

Was meinst du genau mit choppert.

> Bringt Dein Linux ARM die Signale überhaupt in der richtigen Reihenfolge
> ?

Ich vermute auch, das da der Hase im Pfeffer liegt, jetzt und schon 
länger, wenn es der letzte HW Umbau nicht bringt. Am besten mit einem 
Oszi überprüfen. Müßte er sich wohl besorgen oder die Signale/PWM so 
langsam machen, daß man sie mit LEDs verfolgen kann, was aber nur 
bedingt taugt, da bei höheren Frequenzen die Verhältnisse anders sein 
können.

> Also Netzteil/Batterie und staische Pegel drauf. Das muss laufen.
> Dann schauen wir weiter.

Statische Pegel hat Michael H. schon ausprobiert und funktionieren 
seiner Angabe nach.

Nur Geduld.

von M. H. (michiharry)


Lesenswert?

Stephan Henning schrieb:
> Wenn der Programmierer in seiner Arroganz jedoch ein PWM Signal auf den
> Enable Eingang gibt, ist es kein Wunder, das der Motor nur brummt.

Das habe ich doch schon behoben. Nun kommt (zum Vorwärtsfahren) ein 
statischer Pegel auf EN1, ein PWM(500Hz, Tastgrad kann bestimmt werden) 
auf IN1 und bei IN2 kommt nichts. Dennoch: der Motor brummt, fährt aber 
nicht.

Aber ich würde jetzt einfach warten, bis ich die Kondensatoren bekomme 
und eingebaut habe. Vielleicht liegt es ja wirklich nur daran.

Ich halte euch auf dem Laufenden, aber die Lieferung wird nicht mehr vor 
Montag eintreffen.

MFG,
Michi

von Günter (Gast)


Lesenswert?

Michael, ich bin bisher davon ausgegangen, daß die Ansteuerung so 
aussehen soll. Ich habe Bezeichnungen gewählt, die im Datenblatt und 
deinem Schaltplan wiederzufinden sind. Bitte Bestätigen oder 
Darstellung, wie sie tatsächlich aussieht.

Dein letzter Post hat mich verwirrt.
"Das habe ich doch schon behoben. Nun kommt (zum Vorwärtsfahren) ein
statischer Pegel auf EN1, ein PWM(500Hz, Tastgrad kann bestimmt werden)
auf IN1 und bei IN2 kommt nichts."

Nichts gibt es nicht. Da muß HIGH oder LOW angelegt werden.

1
          ____       ____       ____       ____    ____________
2
PWM       |   |      |   |      |   |      |   |   |           |
3
EN1-2 ____|   |______|   |______|   |______|   |___|           |_____________
4
5
        ____________________
6
        |                   |
7
1A    __|                   |________________________________________________
8
9
                            ____________________
10
                            |                   |
11
2A    ______________________|                   |____________________________
12
13
14
          Drehrichtung        entgegengesetzte        Bremsen       Motor
15
                              Drehrichtung                          stromlos

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Nichts gibt es nicht. Da muß HIGH oder LOW angelegt werden.

Ja tut mir Leid. Ich meinte, dass ein LOW angelegt wird. In der RPi.GPIO 
Bibliothek kann man einen output "erzeugen" und den dann entweder auf 
HIGH oder LOW setzen. Sind denn die LOW Werte kompatibel? Ich schau' mal 
im Datenblatt was der L293D als LOW versteht und was beim RPi LOW ist.

MFG

von M. H. (michiharry)


Lesenswert?

Günter schrieb:
> Bitte Bestätigen oder
> Darstellung, wie sie tatsächlich aussieht.

Seite 6 des Datenblatts, entnehme ich, dass das PWM-Signal zum IN1, bzw 
IN2 kommt und nicht zu EN1. Davor hatte ich es so, dass es zu EN1 kommt, 
ein Unterschied war aber nicht festzustellen. Immernoch brummen.

Und auf Seite 6 steht ebenfalls (Note B), das PWM-Signal müsse 5kHz 
haben, ich denke, das könnte der Fehler sein.

von Günter (Gast)


Lesenswert?

Michael H. schrieb:
> Seite 6 des Datenblatts, entnehme ich, dass das PWM-Signal zum IN1, bzw
> IN2 kommt und nicht zu EN1. Davor hatte ich es so, dass es zu EN1 kommt,
> ein Unterschied war aber nicht festzustellen. Immernoch brummen.

Seite 6 ist ein Testaufbau des Herstellers um Parameter definiert 
darstellen zu können. Den kannst du nicht nehmen um deinen Motor zu 
treiben - es fehlt der zweite Eingang bzw Ausgang zum Motor.

Wenn du das PWM Signal an IN1 anlegst, muß IN2 fest auf LOW oder HIGH, 
je nach gewünschter Drehrichtung gelegt werden. Dabei mußt du aber bei 
Drehrichtungsänderung auf das Tastverhältnis achten, daß sich dann 
umkehrt.

Liegt IN2 auf LOW und IN1 durch das PWM auch kurz auf LOW, haben beide 
Motoranschlüsse das gleiche Potential, hier bin ich etwas unsicher aber 
das könnte Kurzschließen des Motors = Bremsen des Motors bedeuten. Diese 
Ansteuerung würd ich nicht empfehlen, wenn der Motor durch PWM in der 
Drehzahl gesteuert werden soll.

Dein allererster Ansatz war schon iO und muß zum Laufen zu bringen sein.
PWM auf 1,2EN
HIGH auf 1A
LOW auf 2A
für eine Drehrichtung

PWM auf 1,2EN
LOW auf 1A
HIGH auf 2A
für die andere Drehrichtung

LOW auf 1,2EN - Ausgänge auf high Impedance - Motor stromlos


> Und auf Seite 6 steht ebenfalls (Note B), das PWM-Signal müsse 5kHz
> haben, ich denke, das könnte der Fehler sein.

5kHz ist auch nur auf den Test Circuit bezogen. Kannst du auch nehmen 
ist aber zu 99% nicht der Fehler.

von Uwe (Gast)


Lesenswert?

Ohje, PWM kommt an IN1 und IN2 und nicht an EN. Dazu muß IN1 immer das 
Gegenteil von IN2 sein (also  invertiert) außer man möchte Bremsen, dann 
macht man beide gleich. Für den Stillstand des Motors muß die der Duty 
cycle 50% betragen. Wenn man den Motor Stromlos schalten will macht man 
"Enable" aus. Ich würde dir außerdem raten Optokoppler zwische µC und 
Motortreiber zu packen. Einfacher ist es jedoch einen AVR an den RPi zu 
hängen (z.B. über I2C oder SPI) und den AVR dann die Motorgeschichte 
machen zu lassen.

von Günter (Gast)


Lesenswert?

Uwe schrieb:
> Ohje, PWM kommt an IN1 und IN2 und nicht an EN. Dazu muß IN1 immer das
> Gegenteil von IN2 sein (also  invertiert) außer man möchte Bremsen, dann
> macht man beide gleich. Für den Stillstand des Motors muß die der Duty
> cycle 50% betragen. Wenn man den Motor Stromlos schalten will macht man
> "Enable" aus. Ich würde dir außerdem raten Optokoppler zwische µC und
> Motortreiber zu packen. Einfacher ist es jedoch einen AVR an den RPi zu
> hängen (z.B. über I2C oder SPI) und den AVR dann die Motorgeschichte
> machen zu lassen.

Uwe, was spricht gegen PWM an EN? Es gibt mehr als eine Möglichkeit der 
Ansteuerung. Deine ist in meinen Augen die verlustleistungsreichere. 
Kann aber auch Vorteile haben.

von Stephan H. (stephan-)


Lesenswert?

Günter schrieb:
> Uwe schrieb:
>> Ohje, PWM kommt an IN1 und IN2 und nicht an EN. Dazu muß IN1 immer das
>> Gegenteil von IN2 sein (also  invertiert) außer man möchte Bremsen, dann
>> macht man beide gleich. Für den Stillstand des Motors muß die der Duty
>> cycle 50% betragen. Wenn man den Motor Stromlos schalten will macht man
>> "Enable" aus. Ich würde dir außerdem raten Optokoppler zwische µC und
>> Motortreiber zu packen. Einfacher ist es jedoch einen AVR an den RPi zu
>> hängen (z.B. über I2C oder SPI) und den AVR dann die Motorgeschichte
>> machen zu lassen.
>
> Uwe, was spricht gegen PWM an EN? Es gibt mehr als eine Möglichkeit der
> Ansteuerung. Deine ist in meinen Augen die verlustleistungsreichere.
> Kann aber auch Vorteile haben.

Enable macht den Ausgang auf Z === hochohmig ! Daher Motorstop.
PWM an den Eingang sofern überhaupt eine Drehzahlstellung benötigt wird.
Sonst eben statisch.

Der EN arbeitet auch auf die Inputs. Die werden vermutlich verrieglt.
Daher könnt Ihr mit PWN an EN machen was Ihr wollt. Es wird nicht gehen.
Davon ab geht der EN auch noch auf die Protektion. wisst Ihr wie die 
aufgebaut ist ? Nein ? Wundert mich nicht. Ich auch nicht.
Die ist ja nicht definiert.

Wie ich sagte, Datenblatt lesen und verstehen. Seite 2. !!!

Aber vermutlich bin ich ja doch nur zu Arrogant.

noch ein ps.:
Da ich mit dem L293 keine Erfahrungen habe würde ich nicht versuchen 
wollen den Motor über EN zu bremsen. EMK Bremsen mache ich immer mit 
einem MOSFET. Da können Spannungen und Ströme enstehen die den L293 u.U, 
sprengen würden. also Vorsicht damit. In Modellbaureglern werden MOSFETs 
mit 30A+ für EMK Bremsen verbaut. Davon dürfte der L293 weit weg sein.

von Stephan H. (stephan-)


Lesenswert?

Uwe schrieb:
> Ohje, PWM kommt an IN1 und IN2 und nicht an EN. Dazu muß IN1 immer das
> Gegenteil von IN2 sein (also  invertiert) außer man möchte Bremsen, dann
> macht man beide gleich. Für den Stillstand des Motors muß die der Duty
> cycle 50% betragen. Wenn man den Motor Stromlos schalten will macht man
> "Enable" aus.

sag ich doch, Datenblatt lesen. Ist offensichtlich gar nicht sooooo 
schwer.

von Günter (Gast)


Lesenswert?

Stephan Henning schrieb:
> Der EN arbeitet auch auf die Inputs. Die werden vermutlich verrieglt.
> Daher könnt Ihr mit PWN an EN machen was Ihr wollt. Es wird nicht gehen.

Hab es früher mit PWM an EN laufen gehabt und habe es jetzt nochmal 
zusammengesteckt, angesteuert mit einem Tiny45. Das Wunder ist passiert: 
Es geht!

Ich konnte nur keinen Unterschied im Abbremsen erkennen zwischen EN auf 
LOW oder EN auf HIGH und beide Inputs auf gleichen Pegel.

> Davon ab geht der EN auch noch auf die Protektion. wisst Ihr wie die
> aufgebaut ist ? Nein ? Wundert mich nicht. Ich auch nicht.
> Die ist ja nicht definiert.

Bis jetzt ist mir noch keiner abgeraucht.

> Wie ich sagte, Datenblatt lesen und verstehen. Seite 2. !!!

Auf Seite 2 gibt es auch eine Function Table. Die verbietet mir nicht EN 
zu toggeln. Auch sonst finde ich keine Hinweise die mir verbieten bei 
irgendwelchen Zuständen der Inputs den EN zu schalten.

> Aber vermutlich bin ich ja doch nur zu Arrogant.

und streng nach den Buchstaben des Datenblattes. Was da nicht steht, 
kann nicht sein.

> noch ein ps.:
> Da ich mit dem L293 keine Erfahrungen habe würde ich nicht versuchen
> wollen den Motor über EN zu bremsen. EMK Bremsen mache ich immer mit
> einem MOSFET. Da können Spannungen und Ströme enstehen die den L293 u.U,
> sprengen würden. also Vorsicht damit. In Modellbaureglern werden MOSFETs
> mit 30A+ für EMK Bremsen verbaut. Davon dürfte der L293 weit weg sein.

Dann sammle Erfahrungen. Wie gesagt, es funktioniert aktuell bei mir mit 
PWM an EN. Wenn du einen L293D auf die Weise brätst, poste es hier und 
ich werde es nachtesten und alles zurücknehmen.

von Johannes M. (johannesmueller88)


Lesenswert?

Hi Leute, ich klink mich jetzt auch mal in die Diskussion ein, ich hab 
in etwa das gleiche Problem. Ich hab nen L293B den ich mit nem Arduino 
ansteuere. Ich habs mit PWM an enable und HIGH/LOW am input probiert, 
was die Regulation der Spannung am Motor angeht funktioniert pwm an 
enable wie es soll, das andere nicht.
Mein Problem ist eher, dass bei mir der Strom einbricht. 
Abblockkondesatoren, Freilauf(schottky-)dioden sind drin. Habt ihr dazu 
Ideen?

von Günter (Gast)


Lesenswert?

Johannes Müller schrieb:
> Hi Leute, ich klink mich jetzt auch mal in die Diskussion ein, ich hab

Hab dir auch in deinem anderen thread geantwortet, um kein Durcheinander 
zu bekommen, da dein Problem etwas anders aussieht.

> in etwa das gleiche Problem. Ich hab nen L293B den ich mit nem Arduino
> ansteuere. Ich habs mit PWM an enable und HIGH/LOW am input probiert,
> was die Regulation der Spannung am Motor angeht funktioniert pwm an
> enable wie es soll, das andere nicht.

Ich habe eine Testschaltung mit L293D und Tiny45 aufgebaut. Nur ein 
Motor angeschaltet, der ohne Last im Leerlauf bei 3V (100% duty cycle) 
ca 250mA zieht.

Beide Ansteuermethoden funktionieren prima und ohne Auffälligkeiten.

Der L293D wird bei 100% duty cycle nach einer Minute leicht warm. Bei 
Festhalten des Motors will er mehr als 800mA und der L293D wird schnell 
heiß.

von Tany (Gast)


Lesenswert?

Johannes Müller schrieb:
> Hi Leute, ich klink mich jetzt auch mal in die Diskussion ein, ich
> hab
> in etwa das gleiche Problem. Ich hab nen L293B den ich mit nem Arduino
> ansteuere. Ich habs mit PWM an enable und HIGH/LOW am input probiert,
> was die Regulation der Spannung am Motor angeht funktioniert pwm an
> enable wie es soll, das andere nicht.
> Mein Problem ist eher, dass bei mir der Strom einbricht.
> Abblockkondesatoren, Freilauf(schottky-)dioden sind drin. Habt ihr dazu
> Ideen?

hast gelesen Günter hat's gemacht, sogar auf Steckbrett!
Es komm mir so vor, als du ein GND Anschluß nicht angeschlossen hast.
Machmal ein Bild von deinem Aufbau

von Stephan H. (stephan-)


Lesenswert?

Günter schrieb:
> Dann sammle Erfahrungen. Wie gesagt, es funktioniert aktuell bei mir mit
> PWM an EN. Wenn du einen L293D auf die Weise brätst, poste es hier und
> ich werde es nachtesten und alles zurücknehmen.

Ein EN Anschluss ist für mich erstmal eine "generelle Freigabe"
Von daher würde ich IMMER eine PWM auf den Eingang geben und EN statisch 
schalten. Wenn es geht ist gut, nur weil es laut Datenblatt nicht 
verboten ist, heißt das nicht, das es so vorgesehen ist. Wie gesagt, mit 
dem IC fehlen mir Erfahrungen. Ich habe lediglich das Datenblatt 
überflogen, da ich die Brücken die ich brauche, dirkret aufbaue. Die 
bewegen sich jenseit 20A. Und die für mein Auto (Schiebedach) hatte ich 
auch diskret gebaut. Wegen 4 Transistoren nehme ich keinen IC den ich 
auch noch betsellen muss.

Gruß und Erfolge

Stephan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.