PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 DC Motore ansteuern mit L293D und ATtiny13



Zwerwelfliescher
08.08.2009, 15:01
Hi,

ich versuche mit dem Motortreiber L293D 2 DC Motoren anzusteuern. Das PWM Singnal möchte ich mit den ATtiny13 erzeugen. Der uC hat 2 PWM Ausgänge. Nun zu meiner Frage. Auf dieser Internetseite http://wiki.ctbot.de/index.php/Motortreiber habe ich einen Schaltplan gefunden den ich nicht ganz verstehe. Den PWM Eingang des L293D verstehe ich aber den PC6 und PC7 Eingang nicht. Was muss hier angeschlossen werden?


MFG Flexxx

nestandart
08.08.2009, 16:33
PC6 und PC7 sind für Drehrichtungsänderung.

Zwerwelfliescher
08.08.2009, 17:05
Muss ich bei der Drehrichtungsänderung GND oder VCC+5V anschließen(von ATtiny13)?
Bsp:
Motor1
PB0-PWM
PB3-Drehrichtungssteuerung

Motor2:
PB1-PWM
PB4-Drehrichtungssteuerung

Ist das richtig?

MFG Flexxx

mycroc
08.08.2009, 17:18
VCC ist für eine Drehrichtung. GND für die andere. Welche entscheidet deine Schaltung. PWM für die Geschwindigkeit.

recycle
08.08.2009, 17:36
Muss ich bei der Drehrichtungsänderung GND oder VCC+5V anschließen(von ATtiny13)?


An dem L293D musst du alles anschliessen nwas du auf dem Schaltplan siehst.

Was dann noch fehht ist der ATtiny, mit dem steuerst du die Geschwindigkeit des motors über die beiden PWM Kanäle und die Drerichtung.
Die Drehrichtung steuerst du über die 4 Input-Pins des L293D auf der rechten Seite des Schaltplans.

Input1 und Inpit2 sind für den einen Motor, Input3 und Input4 für den anderen.

D.h. pro Motor hast du 2 Inputs die du über den ATtiny jeweils auf 0 und 1 ziehen kannst.

Z.B.
Input1 = 1, Input2 = 0 ==> Motor dreht links
Input1 = 0, Input2 = 1 ==> Motor dreht rechts
Input1 = 0, Input2 = 0 ==> Motor gestoppt
Input1 = 1, Input2 = 1 ==> Motor gestoppt

Wenn beide Inputs auf dem gleichen Level sind, wird der Motor kurzgeschlossen und bremst. Das kann praktisch sein, of braucht man es aber nicht, weil das Fahrzeug auch ohne bremsen schnell genug anhält, wenn man den Motorstrom abschaltet.
Wenn man "skrupelos" genug ist, kann man auch bremsen indem man die Motoren einfach in die entgegengesetze Richtung schaltet.

D.h. auf die Möglichkeit beide Inputs gleichzeitig auf 0 oder beide auf 1 zu schalten kann man manchmal verzichten.
In dem vorliegenden Schaltplan wurde das genutzt um 2 Controllerpins z.B. vom ATtiny zu sparen. Anstatt den Input2 mit einem eigenen Pin des Controllers zu schalten, wird der über einen Inverter aun denselben Pin wie der Input2 gehängt.

Wenn man jetzt den Input1 = 1 setzt, ist der Input2 automatisch = 0 und der otor dreht links. Schltet man den Input1 auf 0, setzt der In verter den Input2 auf 1 und der Motor dreht andersrum.

Bei dem anderen Motor und Input3 und Input4 ist es dasselbe.



Muss ich bei der Drehrichtungsänderung GND oder VCC+5V anschließen(von ATtiny13)?

GND und VCC (5V) musst du immer anschliessen, das ist die Stromversorgung für den L293D. Wenn die nicht angeschlossen ist funktioniert der nicht. Mit der Drehrichtung hat das nichts zu tun.

Der L293D hat wie die meisten (wenn nicht alle) Motortreiber 2 Spannungseingänge. VCC ist die Versorgungsspannung für den Treiber selber, Umot ist die Motorspannung.
D.h. die 5V Vcc raucht der L293D damit er selber funktioniert, an Umot legst du die Spannung die deine Motoren zur Versorgung brauchen und die der L293D dann an die Motoren durchschaltet.

Zwerwelfliescher
08.08.2009, 17:41
Danke das hat mir sehr weitergeholfen. Jetzt kann ich ja den Antrieb für meinen Roboter bauen.
@recycle: Nur eins versteh ich noch nicht. Wenn ich Input1 auf 1 scalte geht Input 2 auf 0. Wie bekomme ich dan hin, dass beide auf 1 oder 0 sind?


MFG Flexxx

recycle
08.08.2009, 17:53
@recycle: Nur eins versteh ich noch nicht. Wenn ich Input1 auf 1 scalte geht Input 2 auf 0. Wie bekomme ich dan hin, dass beide auf 1 oder 0 sind?

Gar nicht, das habe ich ja obern versucht zu erklären ,-)
Wenn du 2 Controllerpins sparst und wie in dem Schaltplan mit Invertern arbeitest, kannst du die Motoren nicht mehr kurzschliessen und bremsen.

