Danke gleichmal für die schnellen Antworten.![]()
Also dann werde ich mich für einen Getriebemotor entscheiden und diesen evtl. später mit einem Drehgeber versehen.
Hab etwas gegoogelt aber bin mich nicht ganz sicher was ein Motortreiber macht. Ich versuche mal zusammenzufassen.
Ein Motortreiber wird mit Strom versorgt, diesen gibt er an die Motoren weiter, wenn Eingangssignale vom Microcontroller ihm das sagen. Das Ganze geht alles über I/O-Pins.
Stimmt das?
Sind generell alle Motortreiber mit Motoren kompatibel, oder worauf sollte ich bei der Auswahl achten?
Welche Signale liefern Outputs und benötigen Inputs von Microcontroller und Motortreiber, sind das genormte TRUE und FALSE Signale oder muss ich noch was dabei beachten?
@Abnormal
Danke für den Tipp, werde die Seite mal durchstöbern.
Was ich gesehen habe ist das Einbaukasten, würde gerne selbst verschiedene Elemente kombinieren um auch das Ganze ein bischen zu verstehen, deswegen probier ichs erstmal ohne.
Informationen zu Motortreibern finden sich in diesem Artikel: Getriebemotoren Ansteuerung
Bei der Auswahl musst du beachten wieviel Strom deine Motoren im Normalbetrieb benötigen. Der L293D ist ein Motortreiber-IC der max. 600mA pro Kanal liefern kann. Dieser hat auch noch einen "großen Bruder", den L293B, welche pro Kanal max. 1A schafft, allerdings müssen hier noch 8 Freilaufdioden ergänzt werden (nicht die im Datenblatt vorgeschlagenen 1N4004 verwenden, diese sind zu träge).
Du kannst die eine H-Brücke natürlich auch aus Transistoren bauen aber ehrlich gesagt wäre ich da zu Faul zu^^.
Infos zu den Logikpegeln:
Microkontroller.net
Die Motortreiber-IC's haben einen "Enable"-Pin auf den du ein PWM-Signal geben kannst. Mithilfe des PWM-Signals kannst du dann die Geschwindigkeit der Motoren regeln. Infos zu PWM:
Mikrocontroller.net (für AVR-GCC)
Allgemeines zur PWM (RN-Wissen)
PWM mit Bascom (RN-Wissen)
MfG
Torrentula
P.S.: Welche Programmiersprache willst du verwenden?
MfG Torrentula
Willkommen im Forum.
Im RNWissen steht ne ganze Menge über die Ansteuerung durch Motortreiber-IC´s (klick hier) - hat ja schon Torrentula geschrieben. Zu beachten ist, dass der maximale Strom der Motoren reichlich höher sein kann als häufig im Datenblatt angegeben wird - wenn das Datenblatt des Motors überhaupt so weit geht. Sinnvoll ist es den Motorstrom bei blockiertem Motor zugrunde zu legen (notfalls messen) - sonst brennt einem beim Anfahren irgendwann der Motortreiber durch (ist mir leider schon passiert). Abhilfe ist möglich, wenn man einen Treiber für zwei Motoren parallel anschließt um einen Motor zu steuern - manche Treiberbausteine sind nämlich gleich für zwei Motoren ausgelegt. Ausserdem sind die Treiber-IC´s häufig für eine getrennte Motor-Versorgungsspannung geeignet - dadurch kann man mit mehr Spannung gleich den Strom reduzieren *ggg*. Die vom Logik-(Controller-)teil getrennte Motorversorgung macht sich auch durch bessere Störfestigkeit des Controllers bezahlt; dabei muss der GND aller Versorgungsspannungen immer gemeinsam geschaltet sein.Zitat von Virtuelx
Noch ein kleiner Fallstrick: Die Möglichkeit den Motor durch "Kurzschließen" zu bremsen - siehe RNWissen etc. - funktioniert eher bei höheren Drehzahlen. Die Bremswirkung wird umso geringer, je geringer die Drehzahl ist. Der Motor kann insbesondere NICHT im Stillstand gebremst werden, beispielsweise um das Abrollen am Hang zu verhindern.
Viel Erfolg.
Geändert von oberallgeier (21.10.2011 um 08:11 Uhr)
Ciao sagt der JoeamBerg
Okay, werde versuchen mich da etwas durchzulesen.
Fürs Programmieren des Microcontrollers würde ich gerne eine C-ähnliche Sprache verwenden, allerdings bin ich auch nicht abgeneigt eine neue zu lernen, sollte sich ein andere Microcontroller besser eignen.
Ich weiß nicht mit welcher Programmiersprache die PIC´s programmiert werden. Für die verbreiteten AVR-Controller gibts eine praktische Entwicklungsumgebung mit C als Programmiersprache. AVRStudio 4 oder AVRStudio 5 (die Version 5 kenn ich nicht, die 4 verwende ich seit Jahren, etwas Assembler aber fast alles in C), dazu den C-Compiler GCC (z.B. WinAVR, aktuelle WinAVR-20100110). Das Zeugs, AVRStudio 4 - klick hier, gibts bei Atmel kostenlos, man muss sich registrieren. Den GCC schau hier (klick wieder) unter Download - ebenfalls ohne Kosten, nur der Downloadaufwand.Zitat von Virtuelx
Viel Erfolg.
Ciao sagt der JoeamBerg
Vielen Dank!
Hab jetzt mal das Wichtigste auf den Seiten durchgelesen und gleich dazu ein paar Komponenten rausgesucht.
2x Getriebemotoren http://www.conrad.at/ce/de/product/2...archDetail=005
2x Räder http://www.conrad.at/ce/de/product/2...archDetail=005
2x Ulltraschallsensor http://www.conrad.at/ce/de/product/5...31710&ref=list
1x Microcontroller http://www.conrad.at/ce/de/product/1...archDetail=005
1x Motortreiber http://www.conrad.at/ce/de/product/1...archDetail=005
1x Programmierstick http://www.conrad.at/ce/de/product/1...archDetail=005
Wenn ich keinen Denkfehler habe sollte der Motor in Verbindung mit den Rädern eine maximal Geschwindigkeit von ca. 41cm/s leisten können.
Der Motortreiber kann kann 2 Motoren ansteuern mit je 600mA, jeder Motor braucht 300mA, sollte also ausreichend sein.174U/min = 2,9U/s
2,9U/s * 45mm*pi = 410mm/s = 41cm/s
Wäre toll wenn das jemand bestätigen könnte.
Was ich noch nicht weiß, ist was für ein Signal der Sensor liefert, analog oder digital? Aus dem Datenblatt kann ich das nicht herauslesen.
Hat der Microcontroller digitale Eingänge? Was ich sehe hat er ADC-Pins aber aus den anderen Abkürzungen werde ich nicht schlau.
Passt dieser Programmierstick für meinen Microcontroller? Der Stick hat 2x 3Pins, allerdings der Controller hat 2x 20Pins, also werden nicht alle Pins benutzt.
Und einen Punkt den ich komplett vergessen habe ist die Stromversorgung. Welche Batterien benutzt man dafür?
Edit: Werde mich gleichmal an den Schaltplan machen und den dann hochladen.
wieso zwei Ultraschallsensoren?
einen US-Sensor auf einem Servo zu montieren ist billiger, und machts interrressanter
Akku würde ich (kommt auf die größe des Bots an) entweder Bleiakku (günstig aber schwer) oder einen LiPoly-Akku(leicht aber teuer) nehmen.
mfg Sebastian
Lesezeichen