PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor ansteuern



Decca
12.02.2006, 16:17
Hallo@all.

Ich möchte mit einem ATmega8 einen Schrittmotor ansteuern. Das Problem ist, dass die Ansteuerungseinheit für den Motor mit RS485 arbeitet. Über RS485 kommen die Befehle wohin sich Motor drehen soll u.s.w.. Mit dem ATmega8 und MAX232... kann ich ja RS232 ansteuern. Ist es möglich (und wie) mit dem Controller die RS485 Schnittstelle anzusteuern.
Im Netz habe ich Konverter gefunden, die aber ziemlich teuer sind...
Bin für jede Idee dankbar.

Gruß Decca

Wolfram
15.02.2006, 20:56
Hi Decca,

das kannst Du leicht mit einem Max487 oder ähnlichem machen.
Der wandelt TTL in entsprechende Bussignale.
Nur auf beiden Seiten mit einem 120R Widerstand abschließen - fertig.
Lediglich die Transferroutinen müssen ein RTS-Signal vorneweg senden.

Viel Erfolg!

Wolfram

Decca
16.02.2006, 19:34
Hallo,

sind die Sende und Empfangsroutinen dann so als ob ich mit einer RS232 Schnittstelle arbeite? Also ich stelle mir das so vor, dass ich einen Wandler zwischen RXD und TXD schalte, dann ein Zeichen vom ATmega sende und dieses Zeichen in ein "RS485 Zeichen" gewandelt wird. Ist das so? Wenn zu naiv gedacht einfach eines besseren belehren.

Gruß Decca

Wolfram
16.02.2006, 21:12
Hallo Decca,

im Prinzip ist die Wandlung erstmal eine von TTL auf Differenzsignal A-B.
Aber der RS-485 Bus ist eben als Bus ausgelegt, d.h. einer quatscht, alle hören zu.
Und da Du die beiden Leitungen eben nicht als getrennte Sende- Empfangsleitungen verwendest, mußt Du den Datentransfer steuern.
Das erledigt i.d.R. ein Pin, meist der RTS. In einem uC kann das irgend ein I/O PIn erledigen.
Da Dein Schrittmotor wahrscheinlich nichts zurücksendet (oder doch?), kannst Du die Datenrichtung eingentlich festlegen, in dem Du die Pins festlegst. Angesteuert wird dann der Port so wie über eine RS232, sollte dann also ohne weitere Anpassung laufen.

Gruß Wolfram

Decca
19.02.2006, 11:47
Hallo Wolfram,

erstmal danke für die Antwort. Der Schrittmotor sollte keine Signale zurücksenden, da ich ja alle Befehle über den uC vorgebe (Kontrolle brauche ich erstmal nicht). Wenn ich dich jetzt richtig verstanden habe Sende ich ein Zeichen und dabei darf dann nichts anderes übertragen werden o. empfangen.
Ist das Polling betrieb (Senden u. Empfangen im Abfragebetrieb)?


Gruß Decca

SeveQ
20.02.2006, 08:34
Nee, "Polling" bedeutet, daß ein Gerät permanent in einer Schleife den Zustand eines Ports abfragt (den Port "pollt", quasi fragt "Hey, hast du Daten für mich?"). Ist das Gegenteil vom Interrupt-Betrieb, in dem der Port dem Gerät sagt "Hey, ich hab Daten für dich, hol die mal ab!".

Also um Bezug auf deine Vermutung zu nehmen: es ist NUR empfangen im Abfrage-Betrieb.

Decca
21.02.2006, 13:06
Hallo,

der Motor ist jetzt da und ich werde mal die ersten Versuche starten. Danke für die Hilfe.

Gruß Decca