www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Schrittmotor mit AVR ansteuern


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus zusammen,

ich bin gerade daran einen Schrittmotor-Controller zu basteln. Ziel ist 
es mit dem Schrittmotor einen Schlitten von A nach B und zurück zu 
bewegen.
Nun, gibt ja viel zu lesen, allerdings finde ich nicht alles, was mich 
quält.

1. Ist es sinnvoll einen AVR mit einem 16-bit Timer/Counter zu suchen um 
dann mit 16-bit die Schrittverzögerungen "abzuwarten" (eigentlich nur 12 
Bit, wenn man bei unter 10% Geschwindigkteits-Schrittweite landen 
möchte)?
Oder gibts da klügere Ansätze?

2. Eine Beschleunigungsrampe: im Prinzip würde mir eine Tabelle zusagen, 
doch so viel Speicher findet man ja quasi nur in den größeren AVRs. Oder 
riechen tatsächlich 64 Schritte zur Höchstdrehzahl (werden wohl um die 
100kHz werden) aus? (64 Schritte ergeben sich aus 128bit EEPROM gefüllt 
mit einer 16-bit-Timertabelle.)
Oder doch besser realtime Berechnen. Welche Formeln sind da am 
sinnvollsten für bis zu 100kHz mit max. 16MHz Quarz. Taugt die ATMEL 
Application Note AVR446 dafür noch?
Ich kann das immer so schlecht einschätzen ob für ein paar Zeilen C-Code 
160Takte ausreichen (inkl. Interrupt einleiten etc.)


Vielen Dank schonmal
lg Peter

PS:
Falls mein Vorhaben nicht genau genug rüber kam nochmal ausführlich:
Hardware: ein display, eine Platine, zwei greifer, ein 
Schrittmotortreiber und ein Schrittmotor. Der schrittmotor soll einen 
Greifer auf den anderen zu oder weg bewegen während die Greifer 
wechselseitig zupacken.
Im Ganzen soll letztlich eine stange immer wieder nachgeschoben werden.

Software: soll nicht mehr erledigen als eine zuvor am display 
eingestellte anzahl an schritten vorwärtsfahren, umgreifen, zurückfahren 
und nochmal umgreifen.
Erledigt hätte ich das jetzt mit einem 16bit-CTC-Timer, der in seiner 
Interruptroutine die Schritte auslöst und gleich die nächste Timerdelay 
berechnet/aus einer Tabelle ausliest.
Das Display und ein paar Taster werden in der main-loop bedient. Wobei 
die Tasten während einem angefangenen "Nachgreifprozesses" mittels eines 
Falgs gesperrt werden.

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> 100kHz


Welchen Treiber hast Du denn im Einsatz? Welcher Motor?

Wenn Du 10Khz hast und der Motor fährt auch diese Geschwindigkeit, 
kannst Du dich schon freuen.

Für die Greiferanwendung werden es wohl max. 2 Umdr./sec werden eher 
weniger.

Das geht locker mit Software Impulserzeugung.

ansonsten lese mal was über Bresenham.


Axel

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weitere Fragen:
wieviele Schritte macht Dein Motor pro Umdrehung?
Daraus folgend:
Wieviele Schritte musst du machen von einer machanischen Endlage bis zur 
entgengesetzten?

Dann kannst Du überlegen, wie schnell diese Schritte gemacht werden 
sollen.


Axel

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ixh stelle gerade fest, das ganze blabla um die 12-bit ist käse. Ich 
brauche lediglich einen mindestwert für den Timer. ganze bits gehen 
nicht für präzission drauf...

@ Düsendieb.
Das läuchtet mir jetzt nicht ein. Ich weiß im moment nicht wieviele 
schritte es letztendlich sein werden. Aber das ist ja auch,, was in der 
Software als variable bleiben soll.
Allerdings weiß ich, dass die die maximaldrehzahl bei 400kHz erreicht 
wird. Unter Last sind 100kHz drin und unser Ziel.
Aber kannst/willst du mal deinen Gedankengang noch etwas azsführen?

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> 400kHz

glaube Du meinst 400Hz.

