2010-09-03 13 views
5

Quiero controlar el LED con C# utilizando solo el puerto USB. No quiero conectar ningún otro dispositivo con USB. Solo quiero conectar el LED directamente a los pines del puerto USB y programarlo (parpadear, etc.). ¿Cómo puedo hacer eso? Soy nuevo en la programación de hardware y será mi primer programa.Programa LED con solo puerto USB

EDITAR: Puedo hacerlo ya (LED parpadeante) usando printer port conectando un pin a data pin y otro a ground. ¿Cómo puedo hacer lo mismo con el puerto USB? Mi placa madre no tiene un puerto de impresora. USB es la única opción.

+3

No se puede hacer eso. Los LED no son un dispositivo USB, por lo que no hay comunicación. Probablemente pueda encender un LED (o quemarse o prenderse fuego) enganchándolo, pero eso es todo. – Fosco

+1

Puede que le resulte más fácil si tiene un puerto paralelo antiguo (impresora). – StuartLC

Respuesta

5

Esto no es posible.

4 usb pins 

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

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

To trun on LED connect with 1 and 4 

actual en los pines de datos es demasiado bajo, por lo tanto el LED no se enciende si está conectado con 5V y cualquier pin de datos. Por lo tanto, el LED no se puede controlar directamente utilizando pines de datos en el puerto USB

4

Muchas placas madre suministrarán permanentemente puertos USB con corriente.

En teoría, podría poner el controlador USB en algún modo de suspensión y viceversa, pero esto es malo.

Necesitará algún tipo de controlador para aceptar comandos a través de USB y luego algunos elementos discretos para abrir/cerrar la corriente del suministro permanente de USB y dejar que llegue a su LED.

+0

Si va a intentar alternar el LED, debe tener un controlador USB para decodificar los paquetes USB desde el host USB que Windows controla directamente. Además, dependiendo del LED, es probable que desee una resistencia entre el circuito de control y el LED. Experimento interesante: tome una fuente de alimentación y conecte el LED a los cables positivo y negativo. Espera y mira lo que sucede. –

+0

Simplemente recuerde poner una resistencia limitadora de corriente, de lo contrario se freirá el diodo defectuoso - http://en.wikipedia.org/wiki/LED_circuit – StuartLC

+0

También verifique el voltaje nominal y la corriente de consumo. Con algunos LED muy potentes existe el riesgo de quemar el controlador USB. –

3

puedo hacerlo ya (LED parpadea) utilizando el puerto de impresora ...

bien, ¿por qué no comprar un cheap USB based printer port y usar eso? Como ya tiene el código de puerto LPT funcionando, esto le brinda una solución transparente.

+1

Compré ese tablero. No puedo programarlo como programé el puerto de impresora real en otra PC :( – SMUsamaShah

+0

Suena así debería ser otra pregunta de SO. "Tengo un código parpadeante de C# LED que funciona con el puerto LPT incorporado, pero no funciona con el GeeWizBang Modelo 1234 puerto de impresora USB. ¿Qué ocurre? " –

+0

Con un puerto de impresora LPT real, usted tiene control directo sobre el puerto. Pero con un puerto de impresora USB LPT, el controlador usb actúa como otra capa de abstracción, e intenta los comandos del puerto de impresora sin procesar fallan porque el controlador usb no está programado para permitir el acceso de bajo nivel al puerto de la impresora. Usted necesita un controlador usb personalizado (lsusb, etc.) o debe intentar realizar llamadas de bajo nivel el controlador usb en sí mismo . – NeoH4x0r

4

Realmente no puedes hacer esto. Puede hacerlo con un puerto paralelo porque tiene control individual sobre los pines de datos. Con USB, solo tiene control sobre los datos que se encuentran sobre el protocolo USB. Es probable que el protocolo se ejecute en firmware por un chip en la placa base de todos modos, así que probablemente no haya manera de hacer lo que quiere hacer, conecte brevemente el LED a través de los pines de alimentación y alternar la potencia del bus USB, que NO hacer por una variedad de razones.

Obtenga un Arduino o algo así. A largo plazo será mucho más fácil y más flexible.

2

Puede usar un microcontrolador PIC. La serie 18f puede interactuar directamente con el led del usb. También es posible codificar usando C# y usar solo el puerto USB para controlar el led. Supongo que realmente quieres controlar el led y no solo encenderlo.

0

Si puede borrar el motivo de control de LED a través de USB, entonces será muy útil para responder a la Q:

Cuestiones relacionadas