hallo, hat jemand Grundschaltung von Atmega8/32 mit Motorentreiber L293D und 2 motoren....? katta
der Prozessor kriegt die Standardbeschaltung mit Resetpullup, Abblockkondensatoren und Programmierschnittstelle, 4 Pins von irgendeinem Port werden mit den 4 Inputs verbunden, die beiden enable auf high(5V), außer du willst darüber die PWM regeln, dann brauchste PWM-Ausgänge des Prozessors dran. Pin 8 beim L293D ist Versorgungsspannung der Motoren, Pin 4,5,12,13 sind Masse. Motorausgänge dann 3,6, 11,14. Noch die Logikspannung (=Prozessorspannung = 5V) an Pin 16. Ein paar Kondensatoren gegen Spannungseinbrüche runden das Ganze ab. Übrigens gibts zu dem L293D ein Datenblatt, in dem sogar die Beschaltung beschrieben ist, also einfach mal suchen ;-)
wo ist das problem? Motoren an die Außgänge, Eingänge an die µC outs, für Drehzalregelung die Enable leitung an einen PWM Ausgang hängen...
danke ,ich versuch mal diese Schaltung mit Eagle zuzeichnen.aber was meinst du mit Kondensatoren gegen Spannungseinbrüche...oder wo muss ich ganz genau die Kondensatoren anlegen???
zwischen GND und Logikspannung, kann ein 100nF Kerko zur entstörung nicht schaden. Die Pufferelkos für die Motoren dann zwischen Masse und Lastspannung (Vcc2) hängen.
ich hab diesen Schaltp,lan gezeichnt , aber ich weiß nicht , ob alles richtig ist oder falsch...??? die andere Datei (r.sch) mit Eagle.
du willst mit dem L293D nicht wirklich LEDs treiben !? und wozu sollen die PWM header dienen? Die Enable anschlüsse des L293D solltest du auch beschalten. Wenn du die Motoren in der Drehzahl regeln willst mit je einem PWM Ausgang des AVR. Und Vcc1 des L293D kannst du auch noch 100nF gönnen...
ich versuche mal etwas für den Einstieg machen, was leicht und einfach ist . ich will eigentlich einen kleinen Roboter mit 2 motoren und CNY70 aufbauen,wobei der Roboter in C programmiert werden kann. aber für mich finde ich lieber zuerst die Motoren mit je einem PWM Ausgang des AVR zu steuren ,dann kann ich cny70 anlegen.
Hallo, kann jemand mir helfen, was muss ich mit dieser Schaltung machen...???
im zweifelsfall die LCD routienen komplett für schieberegister umschreiben. Wenn deine Schieberegister Ansteuerung läuft, und die originale Ansteuerung als vorlage verwendest sollte das eigentlich ganz gut machbar sein.
ich will nur die motoren steuren, aber vielleicht es fehlt nor in dieser Schaltung Pins 1, 9 von L293D, für die PWM und PWM-Ausgänge des Prozessors oder...!!! ich soll vielleicht Pins 1,9 von L293D mit Pins 23, 24 von Prozessor verbinden.
Katta Katta schrieb: > ich versuche mal etwas für den Einstieg machen, was leicht und einfach > ist . Dann fang mit der Standardbeschaltung aus dem avr-tutorial an. Bring deine LED zum Blinken und frag Taster ab, so wie alle Anfänger, die es nach einiger Zeit geschafft haben mit dem µC auf Du-und-Du zu kommen. Dann noch ein LCD dran, die LEDs anstatt blinken mittels PWM dimmen und dann kannst du dich um Motoren kümmern.
Katta Katta schrieb: > ich versuch mal das zu probieren. danke für Hilfe... :) Worum gehst? Es geht darum, dass du in Übung kommst. Wenn du dich für LCD nicht interessierst, dann machst du eben kein LCD. Das ist ja nicht der springende Punkt (*) In deinem ersten Ansatz lässt du dich in einen Mehrfrontenkrieg ein. Du versuchst gleichzeitig eine relativ komplexe Hardware gepaart mit den Problemen der Anfänge der Programmierung gepaart mit den speziellen Problemen der AVR-Programmierung ohne Debugwerkzeuge ... in den Griff zu kriegen und das ist einfach zuviel auf einmal. zb können dir Motoren wunderbare Effekte auf der Versorgungsspannung verursachen, die deinen AVR zu allen möglichen lustigen Effekten veranlassen. Du weißt dann nie, hab ich einen Programmfehler oder ist das wieder einmal eine Motoreneinstreung. Wenns für den Einstieg einfach sein soll, dann bau eine Standardbeschaltung auf, häng eine Handvoll LED dran und arbeite mit diesen. Es geht nicht darum, dass x-te Lauflicht möglichst optimal zu implementieren. Es geht darum, dass du überhaupt programmierst und zwar ohne dass du auf 100-tausend Sachen nebenher auch noch aufpassen musst. Die Lernkurve ist gerade am Anfang extrem steil, man müsste alles gleichzeitig lernen und das geht nun mal nicht. Also heißt es abspecken und mit simpelsten Aufgabenstellungen anfangen, sich dort die notwendige Übung zu holen und sich sukzessive immer weiter hochzuarbeiten. (*) Obwohl ich mitlerweile soweit bin, zu einem LCD zu raten. Während der Programmentwicklung bist du immer wieder in der Situation eine Ausgabemöglichkeit zu benötigen.
ja du hast natürlich recht, ich finde im moment noch ganz viele Schwierigkeiten , hab ich schon eine Standardbeschaltung mit Atmega32 aufgebaut ,mit ein paar LEDs ohne Timer nur mit DELAY gesteuert. Und wie du gesagt hast "in den Griff zu kriegen und das ist einfach zuviel auf einmal", dasswegwn hab ich LCD später zu progrmmieren bis ich zuerst die DC-Motoren steuren kann. ich weiss nicht, ob ich zuerst LEDs mit timer programmieren soll, weil timer wichtig für L293D ist oder nicht ...!!! danke für Beratug...
Katta Katta schrieb: > ja du hast natürlich recht, ich finde im moment noch ganz viele > Schwierigkeiten , hab ich schon eine Standardbeschaltung mit Atmega32 > aufgebaut ,mit ein paar LEDs ohne Timer nur mit DELAY gesteuert. > Und wie du gesagt hast "in den Griff zu kriegen und das ist einfach > zuviel auf einmal", dasswegwn hab ich LCD später zu progrmmieren bis ich > zuerst die DC-Motoren steuren kann. > ich weiss nicht, ob ich zuerst LEDs mit timer programmieren soll, weil > timer wichtig für L293D ist oder nicht ...!!! > danke für Beratug... Das Schwierigste ist das Auswählen der Reihenfolge, in der man sich in das nächste Abenteuer stürzt :-) Grundsätzlich rate ich dir: zieh alles vor, was dir eine Ausgabe/Anzeigemöglichkeit bietet und verschiebe alles nach hinten, was das nicht tut. Warum? Eines der großen Probleme in der Programmierung lautet: Wenns nicht tut, woran liegts? Wenn du eine Ausgabemöglichkeit hast, und seien es nur ein paar Led, dann kannst du diese Ausgabemöglichkeit dazu nutzen, damit dir dein Programm selber hilft, zu verstehen was im Programm vor sich geht (und worin sich das von dem unterscheidet was du dir vorstellst das eigentlich passieren sollte). Das kann sein, dass man an strategischen Stellen im Programm eine LED einschaltet. Das kann sein, dass man die LED mit unterschiedlichen Frequenzen blinken lässt und so aus der Frequenz die 'Nachricht' des Programms ruasliest "Ich bin jetzt hier; ich bin jetzt da; Variable i hat den Wert kleiner 100; ..." Aber dazu brauchst du irgendeine Möglichkeit, mit der sich das Porgramm bemerkbar machen kann. Insofern ist ein LCD super, weil es deinem Programm die Möglichkeit gibt, Zwischenwerte oder sonstige Dinge im Klartext auszugeben, so dass du als Programmierer sie gut lesen kannst. Es macht nun mal einen Unterschied, ob du dir zb ein von der UART empfangenes Zeichen direkt im Klartext irgendwo anzeigen lassen kannst, oder ob du das Zeichen auf 8 LED binär rausgibst und du als Programmierer, bewaffnet mit einer ASCII Tabelle, den Code entschlüsselst. Oder denk an den Analog/Digital Wandler. Wie kontrollierst du, was der gerade eingelesen hat? Led mit einer Frequenz proportional zum Wert ist natürlich eine Möglichkeit, aber auf einem LCD schreib ich den Wert im Klartext raus und kann dann mit Taschenrechner den Wert in eine Spannung umrechnen um zu kontrollieren, ob das stimmen kann. Also: Ausgabemöglichkeiten sind wichtig. Sie ermöglichen es dir ein 'Fenster' zu deinem Programm zu öffnen, so dass dir das Programm selber hilft zu verstehen, wo du dich vertan hast. Und natürlich müssen die dazu notwendigen Techniken sitzen. Soweit sitzen, dass du nicht lange zögern musst, um sie einzusetzen. Wenn dein Motor nicht anläuft, oder der PID Regler zur Geschwindigkeitsregelung des Motors schwingt, dann sind diese Ausgabemöglichkeiten dein 'Fuss in der Tür', mit der du am Problem arbeiten kannst.
danke, ich hab ganz genau vestanden ,was du meinst, und bestimmt, LCD macht viel Spaß, wenn man das lernt. ich find , dass man mit strategischen Ansätze am Ende schaffen kann. Auf jeden Fall , ich beginne Schritt für Schritt zu lernen .
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.