So ein Schrittmotor hat irgendwas zwischen 50 bis 200 Schritte pro 
Umdrehung.

Last oder keine ist für einen Schrittmotor egal, da diese mit einem 
eingeprägten Strom gefahren werden. Das heißt, der Treiber schiebt immer 
den gleichen Strom in die Motorspulen.
Hier aufpassen: es gibt Treiber, die haben keine Stromregelung, da wird 
das Motormoment mit zunehmender Drehzahl schnell kleiner.


Sich zu überlegen, in welchem Schrittbereich die Maschine nachher 
bewegen wird macht schon Sinn, da evtl die Struktur des Programms anders 
werden kann.

Axel

Autor: Hellseher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Allerdings weiß ich, dass die die maximaldrehzahl bei 400kHz erreicht
> wird. Unter Last sind 100kHz drin und unser Ziel.

Das wären bei angenommenen 100 Schritten pro Umdrehung eine Drehzahl von 
max. 4000 U/s, also 240000 U/s. Zahnarztbohrer kommen glaube ich so 
hoch, aber bestimmt kein Schrittmotor um irgendwas auf einer Schubstange 
zu bewegen!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab nochmal mit meinem Mechaniker gequatscht, der für die gesammte 
Mechanik zuständig ist und auch bereits den Motor + Treiber vorliegen 
hat.
Es handelt sich also um einen DC-Motor mit Decoder und kleiner 
Treiberplatine, die für jeden Eingangsimpuls einen Decoder-schritt 
weiter fährt.
Mit Getriebe etc. wird der Motortrieber dann mit 1000 Schritten pro mm 
angepulst und es soll gesammt eine Strecke von 10mm bis 400mm gefahren 
werden.
So siehts also aus.

Welche Maximalbeschleunigung möglich ist konnte er mir jetzt am Telefon 
nicht sagen, aber innerhalb der ersten 2 mm wird sie sicher erricht.

Maximalgeschwindigkeit ist dann bei 400kHz erreicht, wobei unter Last 
die 100kHz unser ereichbares Ziel sind.

Ich dachte eigentlich, es sei Möglich, erstmal ein flexibles 
Programmgerüst aufzustellen, in das dann nurnoch die Beschleunigung und 
Endgeschwindigkeit eingetragen wird (ggf. vorberechnet in tabellarischer 
Form).

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Mit Getriebe etc. wird der Motortrieber dann mit 1000 Schritten pro mm
> angepulst und es soll gesammt eine Strecke von 10mm bis 400mm gefahren werden.

> Maximalgeschwindigkeit ist dann bei 400kHz erreicht, wobei unter Last
> die 100kHz unser ereichbares Ziel sind.

Schätze mal Du meinst: bei 1000 Schritten pro mm möchtest Du 100mm/sec 
erreichen und der Mechaniker meint, dass 100mm/sec in 2 Sekunden 
erreichbar sind.

Richtig verstanden?

Kommt mir sehr schnell vor.

Axel

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Düsendieb schrieb:
> bei 1000 Schritten pro mm möchtest Du 100mm/sec
> erreichen ...
Ergibt dann 100kHz. Läuft also auf gleiche raus. Richtig.

> ... 100mm/sec in 2 Sekunden erreichbar sind.
Da es sich hierbei um einen ungenauen aber großzügig bemessenen Wert 
handelt, denke ich kann man getrost diese Umformulierung vornehmen.

> Richtig verstanden?
Sieht so aus.

> Kommt mir sehr schnell vor.
Ja schnell ist das schon. Das zeug geht ordenltich ab, brauch dabei aber 
auch relativ viel Strom. Das ist aber ein anderes Theman.


lg Peter

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kann mir absolut nicht vorstellen, dass es einen solchen 
Treiberbaustein gibt, der diese Ansteuerung mit 100kHz braucht.

Ich bin fest davon überzeugt, dass da irgendwo ein paar Zehnerpotenzen 
falsch sind.

Wenn der Weg von 400mm auf 400.000 Schritte aufgelöst werden soll sind 
das 1 µm Auflösung.

Axel

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wir groß ist die Getriebeübersetzung?
Wie groß ist die Motordrehzahl bei 100mm/sec am Schlitten?

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Es handelt sich also um einen DC-Motor mit Decoder und kleiner
>
> Treiberplatine, die für jeden Eingangsimpuls einen Decoder-schritt
>
> weiter fährt.

Dann handelt es sich nicht um eine Schrittmotorsteuerung sondern um eine 
PWM-Steuerung eines DC-Motors.

Das ist ein ganz anderes Konzept.

B.

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine geeignete und bessere Lösung findet man erst, wenn alle! 
Voraussetzungen korrekt angegeben wurden.

B.

Autor: Robert L. (lrlr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(ich nix ahnung) aber:

hier steht z.b. Schrittmotor Endstufe 1Mhz

scheint also "übliche" zu sein "Schrittmotor" und "hohe kHz" in eine 
Satz zu schreiben...

http://www.indel.ch/schrittmotor/schrittmotor.php

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da muss ich "Boh Ey" sagen, dass es so schnell geht wusste ich auch noch 
nicht.

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde fast sagen, dass dafür 16Mhz Taktfrequenz zu wenig sind. Da sind 
nur 80 Takte für 1 und 80 Takt 0 aus übrig.

Du könntest bis zum halben Weg bei jedem Durchlauf der Timerrouting den 
Geschwindigkeitssollwert um 1 erhöhen und ab dem halben Weg wieder um 1 
verringern. Das ergibt dann zwar keine lineare Rampe, aber ist nicht so 
aufwendig zu berechnen.



Axel

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es steht bisher offen, wieviele Schritte pro Umdrehung der Controller 
braucht.
Diese können nämlich Mikroschritte sein, beliebiger Umrechnung in 
Vollschritte / Umdrehungen.

Und es gibt Controller, die die Schritte "speichern" können, d.h. Du 
kannst mit bis zu x kHz / MHz die Anzahl der Schritte reinpulsen 
(sozusagen die SollPosition vorgeben), und der Controller macht dann 
selbst die Rampen.
AlphaStep ASD-Serie ist z.B. ein solcher.

Und unser Fall hier ist gar kein Schrittmotor, sondern ein DC-Servo mit 
einer Schritt-Ansteuerung.

Wie Bernadette schon schrieb: mit solch schwammigen Infos bekommst Du 
keine Hilfe!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Düsendieb schrieb:
> ich kann mir absolut nicht vorstellen, dass es einen solchen
> Treiberbaustein gibt, der diese Ansteuerung mit 100kHz braucht.
Treiberbaustein weiß ich nicht. Das ist eine fertige Treiberplatiene.
Nicht von mir aber tutos complettos fertig und getestet bis 400kHz.
> Wenn der Weg von 400mm auf 400.000 Schritte aufgelöst werden soll sind
> das 1 µm Auflösung.
Korrekt. Sowas gibts im bereich der CNC-Fräsungen. zwar fräsen die auch 
meißt nur auf hundertstel mm, aber für weichere Bewegungen sind 
tausendstel Auflösungen durchaus üblich.

Bernadette schrieb:
> Dann handelt es sich nicht um eine Schrittmotorsteuerung sondern um eine
> PWM-Steuerung eines DC-Motors.
Was die Motor-Treiber-Platine mit meinen Takten macht, ist mir doch 
egal?!
DC-, AC-, Schritt-, Servomotor. Mir doch völlig egal, solange ich 
gewisse vorgegebene Grenzen einhalte.

eProfi schrieb:
> Wie Bernadette schon schrieb: mit solch schwammigen Infos bekommst Du
> keine Hilfe!
Ja sorry, ich war selbst falsch informiert. Kommt leider auch mal vor.

Aber jetzt bitte erkläre mir mal einer für was die Mechanik dahinter 
interessant ist.
Wenn mir gegeben ist 100kHz Maximalfrequenz, variable Beschleunigung (um 
die 50kHz/s) sowie variable Schrittzahl (10.000-400.000), dann müsste 
man sich mit den Angaben doch ein grobes Konzept der Programmierung 
ausdenken können.
Mein Ansatz steht ja im ersten Post letzter Absatz.
Mich würde nur interessieren, ob ich da völlig auf dem Holzweg bin, oder 
obs bessere Vorschläge gibt?!

Ist jetz alles nicht irgendwie beleidigend gemeint, ich kanns nur nicht 
besser formulieren.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich mache zur Zeit etwas ähnliches, mit schrittmotoransteuerung per 
16-bit Timer.

CTC-Mode, Takt über COM1A ausgegeben(also Hardware), Frequenz kann man 
ja leicht über OCR1A einstellen.
In der ISR zähle ich dann die Anzahl der Schritte runter, die gemacht 
werden sollen. Bei 0 halte ich dann den Timer an. Das scheint bis jetzt 
auch soweit ganz gut zu funktionieren, ist aber noch nicht ganz fertig 
getestet.

Ob dein gewünschter Frequenzbereich damit ausreichend abgedeckt wird, 
kannst du dir ja mit der Formel im Datenblatt selber ausrechnen.

Zu dem Link oben mit 1MHz:
Das ist nur die Endstufe... Die Endstufe die ich verwende kann auch 
200KHz, aber ich hab noch kein Motor gehabt der auch nur im Ansatz in 
dem Bereich lief. Aber ist wahrscheinlich wie bei allem, ne Frage des 
Geldes ;)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max schrieb:
> Die Endstufe die ich verwende kann auch
> 200KHz, aber ich hab noch kein Motor gehabt der auch nur im Ansatz in
> dem Bereich lief. Aber ist wahrscheinlich wie bei allem, ne Frage des
> Geldes ;)

