Ich versuche, einen Gleichstrommotor über einen L293D zu steuern. Letztendlich steuere ich es mit einem Arduino, aber ich versuche, einen TLC5940NT-Chip als Vermittler zu verwenden, um die Anzahl der Ausgänge zu erhöhen, die ich habe.
Ich habe drei der Pins des TLC5940 mit den Pins Input 1, Input 2 und Enable des L293D verbunden, wobei ich 2,2-kOhm-Pullup-Widerstände an den beiden Eingangspins verwendet habe (ich habe versucht, es unten darzustellen - Entschuldigung, wenn es ist nicht klar. Version in voller Größe ):
Diagramm des an L293D angeschlossenen TLC5940NT:
Wenn ich den Enable-Pin auf +5 V stecke, funktioniert der Motor und ich kann die Richtung mit In 1 und In 2 steuern. Ich möchte jedoch die Geschwindigkeit per PWM steuern. Wenn ich den Enable-Pin an den TLC5940 anschließe (wie im Diagramm), kann ich den Motor überhaupt nicht zum Drehen bringen. Ich habe versucht, auch einen Pull-up-Widerstand am Aktivierungsstift zu verwenden, aber er drehte sich immer noch nicht - und wenn ich ihn mit nur einem 2,2-kOhm- oder 560-Ohm-Widerstand an +5 V DC anschließe, passiert nichts. Das einzige, was es bisher zum Drehen gebracht hat, sind konstante 5 V DC ohne Widerstand.
Kann mir jemand erklären, was falsch ist und wie ich es zum Laufen bekomme?
Bearbeiten: Ich habe versucht, einen vollständigeren Schaltplan hinzuzufügen
Das Kernproblem hier ist, dass Sie missverstanden haben, wie die TLC5940NT-Ausgänge tatsächlich funktionieren. Sie funktionieren nicht auf die gleiche Weise wie die Push-Pull-Ausgangstreiber des Arduino, der TLC5940NT verwendet Stromsenken (sogenannte Open-Drain-Ausgänge, die sich eher wie Eingänge verhalten! Verrückt, oder? Ich erkläre am Ende mehr), um diesen Pin "LOW" zu ziehen ". Aus diesem Grund schließen Sie LEDs an sie an, manchmal mit einem Strombegrenzungswiderstand (je nachdem, ob es sich tatsächlich um stromgesteuerte Senken handelt oder nicht) von VCC durch die LED und dann in den Pin des TLC5940NT und ähnlicher Geräte (ich habe den TLC59116F verwendet vorher, was ähnlich ist).
Ich habe damals tatsächlich den gleichen Fehler gemacht wie Sie, da ich nicht wusste, was ein Open Drain/Sink-Eingang ist, und genau wie Sie davon ausgegangen bin, dass er ähnlich funktionieren würde wie mein Arduino. Was Sie tun müssen, damit dies funktioniert, ist die Logik mit externen Komponenten und einigen Pull-up-Widerständen umzukehren. Wenn die "Ausgänge" des TLC5940NT "aus" sind, wird der Wert am Pin hochgezogen. Dieses "hohe" Signal kann einfach mit zwei Methoden invertiert werden - einer NPN-Transistor-Logik-Inverterschaltung oder einem invertierenden Puffer- / Leitungstreiber-Logik-IC oder sogar Operationsverstärkern, wenn Sie müssen. Nachfolgend finden Sie eine kurze Skizze jeder dieser Methoden.
Abbildung 1: Transistor-Logikinverter mit einem billigen NPN-BJT.
Abbildung 2: Verwendung eines invertierenden Puffer-ICs, z. B. eines 7404 Hex (bedeutet 8 Ein-/Ausgänge) Invertierender Puffer.
Vielleicht möchten Sie einen oder zwei Pulldown-Widerstände am Pufferausgang, um schwebende Pins zu vermeiden, aber ich denke, es wird ohne sie in Ordnung sein. Befolgen Sie immer die Anweisungen im Datenblatt des Herstellers.
Beachten Sie, wie ich in beiden Bildern die "Ausgangs" -Pins des TLC5940 als eigentlich die Oberseite eines N-Kanal-MOSFET zeige? Dieser Pin geht zum "Drain" des FET, der im ausgeschalteten Zustand im Grunde ein offener Stromkreis ist, daher nennen sie ihn einen "Open Drain" -Ausgang. Obwohl es als Low-Side-Stromsenkenschalter fungiert. Schrecklich verwirrend, und ich verstehe, warum Sie diesen Fehler gemacht haben. Es ist wichtig, dass Sie dies jetzt so früh wie möglich lernen und in Zukunft immer daran denken, diese Datenblätter zu überprüfen und die Logik durchzugehen, um sicherzustellen, dass dies nicht noch einmal passiert.
Als nächstes müssen Sie die Ausgänge dieser invertierenden Stufen mit den Eingängen Ihres Motortreibers verbinden, als wären sie Ausgangssignale im Arduino-Stil.
Ihr System sollte jetzt wie vorgesehen funktionieren! Die externen Komponenten sind aufgrund der Funktionsweise der Ausgänge des TLC5940NT ein notwendiges Übel. Ich stimme jedoch zu (und warum ich den TLC59116F verwendet habe), dass sie fantastische Funktionen haben und ihre Fähigkeit, jeden Kanal per PWM zu nutzen und Ihren Mikrocontroller andere Dinge tun zu lassen, die Mühe wert ist.
Ist V-Motor zum L293D +5V? Woher kommen diese +5V - der Arduino? Sie sollten (und können es oft nicht) eine signifikante Last wie einen Motor huckepack auf den Regler des Arduino legen, er ist nur für <400 mA ausgelegt, wenn Sie einen USB-Anschluss verwenden. Siehe Wie viel Strom kann ich aus den Pins des Arduino ziehen? für eine gute Erklärung. Außerdem ist der L293 aufgrund des hohen internen Spannungsabfalls eine schlechte Komponentenwahl für die Niederspannungs-Motorsteuerung, siehe:
Und
Welche H-Brückentreiber werden für Anwendungen bevorzugt, die einen Niederspannungsmotor steuern?
für Alternativen.
sherrelbc
Nimmermehr
sherrelbc
Zuofu
Nimmermehr