2010-09-03 10 views
5

Voglio controllare il LED con C# utilizzando solo la porta USB. Non voglio collegare nessun altro dispositivo con USB. Voglio solo collegare il LED direttamente ai pin della porta USB e programmarlo (lampeggia ecc.). Come lo posso fare? Sono nuovo alla programmazione hardware e sarà il mio primo programma.LED di programma con solo porta USB

MODIFICA: Posso farlo già (LED lampeggiante) utilizzando printer port collegando un pin principale a data pin e altro a ground. Come posso fare lo stesso con la porta USB? La mia scheda madre non ha una porta per stampante. L'USB è l'unica opzione

+3

Non puoi farlo. I LED non sono un dispositivo USB, quindi non c'è comunicazione. Probabilmente puoi accendere un LED (o bruciare o prendere fuoco) agganciandolo, ma questo è tutto. – Fosco

+1

Potrebbe risultare più semplice avere una vecchia porta parallela (stampante). – StuartLC

risposta

5

Questo non è possibile.

4 usb pins 

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

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

To trun on LED connect with 1 and 4 

attuale su perni dati è troppo bassa LED quindi si accenderà mai se collegato con 5V e ogni pin di dati. Quindi il LED non può essere controllato direttamente utilizzando i pin di dati sulla porta USB

4

Molte schede madri forniscono in modo permanente porte USB con corrente.

In teoria è possibile mettere il controller USB in modalità di sospensione e viceversa, ma ciò non funziona.

Avresti bisogno di una sorta di controller per accettare i comandi tramite USB, quindi alcuni elementi discreti per aprire/chiudere la corrente dalla fornitura USB permanente e lasciarlo raggiungere il LED.

+0

Se si sta tentando di attivare il LED, è necessario disporre di un controller USB per decodificare i pacchetti USB dall'host USB controllato da Windows. Inoltre, a seconda del LED, probabilmente si vorrà un resistore tra il circuito di controllo e il LED. Esperimento interessante: prendere un alimentatore e collegare il LED ai cavi positivo e negativo. Aspetta e guarda cosa succede. –

+0

Basta ricordare di inserire un resistore limitatore di corrente, altrimenti si friggerà il povero diodo - http://en.wikipedia.org/wiki/LED_circuit – StuartLC

+0

Controllare anche la tensione nominale e la corrente di consumo. Con alcuni LED molto potenti c'è il rischio di bruciare il controller USB. –

3

posso farlo già (lampeggio del LED) tramite porta stampante ...

OK, quindi perché non comprare un cheap USB based printer port e l'uso che? Poiché hai già il codice di porta LPT funzionante, questo ti dà una soluzione trasparente.

+1

Ho comprato quella tavola. Non riesco a programmarlo come ho programmato la vera porta stampante su un altro pc :( – SMUsamaShah

+0

Suoni del genere dovrebbero essere un'altra domanda SO. "Ho il codice lampeggiante a LED C# che funziona con la porta LPT integrata, ma non funziona con Porta stampante GeeWizBang Modello 1234. Cosa c'è che non va? " –

+0

Con una vera porta LPT della stampante si ha il controllo diretto sulla porta Ma con una porta USB LPT della stampante il driver USB agisce come un altro livello di astrazione - e provando a utilizzare i comandi della porta della stampante non riuscita perché il driver USB non è programmato per consentire l'accesso a basso livello alla porta della stampante. È necessario un driver USB personalizzato (lsusb, ecc.) oppure è necessario provare a effettuare chiamate a basso livello il driver USB stesso . – NeoH4x0r

4

Non puoi davvero farlo. Puoi farlo con una porta parallela perché hai il controllo individuale sui pin di dati. Con l'USB, hai solo il controllo sui dati delle corse sulla parte superiore del protocollo USB. È probabile che il protocollo venga eseguito nel firmware da un chip sulla scheda madre, quindi non c'è probabilmente alcun modo per fare ciò che si vuole fare, collegare brevemente il LED ai pin di alimentazione e attivare la potenza del bus USB, che NON si dovrebbe fare per tutta una serie di motivi.

Basta avere un Arduino o qualcosa del genere. A lungo termine sarà molto più facile ed essere più flessibile.

2

È possibile utilizzare un microcontroller PIC. La serie 18f può interfacciare direttamente led's over usb. È anche possibile codificare utilizzando C# e utilizzare solo la porta USB per controllare il led. Immagino che tu voglia veramente controllare il led e non farlo accendere.

0

Se è possibile cancellare il movente di controllare LED tramite USB allora sarà molto utile per rispondere alla D:

Problemi correlati