PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welchen Motor und wie steuern ?



ProgDom
30.08.2004, 07:49
Ich bin noch sehr neu hier und weiß (mit ausprobieren) mitlerweile, wie ich mit meinem Atmega8 Leds ansteuer und Schalter oder Taster auswerte usw.
Ich würde gerne aber auch mal einen Motor für meinen Bot ansteuern. Am Anfang soll der nur zu versuchszwecken dienen. Er sollte aber später in meinen Bot einbaubar sein. Er soll als Antriebsmotor für die Räder benutzt werden. (Ich brauche also zwei) !
Sie sollten nicht zu groß sein, da der Bot auch nicht sehr groß wird (so 6cm lang geht noch).
Es gibt da soviele Arten und ich weiß nicht ob ich einen Servo, Schrittmotor oder Getriebemotor nehmen soll. Möglichst stail sollte er sein und günstig. (Mir sprechen immer diese 5€ Plastikconradservos nicht so zu).
Naja zum Schluss wäre noch ein Link oder eine Erklärung sinnvoll, wie ich die Dinger den Anspreche und was ich sonst noch zur Ansteuerung brauche. Ich habe noch nichts dazu gefunden. Ich programmiere das in Assembler zur Zeit noch, möchte aber bald auch in C (die Sprache kann ich schon) programmieren.

Danke für eure Antworten, MFG ProgDom

Javik
30.08.2004, 10:14
Wenn du was gescheites haben willst, dann kauf dir einen RB 35 Getriebe Motor. Den gibts bei COnrad ( such einfach nach RB 35 )
Zur Ansteuerung brauchst du für die 2 Motoren noch einen L293D-Brückentreiber und 4 I/O Ports. Wenn du die geschwindigkeit auch ncoh regeln willst empfehlen sich noch 2 PWM ports.

mfg Javik

ProgDom
30.08.2004, 10:21
Die I/0 Ports steuer ich dann ganz normal, wie gewohnt beim Leds ein/aus machen an ? Und wie programmiere ich in Assembler einen Port als PWM Port und steuer den dann mit Geschwindigkeiten an ?

Javik
30.08.2004, 10:39
Ja die I/O Ports machst du ganz normal.
immer 2 IO's stuern die drehrichtung eines Motors. Also zB:
P1 = an
P2 = aus
=> drehung nach links
P1= aus
P2= an
=> drehung nach rechts.

Tut mir leid ich progge nciht in Assembler. Die geschwindigkeit steuerst du mit dem PWM-Signal, welches an den Enable Port des L293 angelegt wird.

gruß Javik

ProgDom
30.08.2004, 10:40
Wenn du C proggst kannst du mir das auch nennen. C kann ich schon proggen, aber noch keine Microcontroller, werde ich aber bald machen.

ProgDom
30.08.2004, 10:47
un dwas mache ich mit dem LC293D ? Muss ich da die Motoren anschließen ? Gibt es einen Schaltplan ? Brauche ich den immer ?

Javik
30.08.2004, 11:25
Ich progge mienen uC mit Bascom in Basic...
Ich verwende den L293D immer. er ist notwendig, weil du die Motoren nicht unmittelbar an deinen Controler anschliesen kannst. Die Motoren ziehen viel zu viel strom und würden den uC zerstören.
Hier hab ich ein Bild gemacht, von der Anschlussbelegung des L293D:

ProgDom
30.08.2004, 11:43
Sehr freundlich und glücklicherweise verstehe ich das Ganze auch noch !!! Kann ich denn, wenn ich keine Geschwindigkeitssteuerung verwenden möchte die PWM Ports einfach auslassen ? Oder wie schließe ich die Motoren dann an ?

Javik
30.08.2004, 12:10
Ja klar geht das ! Dann Schliest du anstatt der PWM-Ports einfach 2 I/O Ports an. Wenn der I/O Port High is dann läuft der Motor und wenn er LOW ist, dann läuft der Motor nicht.

Zu dem Bild:
Die linke eite dreht sich um Motor 1 und die Rechte um Motor 2 dh.
Das Linke PWM-Signal steurt die geschwindigkeit des linken Motors und das rechte die des rechten. Genauso mit den I/O ports.
(nur damit man nciht durcheinanderkommt)

ProgDom
30.08.2004, 12:14
aber dann habe ich doch pro Seite 3 I/O Ports ! Ich dachte ich brauche nur zwei oder lasse ich dann den PWM einfach frei ?

