2010-09-03 16 views
5

Ich möchte LED mit C# nur mit USB-Anschluss steuern. Ich möchte kein anderes Gerät mit USB anschließen. Ich möchte nur LED direkt an USB-Port-Pins anbringen und programmieren (blinken etc). Wie kann ich das machen? Ich bin neu in der Hardware-Programmierung und es wird mein erstes Programm sein.Programm-LED mit nur USB-Anschluss

EDIT: Ich kann es schon tun (blink LED) mit printer port indem Sie einen LED-Pin an data pin und andere an ground anschließen. Wie kann ich das Gleiche mit dem USB-Anschluss tun? Mein Motherboard hat keinen Druckeranschluss. USB ist die einzige Option.

+3

Sie können das nicht tun. LEDs sind kein USB-Gerät, so dass keine Kommunikation stattfindet. Sie können wahrscheinlich eine LED zum Aufleuchten bringen (oder ausbrennen oder Feuer fangen), indem Sie es anschließen, aber das ist es schon. – Fosco

+1

Sie könnten es einfacher finden, wenn Sie einen alten Parallelanschluss (Drucker) haben. – StuartLC

Antwort

5

Dies ist nicht möglich.

4 usb pins 

| | | | 
| | | | 
1 2 3 4 

1: +5V 
2: D- 
3: D+ 
4: Ground 

To trun on LED connect with 1 and 4 

Aktuelle auf die Datenstifte zu niedrig ist daher LED nie einschalten, wenn mit 5V und beliebigen Datenstift verbunden. Daher kann die LED nicht direkt mit Datenpins am USB-Port gesteuert werden.

4

Viele Mainboards versorgen permanent USB-Ports mit Strom.

Sie könnten theoretisch den USB-Controller in einige Suspend-Modus und wieder zurück, aber das ist schlecht.

Sie benötigen eine Art Controller, um Befehle über USB zu akzeptieren, und dann einige diskrete Elemente, um Strom von der permanenten USB-Versorgung zu öffnen/zu schließen und die LED erreichen zu lassen.

+0

Wenn Sie versuchen, die LED zu wechseln, müssen Sie einen USB-Controller haben, um die USB-Pakete vom USB-Host zu dekodieren, die Windows direkt steuert. Je nach LED wird wahrscheinlich auch ein Widerstand zwischen Steuerkreis und LED gewünscht. Interessantes Experiment: Nehmen Sie ein Netzteil und befestigen Sie die LED an die positiven und negativen Leitungen. Warte und schau was passiert. –

+0

Denken Sie daran, einen Strombegrenzungswiderstand zu setzen, sonst wird die schlechte Diode braten - http://en.wikipedia.org/wiki/LED_circuit – StuartLC

+0

Überprüfen Sie auch die Nennspannung und den Verbrauchsstrom. Bei einigen sehr starken LEDs besteht die Gefahr, dass der USB-Controller ausbrennt. –

3

Ich kann es schon tun (LED blinkt) Druckeranschluss mit ...

OK, also warum nicht ein cheap USB based printer port und verwenden, die kaufen? Da Sie bereits den LPT-Anschlusscode verwenden, erhalten Sie eine transparente Lösung.

+1

Ich habe dieses Board gekauft. Ich kann es nicht programmieren, wie ich den realen Druckerport auf einem anderen PC programmierte :( – SMUsamaShah

+0

Klingt so, sollte eine andere SO Frage sein. "Ich habe C# LED Blinkcode, der mit dem eingebauten LPT-Port funktioniert, aber nicht mit dem funktioniert GeeWizBang Modell 1234 USB-Druckeranschluss. Was ist falsch? " –

+0

Mit einem echten LPT-Druckeranschluss haben Sie direkte Kontrolle über den Anschluss. Aber mit einem USB-LPT-Druckeranschluss fungiert der USB-Treiber als eine weitere Ebene der Abstraktion - und zu versuchen Raw-Drucker-Port-Befehle schlagen fehl, weil der USB-Treiber nicht so programmiert ist, dass er einen Low-Level-Zugriff auf den Drucker-Port erlaubt.Sie ​​benötigen entweder einen benutzerdefinierten USB-Treiber (lsusb usw.) oder Sie versuchen, den USB-Treiber selbst aufzurufen . – NeoH4x0r

4

Sie können das wirklich nicht tun. Sie können dies mit einem parallelen Port tun, da Sie die Datenpins individuell steuern können. Mit USB haben Sie nur die Kontrolle über die Daten auf dem USB-Protokoll. Es ist wahrscheinlich, dass Protokoll in Firmware von einem Chip auf dem Motherboard sowieso ausgeführt wird, also gibt es höchstwahrscheinlich keine Möglichkeit zu tun, was Sie tun möchten, kurze Verbindung der LED über die Stromanschlüsse und Umschalten der USB-Bus-Leistung, die Sie nicht sollten tun für eine Vielzahl von Gründen.

Holen Sie sich einfach einen Arduino oder so etwas. Auf lange Sicht wird es viel einfacher und flexibler werden.

2

Sie könnten einen PIC-Mikrocontroller verwenden. Die 18f-Serie kann direkt mit LEDs über den USB-Anschluss verbunden werden. Es ist auch möglich, mit C# zu codieren und nur den USB-Port zu verwenden, um die LED zu steuern. Ich schätze, Sie wollen die LED tatsächlich kontrollieren und nicht nur zum Leuchten bringen.

0

Wenn Sie das Motiv der Steuerung LED mit USB löschen können, dann wird es sehr hilfreich sein, die Q zu beantworten: