仅使用USB端口编程LED

6
我想使用C#仅通过USB端口控制LED,而不需要连接任何其他设备。我只想直接将LED连接到USB端口引脚并对其进行编程(例如闪烁)。我是硬件编程的新手,这将是我的第一个程序。
编辑:我已经可以使用打印机端口通过将一个LED引脚连接到数据引脚,另一个引脚连接到地线来实现(闪烁LED)。如何使用USB端口实现相同的功能?我的主板没有打印机端口,只有USB选项。

3
你不能这么做。LED并不是一个USB设备,因此无法进行通信。你可能可以通过连接LED使其发光(或烧毁或着火),但仅限于此而已。 - Fosco
1
如果你有一個舊的並口(印表機)可能會更容易。 - StuartLC
5个回答

5
这是不可能的。
4 usb pins

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

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

To trun on LED connect with 1 and 4

如果使用5V和任何数据引脚连接,数据引脚上的电流太低,因此LED永远不会亮起来。因此,不能直接使用USB端口上的数据引脚来控制LED。


4
许多主板会永久为USB端口提供电流。
理论上,您可以将USB控制器置于某种挂起模式,然后再恢复,但这是不好的。
您需要某种控制器来通过USB接受命令,然后使用一些离散元件打开/关闭永久USB供电的电流,并让其到达LED。

如果你想尝试切换LED,你必须有一个USB控制器来解码USB主机发送的USB数据包,而这些数据包是由Windows直接控制的。此外,根据LED的不同,你可能需要在控制电路和LED之间加上一个电阻器。有趣的实验:拿一台电源,将LED连接到正负极上。等待并观察会发生什么。 - Dr. Watson
只要记得加入限流电阻,否则会烧坏可怜的二极管。- http://zh.wikipedia.org/wiki/LED%E7%94%B5%E8%B7%AF - StuartLC
还要检查名义电压和消耗电流。对于一些非常强的LED,存在烧毁USB控制器的风险。 - user151323
LED可以通过将其电线连接到USB的1号和4号引脚来使用USB电缆工作。我想要控制LED的闪烁。关闭USB电源不是一个好的解决方案。应该有一种方法来控制它,也许可以使用数据引脚。 - SMUsamaShah
有一种方法可以控制它...使用USB控制器... :-) 你所缺少的是USB是一个真正的总线,而不是简单的端口/终点。 - Brian Knoblauch

4
你真的做不到这个。你可以使用并口,因为你可以单独控制数据引脚。但是对于USB,你只能控制在USB协议之上的数据。很可能该协议已经由主板上的芯片在固件中运行,因此除了将LED连接到电源引脚并切换USB总线电源以外,你想做的事情很可能没有其他方法,而这是出于各种原因都不应该做的。
只需获取Arduino或类似设备即可。从长远来看,它会更容易且更灵活。

3

使用打印机端口已经可以做到(闪烁LED)...

好的,那么为什么不购买一个廉价的USB打印机端口并使用呢?由于您已经成功实现了LPT端口代码,这将给您带来一种透明的解决方案。


1
我买了那块板子。但是我无法像在另一台电脑上编程真实的打印机端口那样对它进行编程 :( - SMUsamaShah
好像这应该是另一个 Stack Overflow 的问题。”我有一段 C# LED 闪烁的代码,可以在内置的 LPT 端口上工作,但在 GeeWizBang 型号为1234的 USB 打印机端口上无法工作。出了什么问题? - John Lopez
有了真正的LPT打印机端口,您可以直接控制该端口。 但是,使用USB LPT打印机端口时,usb驱动程序充当另一层抽象--尝试使用原始打印机端口命令会失败,因为usb驱动程序未编程以允许对打印机端口进行低级访问。您需要自定义usb驱动程序(lsusb等),或者尝试调用usb驱动程序本身的低级调用。 - NeoH4x0r

2

您可以使用PIC微控制器。18f系列可以直接通过USB接口连接LED。还可以使用C#编码,只使用USB端口来控制LED。我猜你实际上想要控制LED而不仅仅是让它发光。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接