also bei uns sind 4 Achsen beriets mit diesen Motor-Treiber-Kombination 
im Betrieb... mit bis zu 100kHz. Allerdings über den PC gesteuert. Das 
ganze stellt eine 4-Achs CNC-Maschine dar.
Nun soll halt noch ein Nachschub realisiert werden, die allerdings von 
der PC-Software so nicht vorgesehen ist. Deshalb muss mit einem kleinen 
µC nachgeholfen werden.

Aber danke Max. Dein Beitrag hat mich auf die Idee gebracht.
Ich lass das ding im CTC-Modus eine "Hardware-PWM" generieren und 
berechne in konstanten Zeitabständen neue Geschwindigkeiten, die ich in 
OCR1A scheibe. Gebremst wird minimal verfrüht wobei die letzten paar 
Schritte dann mit minimaltempo als eine Art Puffer gegen zu ruckartiges 
abbremsen auf null (wegen zu hohen Geschwindigkeiten) ablaufen.
Müsste ich mir nurnoch den Bremspunkt ausrechen, aber der ist halt kurz 
vor der Hälfte der Schritte oder wird anhand der Beschleunigungsrampe 
(Schritte der gesammten Rampe) abgezählt.
Oder ist das eher dumm so zu lösen?

Autor: Zack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowie ich das Problem verstehe, möchtest Du Schrittimpulse erzeugen, die 
auf eine wie auch immer geartete vorhandene 'Ausführungseinheit' gehen. 
Ob die Bewegung durch Stepper oder DC-Motor ausgeführt wird, ist nicht 
von Bedeutung.

Soweit - so gut. Aber Impulsfolgen mit variabler Rampe bis 100kHz zu 
erzeugen, ist für einen AVR eine knifflige Aufgabe, die er unter 
Umständen nicht schaffen kann.
Die Impulserzeugung muß in Verbindung mit einem Interrupt passieren, der 
alle 10µs bedient werden muß. Sofern noch eine andere Interruptquelle 
dazukommt, wird das Timing vermutlich nicht einzuhalten sein.

Ein anderer Prozessor mit mehr Reserven dürfte die bessere Wahl sein, es 
sei denn, Du hast viel Zeit für die Programmierung und es wird eine 
kostengünstige hohe Stückzahl gewünscht. Beides trifft wohl nicht zu, 
wenn ich Dich richtig verstanden habe:

>"ich bin gerade daran einen Schrittmotor-Controller zu basteln."

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... warum ist ein 10µs Interrupt nötig?
folgendes Vorgehen: (mal mit einem Mega48/88/168 angedacht)
Timer/Counter1 habe jetzt 16-bit und laufe im CTC-Modus. Bei jedem 
Comparematch wird der Pin OC1A getoggelt.
OC0A ist mit T0 (der externen clock-source vom 8-bitigen Timer/Counter0 
verbunden, sensitiv auf Fallende flanken)
Erst ein Overflow von TCNT0 verursacht dann einen Interrupt (um mehr als 
256 Schritte zählen zu können) bzw. ein CompareMatch mit Timer/Counter0 
kann verwendet werden um exakt den letzten Schritt nicht zu verpassen 
und zu stoppen.
Weiters läuft ein Timer/Counter2 mit prescaler so, dass alle 0,5-1ms ein 
Interrupt ausgelöst wird, indem dann wiederum die Rampe berechnt und in 
OCR0A geschrieben wird. Oder um Interrupts nicht zu blockieren wird ein 
Flag gesetzt, dass dann in der main-routine die berechnungen auslöst.
Das behandeln von Display und Tasten läuft ebenfalls im Idle 
(main-routine).


Wär das nix? So müsste sich der Prozessor doch die meiste Zeit 
langweillen. auch wenn er gerade auf der Beschleunigungsrampe nahe bei 
100kHz unterwegs ist.

Autor: Zack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist, ob Du basteln willst und bereit bist, ggf. Kompromisse 
einzugehen, oder ob Du bauen willst, mit dem Ziel eine 100% 
funktionierende Lösung zu erreichen.

Sind die 100kHz eine zugesicherte Eigenschaft, oder kannst Du nach 
Belieben die Anforderungen auch auf 30kHz zurückschrauben? Sollen bei 
20000 Schritten alle ausgeführt worden sein, oder dürfen auch mal 50 
fehlen?

Dann nimm einen ATmega. Für jemanden, der mit Entwicklung solcher 
Schaltungen Geld verdienen will, halte ich den µC für zu 
riskant/zeitaufwendig zu programmieren.
Berichte uns, wie es Dir ergangen ist :-)

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein ganzen anfängliche Fragen nach der Mechanik zielten auch darauf 
hin, ob man die Randbedingungen nicht etwas entschärfen kann. 10Khz 
statt 100kHz und schon ist das Ganze mit einem AVR leicht handhabbar.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also es geht um eine Unikat-lösung. Einmal und vorerst nie wieder.
Sogesehen will ich also basteln, nicht entwickeln.

100kHz sind versprochen, auch wenn ich mich damit blind versprochen 
habe... Fahre ich mit 30kHz läuft der Prozess halt dreimal so lang... 
Das ist auf dauer Teuer, denn die Produktion läuft deutlich langsamer.
Und ganz wichtig: es müssen ALLE Schritte durchgeführt werden. wenn ein 
offset zwischen vor- und rückweg entsteht, gibts irgendwann teure 
kollisionen zwischen Schlitten und Fräskopf oder Anschlag.

Düsendieb schrieb:
> 10Khz statt 100kHz und schon ist das Ganze mit einem AVR leicht handhabbar.

Du glaubst also nicht, dass mein im letzten Post verfasster Plan 
funktioniert?

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit dem Timer 2 die Rampe zu machen ist bestimmt machbar, aber zuerst 
musst Du doch die Schritte zählen.

Du brauchst daher einen Zähler bis 400.000 zählt und der muss bei jedem 
Schritt hoch oder runtergezählt werden. Wenn der PWM Ausgang zappelt, 
ist es normalerweise egal wie oft das passiert ist.

da könnte ein 16Bit Zähler her und dann müssen die Überläuft gezählt 
werden.

Oder doch alles in den Timerinterrupt, aber dann wird es eng mit der 
Zeit.

Axel

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du glaubst also nicht, dass mein im letzten Post verfasster Plan
> funktioniert?

Es faellt mir auch schwer zu glauben das es das was du zu haben glaubst 
auch gibt.

Bei DC-Motoren ist es ja normalerweise so das die eine Spannung erwarten 
und am Encoder Impulse zurueckliefern. Und dann auch gerne mit mehreren 
100khz.

