Forum: Mikrocontroller und Digitale Elektronik Schrittmotorsteuerung mit µC und L293


von Peter S. (schoells)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich bin gerade dabei, eine Schrittmotorsteuerung für 4 Schrittmotoren zu 
entwerfen.

Meine Idee war, dass ich an einen "Master µC" via RS232 Kommandos sende, 
welche der µC über TWI an die "Steuer µCs" versendet. (Sprich 
Drehrichtung, Drehzahl, einbremsen ect.)

Mittels Timer werden dann die Ports aktiviert bzw. deaktiviert, die den 
L293 steuern, welcher dann den Schrittmotoren Leben einhaucht.

Warum hab ich das so gemacht:
Meine Idee für die Steuer µCs war, dass diese mittels 
Inkrementalscheiben und Lichtschranken auch Schrittverluste feststellen 
können, und diese selbsttändig ausgleichen.
Weiters hab ich mir gedacht, dass der Master µC z.B. auch nur 
"Referenzfahrt" sendet, und die Steuer µCs abfragen, ob die 
Lichtschranke an der Referenzmarke ausgelöst wurde.
Weiters kann der Master auch die Position der Schrittmotoren (anhand der 
Schrittzahl) abfragen.

Was halten ihr von dieser Art der Ansteuerung? Da ich in Elektronik 
nicht wirklich bewandert bin (beschäftige mich erst seit einigen Wochen 
damit) hoffe ich, dass ihr mir die Nachteile dieser Steuerung (und 
vielleicht auch Vorteile) nennen könnt.

Danke im Voraus!
lg Peter

von Hubert G. (hubertg)


Lesenswert?

Wenn du das ganze aus dem Mega16 betreibst, sollte es auch kein Problem 
sein.
Die Optokoppler machen nur Sinn wenn du die Stromversorgung von 
Motorsteuerung und µC wirklich komplett trennst. Auch keine 
GND-Verbindung.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Wenn du das ganze aus dem Mega16 betreibst, sollte es auch kein Problem
> sein.
> Die Optokoppler machen nur Sinn wenn du die Stromversorgung von
> Motorsteuerung und µC wirklich komplett trennst. Auch keine
> GND-Verbindung.

Der Mega16 ist im Moment nur in der Schaltung, weil ich einen rumliegen 
hab. Werde das später mit nem ATmega8 ausführen, da ich ja nicht so 
viele IO Pins benötige.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Wenn du das ganze aus dem Mega16 betreibst, sollte es auch kein Problem
> sein.
> Die Optokoppler machen nur Sinn wenn du die Stromversorgung von
> Motorsteuerung und µC wirklich komplett trennst. Auch keine
> GND-Verbindung.

Welche Möglichkeiten gibt es eigentlich da? Ich möchte das ganze mit 
einem 12 V Netzteil versorgen. Kann ich da irgendwie eine galvanische 
Trennung für den µC Steuerkreis und den Motorsteuerkreis einbauen?

von Hubert G. (hubertg)


Lesenswert?

Deine Entkopplung würde nur etwas bringen wenn du zwei getrennte 
Netzteile verwenden würdest.
Bei einer ordentlichen Entkopplung zwischen 12V und 5V und einem guten 
Layout gibt es sicher keine Probleme ohne Optokoppler.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Deine Entkopplung würde nur etwas bringen wenn du zwei getrennte
> Netzteile verwenden würdest.
> Bei einer ordentlichen Entkopplung zwischen 12V und 5V und einem guten
> Layout gibt es sicher keine Probleme ohne Optokoppler.

Was verstehst du unter einer "ordentlichen Entkopplung zwischen 12V und 
5V"?

von Hubert G. (hubertg)


Lesenswert?

