PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : schrittmotor mit atmega16



tohrr
10.10.2008, 13:40
Hallo,

ich brauche hilfe beim programmieren von zwei schrittmotoren mit atmega16. ich habe einen easydriver v3 und weiss auch wie dieser angeschlossen werden muss. und jetzt zum eigentlichen problem: die zwei schrittmotoren müssen nacheinander angesteuert werden. Der motor soll hochlaufen und immer schneller werden. ist die gewünschte drehzahl erreicht soll der motor wieder langsamer werden bis zum stillstand. dann wird die drehrichtung geändert. ist der motor fertig soll dies das programm auch anzeigen. dann wird der zweite motor angesteuert mit der gleichen aufgabe wie motor 1. wenn es möglich ist auch beide motoren gleichzeitig.

danke im voraus.

Mixxer
10.10.2008, 16:18
Hallo,

wäre vllt interessant wenn du mal Programmiersprache etc. angibst!

MFG Mixer

tohrr
10.10.2008, 16:20
ehm ja sry

wollte das ganze im bascom programmieren

Mixxer
10.10.2008, 16:46
Da kann ich dir leider weniger helfen, programmiere eigentlich nur in Assembler.

Das Hoch- und Runterlaufen kannst du evtl. mit einem Timer machen, wenn du ihn vorlädst! Denk der 16-Bit-Timer 1 vom Mega16 sollte da helfen!
MFG Mixer

tohrr
10.10.2008, 18:16
danke ich werde das mal versuchen obs klappt aber wenn du noch mehr tipps hast immer her damit

thewulf00
11.10.2008, 14:57
Den Easydriver kenne ich nicht.

Das prinzipielle Vorgehen wäre dieses:
Du nimmst 2 Timer:

Der erste ist der 16-Bit-Timer, wie von Mixxer vorgeschlagen, der den Motor direkt ansteuert, also seine Drehzahl regelt.

Der zweite ist ein anderer, beliebiger Timer, der die Geschwindigkeit mit der Zeit verändert, indem er den vorzuladenden Timerwert für den ersten verändert.

Wenn Dein Easydriver den Schrittmotor aber schon korrekt bedient, so dass Du nur noch einen Wert vorgeben musst, dann reicht ein einzelner Timer.

tohrr
17.10.2008, 12:32
ich habe keine ahnung wie man diesen timer programmiert und wie das mit dem timer gehen soll

Mixxer
17.10.2008, 12:37
solltest du Englisch können dann schau mal in s Datenblatt da stehen ein paar Seiten pro Timer drin, wenn nicht dann schau mal andere Projekte an wo ein Timer verwendet wird!
Oder in n Bascom-Tutorial, wenn s sowas gibt!
MFG Mixer

tohrr
30.10.2008, 19:50
kann mir keiner ein beispielprogramm schicken. habe schon vieles versucht und weiß nicht mehr weiter -.-

mirco99
31.10.2008, 08:47
Hi tohr,
schau dir mal unter der Bascom Hilfe das Timer Beispiel an.

du musst den Timer konfigurieren

Config Timer1 = Timer , Prescale = 1024
enable interrupts
enable timer1
Prescale gibt den Teiler an. Taktfrequenz / 1024
Schau dir im Controler Datenblatt die Timer an es gibt 8 und 16 Bit.
Ein Timer Zählt immer hoch bis 265 (Timer 0 8 bit) oder 65536 (Timer 1 16bit)


Jetzt musst du noch eine Sprungmarke setzten (isr)
on timer1 timer_isr

timer_isr:

hier kannst du eine Anweisung bei Überlauf eintragen.
Es dürfen hier keine großen Operationen erfolgen.
Du kannst den Timer hier auch vorladen. So das er nicht bei 0 anfängt zu zählen
timer1 = 5000
So bekommst du auch deine verschiedenen Zeiten hin.


Ich weiss nicht wie du deine Schrittmotoren ansteuerst.
Ich würde es mit Takt Richtung machen. Da gibt es ein Ic für und nen Verstärker.

Ich hoffe ich konnte helfen.

python_rocks
31.10.2008, 09:57
ich habe keine ahnung wie man diesen timer programmiert und wie das mit dem timer gehen soll
Hallo tohrr!

Vielleicht bringen dich diese Links etwas weiter:
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/timer_counter/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/timer0_als_timer/

mfg
Gerold
:-)

tohrr
31.10.2008, 12:41
danke für diese zahlreichen tipps und einen takt programmieren steht sicher auch im bascom-help

orion42
16.11.2008, 20:12
Hallo,
ich habe ein ähnliches Problem mit Bascom und Schrittmotor.
Den Takt habe ich schon, möchte aber das der Motor nur nach Betätigung einer Taste läuft.
Hat jemand eine Idee wie man das richtig angeht?

Gruß
Siegi

tohrr
20.11.2008, 13:28
kann mir keiner ein beispiel programm schicken?