An eine Platine die einen Impuls erwartet und dann einen 'virtuellen' 
Schritt ausfuehrt kann man schwer glauben. Grund dafuer ist das sich 
dann auf dieser Platine ein relativ komplexer Regler befinden muesste 
der jederzeit weiss was der Motor gerade macht und der sich noch dazu 
schwertun wird wenn du deine Impulsgeschwindigkeit abrupt aenderst. Wenn 
man soetwas baut dann ist es eigentlich viel vernuenftiger wenn man dem 
Controller gleich ueber eine RS232, SPI, I2C, usw Schnittstelle sagt auf 
welche Sollposition er drehen soll weil er das intern bereits koennen 
muss und er damit viel einfacher seine Regelgrenzen einhalten kann.

Daher wuerde ich nochmal genau nachfragen ob man dir keinen Unsinn 
erzaehlt hat.

Wenn es aber wirklich so ist wie du dir das vorstellst dann brauchst du 
ja nur zwei hintereinandergeschaltete Timer. In dem einen steht ein Wert 
drin der Runtergezaehlt wird und jedesmal am Ausgang ein Signal ausgibt 
und bei Null stehenbleibt und so die Position vorgibt, und der andere 
bestimmt die Frequenz mit der gezaehlt wird, also deine Geschwindigkeit. 
Das sollte deinen Controller in keinster Weise belasten. Allerdings 
waere dann zwei 16bit Timer vermutlich interessant weil du zum einen 
mehr als 256 Schritte fahren willst und zum anderen im unteren 
Drehzahlbereich eine feine Aufloesung brauchst.

Olaf

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Düsendieb schrieb:
> Du brauchst daher einen Zähler bis 400.000 zählt und der muss bei jedem
> Schritt hoch oder runtergezählt werden. Wenn der PWM Ausgang zappelt,
> ist es normalerweise egal wie oft das passiert ist.

Den Absatz verstehe ich nicht ganz. Mein 16-bit Timer generiert mir 
einen Takt recht beliebeiger Frequenz. @ 16MHz ohne Prescaler kann ich 
244Hz-100kHz gut abdecken, wenns nach unten nicht reicht könnte ich 
sogar noch am Presacaler spielen.
Schritte Zählen übernimmt auch die Hardware in form eines 8-Bit Zählers, 
dessen überläufe ich in Software mitzähle. somit kann ich gut und leicht 
400.000 Schritte mitzählen. Ich benötige so oder so einen 16-bit 
softwarezähler um die 8-bit-überläufe zu zählen, damit kann ich dann 
aber sogar bis zu 16.777.216 (2^8*2^16) Schritte abzählen.
Und um auf den Schritt genau zu stoppen kann ich meinen 
8-bit-Hardwarezähler mit einem Comparematch ausstatten, der im richtigen 
Moment den Vorgang Stoppt.
Oder etwa nicht?

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anscheinend ist der Fahrweg immer gleich.  Dann könntest Du den 
Schlitten auch mit 4 Lichtschranken-Endschalter oder Effektoren fahren. 
Beim Vorendschalter einfach die Rampe herrunter fahren und beim nächsten 
Endschalter stoppen.

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke schon, dass Dein Ansatz klappen könnte.
Genau wirst Du es erst wissen, wenn Du es probiert hast.


> Wenn man soetwas baut dann ist es eigentlich viel vernuenftiger
> wenn man dem Controller gleich ueber eine RS232, SPI, I2C, usw
> Schnittstelle sagt auf welche Sollposition er drehen soll
> weil er das intern bereits koennen muss und er damit viel
> einfacher seine Regelgrenzen einhalten kann.
Das habe ich ja oben schonmal vermutet, dass es ein intelligenter Regler 
ist, dem halt die Sollposition in µm reingepulst werden muss.

Evtl. klappt es dann sogar, die Impulszahl ganz ohne Rampe reinzusenden.
Die Rampe erzeugt der Regler dann selbst.

Um welches Teil (Hersteller, Typ, Link zum Datenblatt) geht es denn (das 
hätte bereits im ersten Post stehen sollen)?

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.