Forum: Mikrocontroller und Digitale Elektronik Motoransteuerung


von Martin Schneider (Gast)


Angehängte Dateien:

Lesenswert?

hi

im Anhang befindet sich meine platine und das treiber - board.

Ich möchte nun ein Programm schreiben, mit welchem ich die motoren
ansteuere (es sind 2), sie liegen bei der mcu an dem PortB mit jeweils
4 Anschlüssen.

Wie müsste das Programm so ungefähr aussehen, was ist zu beachten?

Dank euch!

von Stefan Kleinwort (Gast)


Lesenswert?

hallo Martin,

mit .ace-Files können hier sicher die wenigsten was anfangen, Wie wäre
es mit .gif oder .pdf?

Wenn Du verrätst, welche CPU Du verwendest, helfen Dir vielleicht auch
Leute, die keine Lust haben, das zuerst aus Deinem Schaltplan zu
popeln.

Codesammlung kommt übrigens nicht von Code sammeln.

Stefan

von Martin Schneider (Gast)


Angehängte Dateien:

Lesenswert?

hi

also die mcu ist AT90S2313 von Atmel.

von Martin Schneider (Gast)


Lesenswert?

hi

was ist nun, ich dacht ihr helft mir?

Also wie soll ich das anstellen?

von Sven (Gast)


Lesenswert?

@Martin

>>Also wie soll ich das anstellen?

Gifs hier reinstellen? Ganz einfach: Im Eagle => File => Export =>
Image => als Gif speichern, 150dpi Auflösung reicht meistens.

Wenn Du einen guten Tag hast, spendier der Schaltung mal noch je 100nF
an Ein- und Ausgang des 7805 und dicht an Pin 20-Vcc des AVR gegen GND,
auch 10nF von Pin 1-Reset gegen GND, sonst könnte der Controller
komische Sachen machen. ;-)

Hast Du schonmal AVR programmiert? Hast Du Dir schon unter
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 die
App-Note 360 angesehen:
http://www.atmel.com/dyn/resources/prod_documents/doc1181.pdf Gibt es
auch einen Beispielcode dazu:
http://www.atmel.com/dyn/resources/prod_documents/AVR360.asm Kannst Du
damit was anfangen?

Sven

von Martin Schneider (Gast)


Lesenswert?

hi

1.also gehen die texte die du mir gegeben hast wirklich (hab sie mir
mal durch gelesen) auch für den AT90S2313? 2.jaja ich habe schon ein
wenig Erfahrung im Programmiern, was müsste ich noch verändern?.

3.Was ist eigentlich diese App-Note 360, wozu ist die da?


Außerdem die mcu macht keine komischen sachen
(schon getestet), wenn doch beim programm wird es eben noch geändert.

von Martin Schneider (Gast)


Angehängte Dateien:

Lesenswert?

hat ich vergessen siehe anhang

von Martin Schneider (Gast)


Lesenswert?

hi

also muss ich das unbedingt mit einem timer machen?

Ich brauch eigentlich nur eine Schleife, bei der ich die Anzahl der
Durchläufe bestimmen kann, um wieviel Schritte sich der Motor bewegt.

Was muss ich da bei AVR360, wenn das auch für den AT90S2313 ist
verändern (bei dem was du mir gegeben hast)?

von Sven (Gast)


Lesenswert?

@Martin

>>Was ist eigentlich diese App-Note 360, wozu ist die da?

Naja, da wird halt beschrieben, wie man Schrittmotore mit einem AVR
steuern kann.

>>Außerdem die mcu macht keine komischen sachen

Noch nicht ;-) Aber an Reset gehört auf jeden Fall ein Kondensator,
sonst kann Dir jede kleine Störung auf der Versorgungsspannung oder auf
der Reset-Leitung des ISP ein Reset auslösen.

>>also muss ich das unbedingt mit einem timer machen?

Musst Du nicht, Du kannst auch die Pausen als Schleife ausführen. Aber
das ist nicht so schön... und Du bist nicht flexibel. Was stört Dich am
Timer?

>>Ich brauch eigentlich nur eine Schleife, bei der ich die Anzahl der
Durchläufe bestimmen kann, um wieviel Schritte sich der Motor bewegt.

Und noch ein paar Schleifen, um die Pulslängen erreichen... Wenn Du das
mit Delays machst, kannst Du in der Zeit nix anderes tun (Tastendruck,
andere Motoren, event. Endlagenschalter), bei Timer schon.

>>Was muss ich da bei AVR360, wenn das auch für den AT90S2313 ist
verändern (bei dem was du mir gegeben hast)?

Die include von 8515 auf 2313 anpassen.
Den c_value entsprechend Deiner Quarzfrequenz und gewünschten
Schrittfrequenz anpassen.
Eventuell die RAM location ändern, damit das auf den 2313 passt, hängt
auch davon ab, was sosnt noch läuft.
Das Ganze für den zweiten Motor erweitern (Port, zweite RAM location =>
da steht, bei welchem Schritt er gerade ist).
Die Peripherie (Tasten) einbinden, Du willst sicher mehr als nur zwei
Motore endlos in einer Richtung laufen lassen.

Sven

von Martin Schneider (Gast)


Lesenswert?

hi

ok mach ich doch mit dem timer, denn es ist wirklich einfacher :->
Ist bei meiner mcu bei überschreiben des R360 noch irgendetwas zu
beachten?

von Martin Schneider (Gast)


Lesenswert?

hi

ich habe mir das nochmal überlegt, ich mache das doch mit schleifen,
denn ich brauche bei der ansteuerung der motoren, die ein fahrzeug
bewegen, welche durch sensoren ausgelöst werden, nichts zu machen.

wie würde das den so ganz grob aussehen im vergleich zum timer?

von Martin Schneider (Gast)


Lesenswert?

hi

wie ist das denn nun?

Außerdem wie bringe ich dem Programm bei, die spulen nach einem
bestimmten muster laufen zu lassen, sodass es den richtig ansteuert unt
wie geht das nun mit den schleifen und der pulslänge?

von Martin Schneider (Gast)


Lesenswert?

hi

ich dachte ihr helft mir noch ein bischen :-?

von Martin Schneider (Gast)


Lesenswert?

hi

@sven was ist den nun, hilfst du mir nun noch?

von Martin Schneider (Gast)


Lesenswert?

hi

oder könnt ihr mal den ablauf so vom inhalt her hier rein schreiben,
wenn ich das mit den schleifen mache, dann kann ich ja schon mal
programmieren und noch mal fragen stellen, wenn ich nicht weiter komme.

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
Noch kein Account? Hier anmelden.