Forum: Mikrocontroller und Digitale Elektronik Welcher AVR?


von Wolfram (Gast)


Lesenswert?

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

von mr.chip (Gast)


Lesenswert?

> 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.

von Wolfram (Gast)


Lesenswert?

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

von Wolfram (Gast)


Lesenswert?

...oh... ich glaub ich stotter....

von Bjoern B. (tishima)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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

von Winfried (Gast)


Lesenswert?

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.

von mr.chip (Gast)


Lesenswert?

> 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 ;-)

von Wolfram (ein anderer) (Gast)


Lesenswert?

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.

von inoffizieller WM-Rahul (Gast)


Lesenswert?

@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...

von Wolfram (ein anderer) (Gast)


Lesenswert?

>Ü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.

von Thomas O. (Gast)


Lesenswert?

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.

von Wolfram (Gast)


Lesenswert?

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) )

von Patrick (Gast)


Lesenswert?

>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

von Alex (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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.

...

von Markus S. (schmidle)


Lesenswert?

@ 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

von Wolfram (Gast)


Lesenswert?

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

von Patrick (Gast)


Lesenswert?

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

von Wolfram (Gast)


Lesenswert?

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

von Patrick (Gast)


Lesenswert?

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!

von Wolfram (Gast)


Lesenswert?

Hallo Patrick,

danke für die Info, so langsam finde ich meinen Weg ;o)

Viele Grüße

Wolfram

von Heinz (Gast)


Lesenswert?

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.

von Wolfram (Gast)


Lesenswert?

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