Eine ordentliche Entkopplung abgesehen mal vom Layout.
Vor dem Spannungsregler eine Diode für 1A und ein 470µ Elko. Die 100n 
Kondensatoren unmittelbar am Spannungsregler.
An jeden VCC und AVCC Pin ein 100n Kondensator.
Ob die 22 Ohm Widerstände an den L293 Sinn machen glaube ich nicht, es 
gehören 100µ und 100n an VCC2 und 100n an VCC1 der L293.
An die Stromversorgungspin des MAX232 ebenfalls 100n.
Damit  hast du Rückwirkungen über die Stromversorgung weitgehend 
unterdrückt und wenn dann auch noch das Layout passt sollte nichts 
schief gehen.

von Peter S. (schoells)


Lesenswert?

Ah, danke für die ausführliche Erklärung.
Werd mal meinen Schaltplan umzeichnen und dann nochmal zur Durchsicht 
posten.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Ob die 22 Ohm Widerstände an den L293 Sinn machen glaube ich nicht, es
> gehören 100µ und 100n an VCC2 und 100n an VCC1 der L293.

Einen 22Ohm 5W Widerstand brauch ich zur Strombegrenzung, da eine Spule 
einen max. Phasenstrom von 0.6A hat.

Im Datenblatt hab ich nichts über die Kondensatoren von VCC2 und VCC1 
gefunden.

von Peter S. (schoells)


Angehängte Dateien:

Lesenswert?

Die neue Version des Schaltplans ohne Optokoppler.

von Hubert G. (hubertg)


Lesenswert?

Die Kondensatoren an VCC1 und VCC2 sind auch nicht die Beschaltung für 
den L293 sondern um rückwirkende Störungen in die restliche Schaltung zu 
vermeiden.
Wenn du den Strom durch die Spule begrenzen willst, dann den Widerstand 
in Serie zur Spule. Der Widerstand der Spule darf in deinem Fall aber 
nicht sehr groß sein.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Die Kondensatoren an VCC1 und VCC2 sind auch nicht die Beschaltung für
> den L293 sondern um rückwirkende Störungen in die restliche Schaltung zu
> vermeiden.
> Wenn du den Strom durch die Spule begrenzen willst, dann den Widerstand
> in Serie zur Spule. Der Widerstand der Spule darf in deinem Fall aber
> nicht sehr groß sein.

Er ist hier doch in Serie geschalten (also vor der Spule).

Des weiteren überlege ich einen Kondensator parallel zum Motor zu 
schließen (300µF) um die Blindleistung des Motors zu kompensieren.

von Hubert G. (hubertg)


Lesenswert?

Peter S. schrieb:

> Er ist hier doch in Serie geschalten (also vor der Spule).
Du meinst vor beiden Spulen.
> Des weiteren überlege ich einen Kondensator parallel zum Motor zu
> schließen (300µF) um die Blindleistung des Motors zu kompensieren.
Am besten die SMD-Version des L293 nehmen, ist interessanter beim 
tauschen.

von Peter S. (schoells)


Lesenswert?

Hubert G. schrieb:
> Peter S. schrieb:
>
>> Er ist hier doch in Serie geschalten (also vor der Spule).
> Du meinst vor beiden Spulen.
>> Des weiteren überlege ich einen Kondensator parallel zum Motor zu
>> schließen (300µF) um die Blindleistung des Motors zu kompensieren.
> Am besten die SMD-Version des L293 nehmen, ist interessanter beim
> tauschen.

Meinst du damit, ich schieß den L293 damit ab?

von Matthias (Gast)


Lesenswert?

Falls du auch bei höheren Drehzahlen noch ein vernünftiges Drehmoment 
erziehlen möchtest, solltest du modernere Schrittmotortreiber mit 
Stromregelung in Betracht ziehen und die Motoren mit kräftiger 
Überspannung betreiben.

Gruß Matthias

von Peter S. (schoells)


Lesenswert?

Matthias schrieb:
> Falls du auch bei höheren Drehzahlen noch ein vernünftiges Drehmoment
> erziehlen möchtest, solltest du modernere Schrittmotortreiber mit
> Stromregelung in Betracht ziehen und die Motoren mit kräftiger
> Überspannung betreiben.
>
> Gruß Matthias

