Hallo, ich bin Steuerungsmäßig zemlich Ahnungsbefreit und habe einfache Steuerungsaufgaben zu erledigen ohne daß ich mir darüber im klaren bin WIE. Also ich benötige ein sehr hoch übersetztes, preiswertes Antriebssystem mittels Schrittmotor in Mikroschrittbetrieb oder evtl. über einen DC-Motor über PWM mittels EMK Auswertung. Diese Getriebemotoren müssen ca. 1-5 U/min Abtriebsdrehzahl haben und bei leicht wechselnder/schwellender Last die Drehzahl möglichst gleichmäßig halten. Das Drehmoment liegt bei ca. 0,5Nm bis 0,8Nm am Getriebeausgang. Nun gibt es z. B. bei Nanotec eine kleine 1/8-Schritt Endstufe für Schrittmotoren und es gibt auch Baupläne für PWM-Ansteuerungen für DC-Motoren. Bei einer PWM-Ansteuerung ist schon meist in den Bauplänen der Anschluß eines Potis o. ä. für die Drehzahlregelung vorgesehen. Bei der Nanotec SMC11 benötigt man noch die Taktimpulse. EINFACHE Selbstbau Schrittmotorendstufen mit Mikroschritt kenne ich leider nicht. Somit benötigt die SMC11 den größten Aufwand zur externen Ansteuerung. Das zur geplanten Vorgeschichte - hoffe es war nicht zu ausführlich!? Diese Steuerung muß noch folgendes machen: - nach Knopfdruck den Antrieb starten - nach Knopfdruck den Antrieb stoppen - beim Erreichen einer Endposition den Antrieb stoppen - beim Erreichen einer Endposition eine LED ansteuern - nach Knopfdruck möglichst schnell in Ausgangsposition "zurückspulen" - nach Knopfdruck wieder starten Also dann muß ich wohl in den sauren Apfel beißen und mich in Mikroprozessoren einarbeiten. Soweit ich gelesen hatte, ist derzeit wohl die AVR-Reihe sehr angesagt. Basic und Pascal kann ich ein wenig, da bietet sich Bascom an. Bloß...welchen AVR, die classic sollten ja nicht mehr benutzt werden, da kommt dann wohl ein Mega8 in Frage oder gehen die Tiny auch? Reichen wohl die 4KB, die Bascom in der Demo bewältigt? Besten Dank! Wolfram
> Also dann muß ich wohl in den sauren Apfel beißen und mich in > Mikroprozessoren einarbeiten. Nix da sauer, das ist doch geil ;-) Und mit dem Elektronik-Vorwissen, dass ich aus deinem Posting herauslese, geht das auch mit vertretbarem Aufwand, besonders wenn du vielleicht noch programmieren kannst. Ein Mega8 ist zum Einstieg eine gute Lösung, da man damit so ziemlich alles ausprobieren kann. Und deine Aufgabenstellung kriegst du damit problemlos hin, ohne dass der Chip hoffnungslos überdimensioniert ist.
Hallo, vielen Dank für deine Stellungnahme! Also der Mega8 wird´s dann. Nun hab ich hierzu auch schon in den hervorragenden Dokumentationen über die AVRs im Mikrocontroller.net gestöbert und einiges, allgemeines über die Testboads gelesen. Da gibt es ja so einige, von 20-200 Euronen. Nun will ich nicht gleich die Hunderter fliegen lassen, sondern mal reinschnuppern ob das Thema Mikrocontroller etwas für mich ist. Klar ist nun erst: Bascom und der Mega8.....mehr noch nicht. Womit also starten? Welches preisgünstige "Versuchsboard"? Welcher Programmer? Nochmals Danke für eure Hilfe! Wolfram
Hallo! Schrittmotor Bausätze gibt es bei NC-Step, fuer deine zwecke sollte die Tiny-Step reichen, bleibt aber immer noch die Ansteuuerung fuer Dich übrig. mfg, Bjoern
Für nen schnellen und preiswerten Einstieg kann ich immer wieder nur das AVR Board von Po**in empfehlen. Da passen direkt zwar nur 40-Beiner drauf (also z.B. Mega16) aber da dort ein ISP Programmer gleich eingebaut ist kann man sich beliebige Adapter schnell selbst löten. Da bekommst du für unter 20 Euronen ein durchaus brauchbares Entwicklungssystemmit Programmer. Gucks dir einfach mal an. bye Frank
Allerdings solltest du in C oder Assembler programmieren. Zeitkritische Sache in Bascom - da wirst du Probleme bekommen. Wenn nichts zeitkritisches dabei ist, geht es auch mit Bascom.
> Allerdings solltest du in C oder Assembler programmieren. > Zeitkritische Sache in Bascom - da wirst du Probleme bekommen. Wenn > nichts zeitkritisches dabei ist, geht es auch mit Bascom. Einverstanden. Nicht nur wegen dem zeitkritischen, sondern auch, weil man die Funktionsweise des Controllers so wesentlich besser lernt. Wegen dem Board: Schau das Tutorial auf dieser Seite an. Dort erfährst du eigentlich alles notwendige für den Einstieg. Wie du sehen wirst, braucht es für den Anfang eigentlich gar kein Board. Ein Steckbrett sollte reichen. - Wir sollten echt mal eine Anfänger-FAQ machen. Irgendwie schreibe ich die obigen beiden Absätze sinngemäss etwa 4 mal pro Woche ins Forum ;-)
Sollte man bevor man hier die Programmiersprache auswählt sich nicht erstmal etwas genauer mit der Mechanik/Antriebsart beschäftigen? dein hochübersetztes Antriebssystem solltest du etwas spezifizieren bezüglich geforderte Genauigkeit, Geschwindigkeit, Anzahl der Umdrehungen, etc. Schrittmotor und DC-Motor sind sehr verschieden und je nach Anforderungen sollte ausgewählt werden. Beim Schrittmotor ist es möglich das Getriebe wegzulassen und direkt anzutreiben. Schrittgeschwindigkeiten um die 100 Hz sollten vermieden werden , da es zu Vibrationen kommen kann. Die geforderte Positioniergenauigkeit bestimmt die Anzahl der Schritte pro Umdrehung. Die Geschwindigkeit ist vorbestimmt da du sie unmittelbar bestimmst. Es ist möglich diese Geschwindigkeit unmittelbar beim Anlaufen zu erreichen oder mit Geschwindigkeitsrampe. DC-Motor braucht ein Getriebe wenn man 1-5 Umdrehungen/min macht. Eine bestimmte Geschwindigkeit wirst du nur durch Regelung erreichen.
@Wolfram (ein anderer): Man kann einen Schriitmotor als Getriebe ansehen, da man die "Drehzahl" ziemlich einfach durch die Ansteuerelektronik ändern kann. Im "Handbuch elektrische Kleinantriebe" von Hans-Dieter Stölting, Eberhard Kallenbach, Fachbuchverlag Leipzig (49,90 Euro). Ist soetwas gut beschrieben. Übrigens hängt die Resonanz-Frequenz von der Belastung, also dem zu bewegenden Massenträgheitsmoment, ab und liegt nicht bei jedem Motor bei 100Hz. Rampen fährt man in der Regel bei einer Positionssteuerung(-regelung, um möglichst schnell von einem Punkt zum nächsten zu kommen. Das hat aber nicht viel mit einem elektronischen Getriebe zutun. Dort geht es darum, variable Drehzahlen zu erzeugen, ohne irgendwelche Zahnräder zu tauschen. Wenn man die Eingangsdrehzahl mit einem Tacho-Generator, Inkrementalgeber oder ähnlichem misst, dann kann man per elektronischem Getriebe eine andere Drehzahl am Ausgang realisieren, die auch nichtlinear verhalten kann (z.B. eine steigende Drehzahl am Eingang führt zu einer sinkenden am Ausgang. Wie macht man sowas mit Zahnrädern?). @Wolfram (Threadopener): Bascom und ein Tiny widersprechen sich meiner Meinung nach (ein Tiny hat leider nicht den Platz, den Bascom erfordert; meine völlig subjektive Meinung). Für den Einstieg solltest du einen grösseren Controller wählen, der auch etwas "anfängerfreundlicher" ist. Zum Beispiel den Mega16. Damit kann man dann auch noch "rumspielen", wenn das eigentliche Projekt schon fertig ist (der hat auch AD-Wandler und son Zeug)... Zum Microstepping hat microchip eine schöne ApplicationNote herausgebracht, Atmel hat wohl auch inzwischen etwas zu dem Thema. Trinamic hat übrigens auch interessante Schrittmotor-Treiber...
>Übrigens hängt die Resonanz-Frequenz von der Belastung, also dem zu >bewegenden Massenträgheitsmoment, ab und liegt nicht bei jedem Motor >bei 100Hz. ausserdem von der Verwindungssteifigkeit der Übertragungswellen, Resonanzfrequenzen im mechanischen System, also so ziemlich alles wo sich eine stehende Welle im System aufbauen kann dürfte eine Resonanzfrequenz sein. Die 100Hz waren nur ein sehr grober Hinweis, man muss ja nicht unbedingt gleich beim 1. Mal problematische Frequenzen verwenden. Zu einem ordentlichen Schrittmotor bekommt man auch ein Diagramm zu den den einzelnen Schrittfrequenzen und Vibrationen. >Rampen fährt man in der Regel bei einer Positionssteuerung(-regelung, >um möglichst schnell von einem Punkt zum nächsten zu kommen. da er etwas von Endpunkten schreibt, ist die grosse Frage ob es auf eine Positionierungssteuerung herauslaeuft. Rampen wird man immer verwenden wenn man über die Start/Stopfrequenz eines Schrittmotors hinaus will. Nur als Anhaltspunkt: Ich habe die Steuerung eines Schrittmotors für eine Achse eines XY-Tisches gemacht, Kommunikation über I2C das passte problemlos in einen Mega8, Programmiersprache C. Vom Timing wirst du dich mit dem Schrittmotor sehr wahrscheinlich im Milisekundenbereich bewegen. Ich habe zwar noch nicht mit BASCOM gearbeitet , aber es würde mich sehr wundern wenn man mit dieser Programmiersprache dafür zu langsam ist. Wenn du schon mit Basic und Pascal gearbeitet hast, beide Programmiersprachen gibt es fuer den AVR.
ATMEGA16 ist zum basteln eigentlich besser da man hier ein paar mehr I/Os hat die einem am Anfang sehr helfen, gerade zum debuggen nehme ich immer einen Port der mir verschiedene Ergebnisse ausgibt.
Hallo, besten Dank für die vielen Tips! Also ich kann den Schrittmotor selbst nur hoch übersetzt in Mikroschritt einsetzen, da ich einen extrem gleichmäßigen Lauf benötige. Wenn ich denn auf Schrittmotor gehe, denn eine PWM Ansteuerung eines DC-Motors mit regelung über EMK hab ich gerade im Versuchsaufbau...vieleicht funktioniert das...schaun wir mal. Der Chip von Trinamic ist wirklich interessant. Da nerve ich euch aber erst, falls ich tatsächlich auf Stepper gehen muß/will. Ich wollte aber möglichst von vornherein mit dem passenden Mikrocontroller loslegen, da ich das Programmierte am liebsten sofort einsetzen möchte und nicht erst neue Aufbauten auf andere Typen (Mega8 / Mega16) zurechtfriemeln will. Also hab ich in meiner Ahnungslosigkeit ein wenig gelesen und denke daß der Mega8 passend wäre. Dann wäre ja das MyAVR USB-Board was oder: http://www.myavr.de/shop/artikel.php?artID=41 Das kann viele Typen innerhalb diese Reihe (ATmega8/48/88/168). Und um einen schnellen Mega8 einsetzen zu können, der die Bascom-Einschränkung von 4KB "ausnutzt" und durch den gegenüber Assembler langsameren Code nicht so schnell ausgebremst wird wäre doch sicher der sehr preisgünstige Mega48 genau das richtige oder? Hat der Mega48 gegenüber dem Mega8 "Nachteile" oder Einschränkungen? Gibt es irgendwo eine Vergleichsübersicht zu diesen Typen? Danke nochmal für eure Hilfe! Wolfram (der erste ;o) )
>Hat der Mega48 gegenüber dem Mega8 "Nachteile" oder Einschränkungen? Ja, der Flash ist nur halb so gross >Gibt es irgendwo eine Vergleichsübersicht zu diesen Typen? hier: http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC
der 48er ist sozusagen der kleine in der neuen x8 serie... ich sehe in der neuen x8 serie ne menge vorteile zum beispiel dass man jeden pin für externe interrupts nutzen kann (PinChangeINT)und vor allem dass man das teil mit bis zu 20MHz fahren kann viel mehr timer -möglichekeiten und und und... aber auch ein paar nachteile... bei den internen taktquellen ist nur noch die 8MHz übrig geblieben der m8 hatte intern noch 1,2,4 und 8MHz und dann ist die assemblerprogrammierung im erstenmoment gewöhnungsbedürftig weil ein haufen i/o register jetzt nicht mehr mit in/out/sbi/sbc/usw.befehlen angesprochen werden können da sie oberhalb der 3F liegen ansonsten sind die x8 typen alle identisch
Der eigentliche Nachteil der DIL28-AVRs (Mega8-kompatibles Pinout) ist die Tatsache, dass man nur noch "6-Bit-Ports" hat, wenn man mit UART und dem damit notwendigem Quarz arbeitet. Das mag für viele Dinge ausreichend sein, aber ein (oder mehrere) echte(r) 8-Bit-Port(s) ist auch nicht zu verachten. ...
@ Alex "bei den internen taktquellen ist nur noch die 8MHz übrig geblieben der m8 hatte intern noch 1,2,4 und 8MHz" Der Mega48/88/168 hat zwar nur noch einen internen 8MHz Takt, dieser kann aber mit neun verschiedenen Prescalerwerten (im Register CLKPR) heruntergeteilt werden, so daß du im Endeffekt viel mehr verschiedene interne Takte hast, wie beim Mega8. Gruß Schmidle
Hallo, besten Dank an Alle, das wird einem Einsteiger ja sehr leicht gemacht hier :o) Also wird es der Mega48. Liege ich mit diesem Board MyAVR USB-Board denn richtig: http://www.myavr.de/shop/artikel.php?artID=41 Besten Dank! Wolfram
Wolfram, ich habe das board ohne USB für den Printer Port und bin damit eigentlich ganz zufrieden. Für den Einstieg ist es nicht übel aber nach kurzer Zeit habe ich mir dann doch noch einen zusätzlichen Programmer gebaut
Hallo Patrick, danke für deine Antwort. Dann wird das Board mit USB ja genau das richtige sein, da der Programmer dort ja schon steckbar drauf ist - richtig? Viele Grüße Wolfram
Wolfram, ich habe es mir gerade nochmal angeschaut. Der aufsteckebare USB Programmer ist 'ne feine Sache. Doch, mit dem Brett kannst du nichts falsch machen. Viel Spass damit!
Hallo Patrick, danke für die Info, so langsam finde ich meinen Weg ;o) Viele Grüße Wolfram
Eine sehr gute Schrittmotorsteuerung findest du hier: http://www.roboternetz.de/phpBB2/viewtopic.php?t=2741 Die kann man sowohl über RS232 als auch über I2C ansteuern. Ich habe damit sehr gute Erfahrungen gemacht.
Hallo Heinz, besten Dank für den Tip, ich werde mir das mal genauer anschauen. Viele Grüße Wolfram
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.