PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schachroboter - Motoren ansteuern mit Relaiskarte?



jamesbond007
03.05.2004, 21:28
Hallo ihr Roboterfans!

Vor einigen Wochen bin ich auf diese Seite gestoßen und sofort hat mich das Roboterfieber gepackt. Ich habe beschlossen einen Schachroboter zu bauen und mit einem Lego Technic
Baukasten war das auch recht einfach, das Ergebnis könnt ihr auf dem Bild sehen.
Als Motoren habe ich 4 Standart Legomotoren genommen (9V). Für x-, y-Richtung, Greifer hoch und runter, und Greifer auf und zu.
Doch jetzt kommt das Problem, denn ich will das Ganze mit meinem PC ansteuern, doch ich weiß noch nicht genau wie. Ich dachte mir ich könnte das mit einer 8 fach Relaiskarte von Conrad oder Reichelt machen, doch die kostet immerhin 30 Euro. Diese Karte könnte ich dann mit einem C-Programm unter Linux ansteuern, das ist aber eigentlich nicht das Problem.
Ich weiß nicht genau wie ich den Motor in zwei Richtungen laufen lassen kann, denn die Relais auf der Karte haben nur zwei Anschlüsse (an-aus), wenn sie 3 hätten (Relais aus - Pin 1 und 2 verbunden, Relais an – Pin 2 und 3 verbunden), könnte man ja mit zwei Relais den Motor in beide Richtungen steuern. Ich habe auch gelesen, dass man das auch mit der IC L293D machen kann, aber die braucht doch als Eingang ein TTL Signal, oder geht auch eine normale Spannung? Kann man die also direkt zwischen 2 Relais und Motor anschließen, oder brauche ich noch andere Bauteile? Eine weitere Möglichkeit wäre auch noch die H-Bridge, aber da würde eine 8fach Relaiskarte nicht ausreichen um 4 Motoren zu steuern, denn für jeden Motor bräuchte ich 4 Relais, also insgesamt 16.
Für die genaue Positionierung des Greifers habe ich mir folgendes gedacht: Wenn man an der x- und y-Schiene Kontakte so befestigen würde, dass immer wenn sich der Greifer über einem Feld befindet, ein Stromkreis geschlossen wird, könnte man diese Signale über die serielle Schnittstelle einlesen. So weiß das Programm immer genau wenn es sich auf einem Feld befindet.

Würde das funktionieren, oder habt ihr andere Vorschläge?

Frank
03.05.2004, 21:43
Dein Relais hat einen Umschalter, wird immer mit 1xUM in den katalogen abgekürzt. Damit kannst du Motor nicht umpolen. Du bräuchtest ein Relais das 2 Umschaltkontakte hat 2xUM ! Theoretisch erreicht man das gleiche auch mit zwei getrennten Relais die man gleichzeitig schaltet, aber das sollte man nicht machen. Die Relais haben gewisse Toleranzen und es ist nicht 100% sichergestellt das die beide genau gleichzeitig umschalten. Wenn nur eines einen Bruchteil einer Sekunde zu langsam ist dann würde sich der perfekte Kurzschluß ergeben und Relaiskontakte wären wohl hin.
Das einfachste besorg die noch ein einiges Relais das 2 Umschaltkontakte besitzt. Das kannst du dann anstelle des vorhandenen nehmen oder mit diesem ansteuern.

Gruß Frank

Michael
04.05.2004, 17:12
Hallo Frank,

Wenn nur eines einen Bruchteil einer Sekunde zu langsam ist dann würde sich der perfekte Kurzschluß ergeben und Relaiskontakte wären wohl hin.

Das stimmt nicht, du kannst die Relais beliebig unabhängig umschalten, ohne Kurzschluss. Schau dir noch mal die Schaltung an. Bei 2 einzelnen Relais hast du sogar den Vorteil, dass der Motor auch anhalten kann.
Gruss, Michael

Frank
04.05.2004, 17:18
Hi Michael,

du täuschst dich entweder oder hast eine andere Schaltung. Bei der üblichen hat man einen Kurzschluß wenn ein Relais wechselt und das andere noch nicht gewechselt hat. Wenn das bei dir nicht ist, dann bin ich auf Schaltplan Skizze gespannt

Gruß Frank

Manf
04.05.2004, 17:47
Grundsätzlich so:

04.05.2004, 18:13
da hat er wohl recht, der Michael. Und weil ich meine Motoren auch immer so schalte, würde mich mal interessieren wie Frank es machen wollte...
RG

Frank
04.05.2004, 18:22
Ok, bei der Schaltung habt ihr recht. Ich habs immer anders verschaltet, bei mir war ein Wechselkontakt an + und einer an - und die Umschaltkontakte am Motor (einmal so rum und einmal andersrum). Geht in der Praxis genauso, nur das wäre mit 2 Relais zu riskant.

Gottfreak
04.05.2004, 20:55
Ich habe auch gelesen, dass man das auch mit der IC L293D machen kann, aber die braucht doch als Eingang ein TTL Signal, oder geht auch eine normale Spannung?

Was ist eine normale Spannung (da du Relais benutzt, vielleicht 12V?)?
Wenn deine Motoren nicht extrem kräftig sind (wonach sie auf dem Bild nicht aussehen), kannst du statt der Relais auch Transistoren nehmen (6 Stück je Motor, wenn einer weis, wie's mit weniger geht, wäre ich SEHR interessiert.). Die kannst du dann mit 2 Kanälen je Motor in jede Richtung laufen lassen (RECHTSRUM, LINKSRUM und AUS brauchen als drei Zustände prinzipiel mindestens 2 Digi-Kanäle). Das ist für 4 Motoren dann auch entschieden günstiger als eine Relaiskarte(und lässt sich mit kaum aufwand für fast jede Spannung auslegen).
PS: Kennt jemand einen günstigen µController, auf dem man ein brauchbares Schachprogramm zum laufen kriegt.

jamesbond007
05.05.2004, 14:54
Wo finde ich den einen Schaltplan für die Lösung mit den 6 Transistoren? :-k

jamesbond007
05.05.2004, 15:06
Wenn deine Motoren nicht extrem kräftig sind (wonach sie auf dem Bild nicht aussehen), kannst du......

Die Motoren sind zwar tatsächlich nicht sehr kräftig, aber durch die Getriebeübersetzung keicht die Kraft vollkommen aus.

jamesbond007
05.05.2004, 16:40
Ich habe noch eine andere Idee wie man die Motoren ansteuern könnte:

Der Parallelport hat ja 8 Datenleitungen, die ich unabhängig voneinander auf An (3,5V) und Aus (<0,2V) setzen kann. Wenn ich diese jetzt mit den entsprechenen Eingängen des L293D verbinde und am IC eine Spannung von 9V anlege, könnte ich doch an die Ausgänge des Ics einen Motor anschließen. Oder sind 3,5V für die Eingänge zu wenig? Oder rede ich Müll?

Michael
05.05.2004, 17:13
Hallo jamesbond007,
Datenblatt gelesen?
Gruss, Michael

jamesbond007
05.05.2004, 17:50
Ja, wieso?
Hab ich irgendwas nicht beachtet?

Michael
05.05.2004, 18:01
Hallo
du hast es wohl nicht gelesen.
Ich zitiere:
Input High Voltage (pin 2, 9,12, 19) 2,3V min. / Vss max.
Zitat Ende.
Gruss, Michael

Frank
05.05.2004, 18:46
Aber warum willst du es denn so kompliziert machen wo du schon relais hast. Wir haben ja festgestellt das es mit 2 Umschaltrelais geht - dann mach es doch so.

jamesbond007
05.05.2004, 19:13
Ich zitiere:
Input High Voltage (pin 2, 9,12, 19) 2,3V min. / Vss max.
Zitat Ende.
Und was heißt das auf Deutsch?
Heißt das es geht mit den 3,5V des Parallelports oder wie?
Was heißt Vss? Motorspannung?
Sorry, ich bin nicht so fit in den Elektronischen Bezeichnungen.


Aber warum willst du es denn so kompliziert machen wo du schon relais hast. Wir haben ja festgestellt das es mit 2 Umschaltrelais geht - dann mach es doch so.
Ich habe die Relaiskarte noch nicht, ich habe mir nur überlegt sie zu kaufen.

Frank
05.05.2004, 19:55
Ja mit den 3,5 geht es!

jamesbond007
05.05.2004, 20:13
Super :-)
Brauch ich dann nur dieses IC, oder brauch ich noch Widerstände, Freilaufdioden oder so was?

Kann dabei eigentlich ein Kurzschluss entstehen, der meinen Parallelport schrottet oder ist sowas ehr unwahrscheinlich? [-o<

Frank
05.05.2004, 22:47
Du brauchst nur das IC L293D, Dioden sind schon eingebaut. Kannst du also direkt it Ports ansteuern. Geschwindigkeit kannst du jedoch nicht regeln da PC ja kein PWM-Signal erzeugen kann. Aber Richtung kannst du bestimmen und halt stoppen.

Kjion
05.05.2004, 23:14
Kann dabei eigentlich ein Kurzschluss entstehen, der meinen Parallelport schrottet oder ist sowas ehr unwahrscheinlich?
Kann passieren. Ich würde also aufpassen ;-)

MfG Kjion

Gottfreak
06.05.2004, 10:06
Brauch ich dann nur dieses IC, oder brauch ich noch Widerstände, Freilaufdioden oder so was?

Die Dioden sind wie gesagt schon drin.
Im Datenblatt steht so weit ich weis nichts über den Widerstand der Eingänge. Widerstände am Parallelport, die keinen größeren als den zulässigen Strom (wieviel darf man als dem LPT ziehen?) durchlassen wären ok (mit 1kOhm bist du auf der sicheren Seite.).


Geschwindigkeit kannst du jedoch nicht regeln da PC ja kein PWM-Signal erzeugen kann

Sollte eigentlich kein Problem sein, wenn du ohnehin erkennst, wann der Arm über 'nem Feld steht. Sollte er nicht schnell genug anhalten, fährt er eben wieder'n Stück zurück


Wo finde ich den einen Schaltplan für die Lösung mit den 6 Transistoren?

Hab' auf die Schnelle auch keinen gefunden, und daher einen hingeschludert. Ist in der Galerie unter
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=139
zu finden.
Die Lampe steht dabei für den Motor(hab' kein Symbol für Motor gefunden).
Dabei ist zu beachten, dass du für jede Richtung je EINEN Port auf High legst. Beide Ports auf gnd heisst Motor aus. Beide Ports auf High ist ein Kurzschluss, der die Schaltung(oder auch andere Teile, wie die hoffentlich vorhandene Sicherung) zerstören kann und auch zu nix gut ist. Also unbedingt vermeiden. Masse an beiden Eingängen stellt den Strom für den Motor ab.
Ich habe keine konkreten Widerstände und Transistortypen angegeben.
Bei den Transistoren brauchst du 4mal NPN und 2mal PNP (geht so ähnlich mit 2mal NPN und 4mal PNP). Schnell genug sind auch praktisch alle Transistoren. Die Schaltleistung muss halt für deine Motoren reichen.
Die optimalen Werte für die Widerstände sind von den jeweils verwendeten Transistoren abhängig. In den meisten Fällen sollten überall die gleichen (1-10 kOhm) gehen.

Gottfreak
06.05.2004, 10:20
Ups, wie kann man die Bilder da nachträglich ändern?
Ich merke grade, dass der Plan nicht fertig beschriftet und (was schlimmer ist) an einer Stelle verkehrt ist.
Sorry, da hab' ich mal nicht genau genug nachgesehen. So NICHT nachbauen (der Transistor oben links schaltet immer durch)!
Die richtige Version hab' ich jetzt zusätzlich dahingestellt
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=140
Kann jemand autorisiertes bitte die erste Version löschen (ist ja nicht ungefährlich)?

philippinen
06.05.2004, 12:22
Hi,
warum denn 6 Transistoren????
4 tuns auch......
Ihr müsst nur die beiden Widerstände im eingang eurer Steuerspannung anpassen. Motor bis 2 Ampere.

06.05.2004, 13:29
und wen E1 und E2 gleichzeitig H-pegel bekommen, raucht's kurz und riecht nach Strom...

Gottfreak
06.05.2004, 14:01
Hi,
warum denn 6 Transistoren????
4 tuns auch......

Stimmt!
Die Lösung ist eigentlich gar logischer als das, was ich da fabriziert habe (was soll ein zweiter Transistor zum invertieren, wenn man auch gleich das Signal von der einen Motorseite nehmen kann?).


und wen E1 und E2 gleichzeitig H-pegel bekommen, raucht's kurz und riecht nach Strom...

Schon, aber einen extra Logikbaustein dafür zu nehmen, das abzufangen, wenn man sowieso über einen Computer steuert...

jamesbond007
06.05.2004, 15:54
Hallo, eine letzte Frage noch:

Muss ich die Masse des Ics mit der Masse des Parallelports oder mit der Masse der Eingangsspannung des Ics oder mit beidem verbinden?

Gottfreak
06.05.2004, 16:09
Mit beidem (die Pegel für Hi und Lo, die du dem IC übergibst, kann es nur in Bezug auf eine gemeinsame Referenzspannung interpretieren.)