Könntest du mir einen moderneren Schrittmotortreiber empfehlen?
Generell benötige ich jedoch keine hohen Drehzahlen bzw. kein hohes 
Drehmoment, da die zu bewegenden Massen sehr klein sind.

von Matthias (Gast)


Lesenswert?

Peter S. schrieb:
> Könntest du mir einen moderneren Schrittmotortreiber empfehlen?

Da gibt es z.B. die Serie L6201..6208 mit MOSFETs und Anschluß für einen 
Stromfühlwiderstand. Die Stromregelung selbst ist da noch nicht drin 
sondern wird normalerweise vom Controler erledigt, der sich auch um die 
Erzeugung der Phasensignale kümmert..

Als kompletter Controller fällt mir für kleine Motoren z.B. der A3967 
ein.

Es kommt natürlich drauf an, was zu deinen Motoren und deinem 
Ansteuerkonzept paßt.

Gruß Matthias

von Hubert G. (hubertg)


Lesenswert?

Hubert G. schrieb:
> Peter S. schrieb:
>
>> Er ist hier doch in Serie geschalten (also vor der Spule).
> Du meinst vor beiden Spulen.
Ich kenne deine Motoren nicht, aber wenn eine Spule 11 Ohm hat, dann 
hast du für jede Spule etwa 220mA.
>> Des weiteren überlege ich einen Kondensator parallel zum Motor zu
>> schließen (300µF) um die Blindleistung des Motors zu kompensieren.
Bedenke mal die Ströme die da fließen und wie hoch deine 
Schrittgeschwindigkeit dann ist.
> Am besten die SMD-Version des L293 nehmen, ist interessanter beim
> tauschen.
Ein Konzept mit aktiver Stromregelung ist, wie schon angeregt, sicher 
die bessere Lösung. Es sei denn du hast einen speziellen 
Verwendungszweck.

von Stephan K. (dustpuppy)


Lesenswert?

Hi,
das wird ueberhaupt nichts tun. Du hast die Reset-Pins der Controller im 
Nichts liegen. Die muessen ueber nen Widerstand an 5v, sonst wird das 
nix.
Ausserdem fehlt GND an Pin 5 des RS232-Steckers und die beiden Pullups 
fuer I2C sind mit 4,7k meiner Meinung nach etwas hefftig. Da reichen 1k.

Gruesse

Dusty

von Michael A. (Gast)


Lesenswert?

Stephan Kempa schrieb:
> Ausserdem fehlt GND an Pin 5 des RS232-Steckers und die beiden Pullups
> fuer I2C sind mit 4,7k meiner Meinung nach etwas hefftig. Da reichen 1k.

Das kommt auf die Busgeschwindigkeit und Kabellänge drauf an. Für 100 
kHz funktionieren 4.7kΩ schon.

von Peter S. (Gast)


Lesenswert?

@Stephan Kempa
> das wird ueberhaupt nichts tun. Du hast die Reset-Pins der Controller im
> Nichts liegen. Die muessen ueber nen Widerstand an 5v, sonst wird das
> nix.
Ah, da hat sich ein Fehler in der Zeichnung eingeschlichen. Am 
Steckbrett sind die Reset Pins richtig "verkabelt".

> Ausserdem fehlt GND an Pin 5 des RS232-Steckers und die beiden Pullups
> fuer I2C sind mit 4,7k meiner Meinung nach etwas hefftig. Da reichen 1k.
GND an Pin5 - auch hier Fehler im Schaltplan. Hab GND zwar am Gehäuse 
eingezeichnet, aber auf Pin 5 vergessen.

Die 4,7k Ohm funktionieren bestens.

@Hubert G.
> Ein Konzept mit aktiver Stromregelung ist, wie schon angeregt, sicher
> die bessere Lösung. Es sei denn du hast einen speziellen
> Verwendungszweck.

Wie könnte ich diese aktive Stromregelung bewerktstelligen?

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.