Javik
30.08.2004, 12:57
Ja allerdings dann hast du pro seite 3 I/O Ports...
Du lässt PWM nicht frei sondern schliest einfach anstadt dem PWM ein I/Oport dran, mit dem du die motoren an und aus stellen kannst.

ProgDom
30.08.2004, 13:16
aha, also drei Ports (für ein/aus; rechts; links) !!! right ?

30.08.2004, 14:30
Ja drei Ports für einen Motor !

muraad
30.08.2004, 16:09
Ich weis ja nicht. Getriebemotoren ohne PWM. Wenn du enable einfach auf high setzt glaub ich nicht das beide Motoren gleich schnell drehen/fahren. Also Stichwort PI-Regler und dazu brauchst du PWM.
Aber korrigiert mich fals ich jetzt was falsches sag?
Gruß Muraad

ProgDom
30.08.2004, 19:34
Das wäre also jetzt schon recht wichitg für mich. Ansonsten erklär doch mal bitte, wie ich das mit PWM mache ! und PI und so. Das weiß ich nocht nicht so.

30.08.2004, 20:11
Es ist so, dass wenn du nur einfach die motoren ein und ausschalten kannst und die motoren nicht genau gleich schnell laufen (was immer vorkommt wegen vertigungsungenauigkeiten) du diese ungenauigkeit nicht mit der geschwindigkeitsregelung ausgleichen kannst....
Ich hab selber auch ka was ein PI-Regler ist... Sorry

mfg Javik

muraad
30.08.2004, 22:16
Erstmal, Getriebemotoren, auch wenn beide die gleichen sind, werden nie bei gleicher Spannung gleich Schnell drehen.
Mit Pulsweitenmodulation steuert man die Umdrehungsgeschwindigkeit des Motors indem die Spannung verändert. Also zwischen 0V und Motorhöchsspannung. Gibt dazu aber ünzälige Threads im Forum. Suchen. google.
Eine PI-Regler Software sorgt dafür das beide Motoren gleich schnell laufen. Z.B. ein Roboter fähr mit eingestellter Geschwindigkeit geradeaus. Nur mit dem einen Rad muss er jetzt eine Teppichkante hoch. Der PI-Regler sorgt dafür das die Spannung automatisch auf dem einen Motor/Rad erhöht wird damit er immernoch geradeaus fähr, das hinderniss überwindet und nicht abdriftet. Ein anderes Beispiel. Roboter fähr mit eingestellter Geschwindigkeit geradeaus. Nun kommt eine Steigung also er fähr bergauf. Der PI-Regler sorgt dafür das die Spannung auf beiden Motoren erhöht wird um die eingestellte Geschwindigkeit zu halten.
Hoffe konnte es grob erklären. Wird im Buch "Mobile Roboter Von der Idee zur Implementierung" ganz gut erklärt. Auch was man dazu braucht.
Auf www.mc-project.de gibt es unter Programme auch eine PI-Regler Software in C für ATmega, aber ohne viel erklärung glaub ich.
Gruß Muraad

ProgDom
31.08.2004, 09:53
Ich habe eine Idee: Ich möchte einfach nur meinen Robo zum fahren bringen und ihr schreibt mir mal bitte die einfachste Variante ohne viel drum und dran auf ! Später kann ich es ja auch noch kompliziert machen.
Wäre sehr freundlich. Das wird mir langsam nämlich zu viel. Den Anfang konnte ich ja noch verstehen, aber jetzt...

muraad
31.08.2004, 11:00
Also Softwareseitig finde ich Schrittmotoren leichter anzusteutern. Da man bei ihnen die einzelnen Schritte vorgibt die er drehen soll. Dazu brauchst du aber auch einen Motortreiber.
Schau dir mal einfach die Artikel auf dieser Seite an. Gibt auch welche über Motoren. Über Schrittmotoren gibts im Forum auch etliche Threads. Und im Internet erst. Einfach mal suchen. google z.B. "Schrittmotor ansteuern". Eine ganz so einfache Möglichkeit wie du suchst gibt es glaub ich nicht. Aber das mit Getriebemotoren und Schrittmotoren ist garnicht so schwer.
Einfach lesen,suchen,lesen,suchen,fragen,lesen,suchen...
Gruß Muraad

ProgDom
31.08.2004, 11:18
sind denn Getriebemotoren und Schrittmotoren das gleiche ? Nicht das ich dann alles über Schrittmotoren weiß aber ja eigentlich getriebemotoren möchte.

31.08.2004, 11:35
Bitte schau mal hier:
https://www.roboternetz.de/schrittmotoren.html
und
https://www.roboternetz.de/motoren.html

Dort wird das ganze recht verständlich erklärt