Du kannst aber die PWM auf 0 setzen, dann bekommen die Motoren keinen Strom mehr und rollen aus.
Ausrollen ist aber "relativ". Der L293D eignet sich ja nur für kleinere Roboter mit Getriebemotoren und die bleiben normalerweise auch wenn man nur den Strom abschaltet - sprich die PWM auf 0 setzt schnell genug stehen.

Zwerwelfliescher
08.08.2009, 17:57
Ich verwende auch ein Getriebe. Wenn ich nur wüsste, wie man Bilder einfügt würde ich ja einen Schaltplan posten 8-[

recycle
08.08.2009, 18:12
Wen du Bilder hochladen willst, shcreibst du einfach deinen Text, klickst auf "Vorschau" und dann unten auf "Attachment" hinzufügen um dein Bild hochzuladen.

Die Schaltung funktioniert aber auch ohne Getriebe ;-)
Was ich eigentlich meinte war, dass ein kleine Motoren mit Getriebe normalerweise durch die Reibung im Getriebe beim Abschalten des Stroms so schnell anhalten, dass man die Bremsfunktion des Motortreibers nicht benötigt und die Inverterschaltung deswegen ruhig benutzen kann.

Zwerwelfliescher
08.08.2009, 18:35
Hier habe ich den Schaltplan.

Die Motoren sollen mit 5V laufen.

recycle
08.08.2009, 20:47
D.h. du verzichtest auf die Inverter und steuerst alle Inputs über einen eigenen Controller-Pin an.
Wenn du wirklich nur die beiden Motoren ansteuern willst ist das OK, nur sehe ich dann den Sinn nicht so ganz.
Willst du den kompletten Drehablauf der Motoren programmieren?
Wenn du die Motoren irgendwie steuern willst, z.B. über Taster oder Sensoren, hättest du dafür beim ATtiny13 keine Ein- und Ausgänge mehr übrig.


Die Motoren sollen mit 5V laufen.
Ein (kleiner) Teil der Motorspannung fällt immer auch am Motortreiber selber ab.
Ich bin mir nicht 100% sicher und leider auch zu doof das sicher aus dem Datenblatt rauszulesen, meine aber beim L293D sind das ca. 1.5V.
(Vielleicht kann das ja jemand anderes der hier mitliest genauer sagen)
Wenn ich da richtig liege, würden von 5V die du als Motorspannung anlegst, nur 3,5V bei den Motoren ankommen.
D.h. wenn die Motoren mit 5V laufen sollen, müsstest du den L293D entsprechend mit ca. 6,5V als Motorspannung versorgen.

Zwerwelfliescher
09.08.2009, 08:38
Ich benötige keine Ein/Ausgänge mehr, da es nur einr Roboter ist, der fahren soll.

Hubert.G
09.08.2009, 09:13
Was macht dein Roboter wenn er wo anstoßt?
Wie sagst du ihn, dass er zurück fahren soll?

Zwerwelfliescher
09.08.2009, 10:02
Also im Notfall kann man noch ein Taster anschließen.
PB0=PWM
PB1=PWM
PB2=Drehrichtungssteuerung
PB3=Drehrichtungssteuerung
PB4=FREI(Taster)
RES=Taster zu GND

recycle
09.08.2009, 13:25
Ich benötige keine Ein/Ausgänge mehr, da es nur einr Roboter ist, der fahren soll.

Ohne irgendwelche Sensoren, für die du weitere Ein- und Ausgänge benötigst, wird das dann aber kein Roboter werden, sondern nur ein Fahrzeug das unkontrolliert durch die Gegend fährt.



Also im Notfall kann man noch ein Taster anschließen.
PB0=PWM
PB1=PWM
PB2=Drehrichtungssteuerung
PB3=Drehrichtungssteuerung
PB4=FREI(Taster)
RES=Taster zu GND


Laut deinem Schaltplan nicht, weil du da auf die Inverter verzichtet hast und den und PB4 für den Input 1A verwendest.

Wenn du die Schaltung wirklich baust, nimm einen Microcontroller mit ein paar mehr Ein- und Ausgängen. Der kostet - wenn überhaupt - nur ein paar Cent mehr, die du dann an den Invertern wieder einsparen kannst.

Zwerwelfliescher
09.08.2009, 13:36
Was ist ein Inverter?? Habe ich noch nie gehört. Wo gibt es den zu kaufen?

recycle
09.08.2009, 15:21
Mit Inverter ist hier ein Baustein gemeint, der das Eingangssignal invertiert.
D.h. wenn am Eingang eine 0 anliegt ist der Ausgang =1 und wenn am Eingang 1 anliegt ist der Ausgang = 0.
Solche Inverter werden in der Digitaltechnik auch als NOT glied bezeichnet.
Die gibts fertig als ICs zu kaufen, kann man aber auch mit einem Transistor und Widerstand selber basteln.


Wo gibt es den zu kaufen?
Z.B. bei www.reichelt.de, www.conrad.de und vielen anderen Elektronikhändlern.

Auch mit Inverter bleiben dir am ATTiny 13 aber maximal 2 Ein-Ausgänge übrig. Daher würde ich lieber einen Controller mit ein paar mehr Piins nehmen und mir die Inverter sparen.