-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: Diode mit Pc zum Leuchten bringen (kein Plan)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    199

    Diode mit Pc zum Leuchten bringen (kein Plan)

    Anzeige

    Hallo.Ich habe da 'ne Frage.Ich will eine Diode mit Hilfe von einem Transistor über Seriellen Port Com1 oder Com2 zum leuchten bringen. Wie kann ich sowas über Word, Excel oder Basic machen. Und welche Anschlüße muss ich da überhaupt verbinden.
    Gruß Michi.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Einen Transistor brauchst du dazu nicht. Dafür einen Widerstand.
    Mit Word oder Excel kannst du das ganz sicher nicht. Basic programmier ich selber nicht, müsste aber gehen. Um einzelne Pins auf High oder Low zu setzen brauchst du unter Win2k/XP aber einen Treiber (eine dll) der deine Signale durchschlauft, denn diese Windows Versionen erlauben dem Programmierer/Benutzer keinen direkten Hardwarezugriff.
    lg binaer
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.03.2005
    Beiträge
    199
    Ja und wie kann ich diese einzelne Pins ansteuern?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Wie das bei basic genau läuft, kann ich dir nicht sagen, bei c/c++ könnt ich dir besser helfen.
    Du hast dann eine dll, und eine header datei, die du einbinden musst und so durch einfache befehle einzelne pins steuern kannst. Bei win95/98 würde es einfacher mit Assemblerstücken gehen, die du im Code einbindest, win2k/XP lässt das leider nicht mehr zu.
    lg binaer
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

  5. #5
    Gast
    Mit c/c++ kannst du mir eigentlich auch erklären.
    Danke.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Im Anhang ist eine zip datei mit einem Beispielcode (serial bsp.cpp) und zwei header dateien zum Einbinden. Im Unterordner befinden sich alle dateien für den Treiber inkl. beschreibung zur Installation etc.
    Zu beachten ist noch, dass die einzelnen bits als zweierpotenzen anzusprechen sind. d.H. das hinterste bit ist 1, das zweite 2, das dritte 4, ...
    Sonst sollte es eigentlich selbsterklärend sein. Sonst einfach fragen.
    lg binaer
    Angehängte Dateien Angehängte Dateien
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.10.2004
    Ort
    Reutlingen
    Alter
    28
    Beiträge
    704
    Wieso nicht LPT ???

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Kommt etwa aufs selbe raus, ausser das man eine andere dll braucht
    Soviel ich weiss ist der Com Port weniger empfindlich, dafür kann man beim Parallel Port mehr pins benutzen. Com kann man hingegen alle sowol als input wie auch als output nehmen.
    Ich benutze um so relais zu schalten auch den Parallel port, aber nur weil an den diesen PC an den Com Port bald mal mein Roboterarm kommt, der dann meine Kaffeemaschine zu bedienen hat.
    lg binaer
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2004
    Ort
    um Berlin
    Beiträge
    346
    Mit C/C++ eine rote Low-Current-LED, die mit der Anode an GND (Pin 5) und mit der Kathode über einen Vorwiderstand 3,3k - 3,9k an RTS (Pin 7) angeschlossen ist, zum Leuchten zu bringen, ist ein simples Programm notwendig:
    Code:
    #include <windows.h>
    
    int main (void)
    {
    	HANDLE hPort; 
    
    	hPort =  CreateFile (TEXT("COM1"), 
    		GENERIC_READ | GENERIC_WRITE,
    		0,
    		0,
    		OPEN_EXISTING,
    		0,
    		0);
    
    	EscapeCommFunction (hPort, SETRTS); // RTS setzten
    	Sleep (2000);
    	EscapeCommFunction (hPort, CLRRTS); // RTS rücksetzten
    	Sleep (2000);
    	EscapeCommFunction (hPort, SETRTS); // RTS setzten
    	Sleep (2000);
    
    	CloseHandle (hPort);
    
    	return (0);
    }
    Für andere LEDs ist nur der Vorwiderstand neu zu dimensionieren.

    In Basic/VB geht das über die port.dll von B. Kainka (http://www.b-kainka.de/msrwin.htm):
    Code:
    Attribute VB_Name = "Port"
    Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer
    Declare Sub RTS Lib "Port" (ByVal b%)
    ...
    i = OPENCOM("COM1,9600,N,8,1")
    If i = 0 Then MsgBox ("Schnittstelle nicht verfügbar!")
    RTS 1
    DELAYUS (10)
    RTS 0
    DELAYUS (10)
    RTS 1
    ...
    Alternativ kann man auch die Port.dll in C/C++ benutzen:
    Code:
    typedef int (CALLBACK* LPFNDLLFUNC)(char*);
    char szFuncName[] = "OPENCOM";
    ...
    OPENCOM "COM2: baud=19200 data=8 parity=N stop=1"
    ...
    typedef int (CALLBACK* LPFNDLLFUNC)(WORD);
    char szFuncName[] = "RTS";
    ...
    RTS "1";
    Das sind aber nur code-Beispiele, einbauen in Deinen Code mußt Du schon alleine.

    Blackbird
    PS: Geht für W95/98/NT/2000/XP/ME. Unter W95/98 könnte man in C/C++ auch inp(...) und outp(...) (oder inport(...) und outport(...)) verwenden und direkt auf die UART-Register zugreifen. Assembler braucht man nur, wenn man interruptgesteuert einlesen will. Unter NT aufwärts braucht man keinen Assembler dazu mehr, weil das Win-Api alle Funktionen bereitstellt.

  10. #10
    Gast
    Hi.Hab alles gemacht wie du mir gesagt hast mit C/C++ copiller test.exe gemacht Diode geht nicht.
    gruß Michi.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •