使用c或任何编程语言控制USB端口上的电压供应

时间:2013-05-31 13:16:06

标签: c usb electronics

我在电子产品方面没有多少知识。我想打开/关闭使用程序连接到usb端口的led。 USB端口包括4线(数据+,数据,电压,接地),如果我将电压和地线连接到LED,它会发光。我一直在互联网上搜索这个问题,我发现使用程序控制led连接到usb是不可能的,因为datapin上的电源太低而不能用于关闭led。

但是如果我将我的LED连接到vol和接地引脚并控制usb端口的整个电源,我想可以控制led使用程序。有一种方法可以通过USB端口禁用和启用电源。

我也想知道遵循这种方法是不是很糟糕。是否会损坏usb控制器以频繁启用/禁用电源。

Algo :

      a = Get_input_from_user() ;
      if(a=="ON")
           turn power supply of usb port ON.
          else
           turn power supply of usb port OFF.

这个东西当然可以使用额外的硬件,我不想使用任何额外的硬件。

3 个答案:

答案 0 :(得分:1)

计算机USB端口的电源通常不是软件可控的。在大多数情况下,USB端口的电源引脚直接连接到电源的5V电源轨(通常通过polyfuse),因此无法打开和关闭它们。

Some powered USB hubs do support switching power to their ports,但你说你不想使用任何额外的硬件,所以你运气不好。

答案 1 :(得分:1)

你可以使用任何基本的Arduino委员会这样做,有一个完整的IDE免费和很多sample code,可以做你想要的开箱即用

Arduino enter image description here

你也可以使用COOL板。

Teensy 3.0

Arduino兼容代码适用于Teensy

软件开发工具HERE

答案 2 :(得分:0)

您可以使用带电阻的外部电源(the Vcc and GND pins of the USB port in this case)为二极管供电,并在中间连接晶体管作为中断器。然后,将基座和emisor连接到USB端口的数据+和数据。

this page不允许我上传图片。

对不起图纸的质量,但我在电脑上的所有东西都是油漆。 为了获得更稳定的性能,请确保使R1足够低,以便晶体管在数据引脚导通时处于饱和模式但不会低到晶体管烧毁(我真的不知道USB端口上数据引脚的电压电平是多少)对不起)。 要选择适当的R2值,您需要知道为二极管供电所需的电流。根据欧姆定律计算:

Idiode = (Vcc - Vce,sat - Vd) / R2.

当晶体管处于饱和模式时,Vce,sat是可变器和发射器之间的潜在差异(可在制造商网页上的晶体管数据表中找到,通常约为0.2V),Vd是二极管的归一化电位差(同样,但这次约为0.6V)。

请注意,数据和GND引脚已连接。我99%确定这不会损害您的USB端口,但使用它需要您自担风险。

我会首先使用其他外部电源对其进行测试,以确保您正确连接所有内容。