hardware über serielle Schnittstelle ansteuern`

D

d3f3nd3r

Mitglied
heo

ich arbeite gerade an einem Projekt, bei dem ein DC-Motor über den PC angesteuert werden soll. (unter linux und später auch unter Windows)

Bis jetzt hab ich keine Anhnung wie ich Pegel auf die serielle Schnittstelle legen kann (um den Motor anzusteuern).

Ich stelle mir das ungefähr so vor dass ich zb "motor start" aufrufe und dann logisch 1 auf einen Leitung der seriellen Schnittstelle lege.( dadurch wird dann per Transisitor der Motor aktiviert)

Kann mit jemand Tipps/links geben, wo ich mich genauer informieren kann.

mfg
 
Um gezielt Spannung an einzelne Pins zu legen, solltest Du anstatt der seriellen Schnittstelle den Parallelport verwenden. (siehe Abschnitt: "Parallel Port"):
http://tldp.org/HOWTO/IO-Port-Programming.html

Diese Library implementiert das und macht es leicht in C zugänglich:
http://parapin.sourceforge.net/

Wahrscheinlich reicht schon die Userspace-Library.

Die serielle Schnittstelle bzw der Controller implementiert ein Protokoll bzw. einen technischen Standard (RS-232) zur byteweisen Ein- und Ausgabe, an dem diverse Steuerleitungen beteiligt sind. Mir ist nicht bekannt, wie man Spannung an einzelne Pins legen kann. Ich glaube, das ist für die serielle Schnittstelle auch nicht vorgesehen.
http://tldp.org/HOWTO/Serial-Programming-HOWTO/
 
Zuletzt bearbeitet:
Vermutlich ist der Vorschlag mit dem Parallelport der beste. Falls Bedarf besteht, hier noch einige Ideen für die Hardware-Bastelei:

http://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung

Da Deine Anfrage aber auf Hardware-Ansteuerung über die Serielle Schnittstelle abzielte, wäre vielleicht auch das hier interessant:

http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=130

Man müßte mal nachfragen, ob das komplette Protokoll für seinen IC offenliegt. (Hört sich nach der Beschreibung zumindest so an.) Ich habe den Verdacht, daß hierbei ASCII-Strings übertragen werden und 'der_Kay' hat ja schon einen Link gezeigt, wie man die Serielle Schnittstelle programmiert...
 
Wo wir schon bei integrierten Steuerlösungen sind:
http://www.arduino.cc

Der Clou ist die extrem einfache Programmierung mit kostenloser vorkonfigurierter IDE, auch über USB. Das Board ist gleichzeitig der Programmer. Kann man hier kaufen und kostet nicht soo viel (17,95 + Versand)... (Das soll keine Werbung sein!)
 
Zuletzt bearbeitet:
Die Linux Variante verwendet inline Assembler, das kanns doch wohl nicht sein. ;=) Benutzt Du Windows? Was ist denn verkehrt an parapin?
 
ja danke parapin schaut gut aus, aber noch eine Frage:
Wenn ich zb die erste Leitung (LP_PIN1) mit set_pin(LP_PIN01); setzt, wie lang liegt das Signal auf der Leitung?

hier mein BSP code (quick and dirty)

Code:
    if(pin_init_user(LPT1) == 0 ){
	printf("wuhuhw LPT 1 initialisiert \n");
	
	pin_output_mode(LP_PIN01);
	/*   All these pins are now in output mode */
	
	set_pin(LP_PIN01);
        
	pin_input_mode(LP_PIN01);
                                  /* Pin 1 is now an input */
	
	if (!pin_is_set(LP_PIN01))
	  printf("pin 1 off");
    }

hier liefert pin_is_set(LP_PIN01) 0 zurück ..... Gibt es keine Möglichkeit, das Signal 1 permanent auf die Leitung zu legen (und erst noch clear wieder 0 wird?)

mfg
 
http://www.skilltronics.de/

hab ich während meiner zeit mit QuickBasic und MS-DOS verwendet... in der Theorie aht das auch immer funktioniert aber ich muss irgendwas bei den ICs für meine Ampelsteuerung falsch gemacht haben....
 
Bei Elektor gibt es eine kleine Schnittstellen mit denen man I2C Bausteine über den seriellen Port ansteuern kann. Funktioniert natürlich auch mit Qt über USB.
Die C Programme kann man dann für den Arduino umschreiben/anpassen.
mfg
C.Kaak
 
Aber eine Ergänzung ist es doch wert, es gibt eine Reihe von Pins der RS232, die man direkt ansteuern kann. Ist auch nicht sonderlich schwer. RTS, DTR. Als Eingang kann man CTS, DSR, (D)CD und RI verwenden.
 

Ähnliche Themen

SPI über serielle Schnittstelle

Mit Windows 98SE über Suse-Linux 10.0 ins internet

Zurück
Oben