www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8/32 mit L293D


Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
hat jemand Grundschaltung von Atmega8/32 mit  Motorentreiber L293D und 2 
motoren....?


katta

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
;-)

Autor: Ephraim Hahn (ephi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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???

Autor: Ephraim Hahn (ephi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:
Angehängte Dateien:
  • r.sch (241 KB, 143 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
ich hab diesen Schaltp,lan gezeichnt , aber ich weiß nicht , ob alles 
richtig ist oder falsch...???
die andere Datei  (r.sch) mit Eagle.

Autor: Ephraim Hahn (ephi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kann jemand mir helfen, was muss ich mit dieser Schaltung machen...???

Autor: Ephraim Hahn (ephi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich versuch mal das zu probieren. danke für Hilfe...   :)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Katta Katta (katta) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 .

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.