使用USB激活MOSFET /继电器

时间:2010-10-03 08:57:16

标签: c# c++ usb io circuit

我正在开展个人项目,包括通过USB将简单信号从我的电脑发送到电路。基本上我使用USB信号作为MOSFET的栅极信号,然后激活继电器以打开/关闭各种AC外设。例如,如果我想每分钟打开一个灯泡5秒钟,我会在每分钟的前5秒内向第一根电线发送1个。

这是我的问题:我不知道如何在USB线上手动发送0/1特定线,甚至根本不与USB端口交互:(

所以我想这个问题有多个部分,是否可以直接与通过USB端口发送的位进行交互?如果是这样,我该怎么做?我熟悉C ++和C#,所以我真的希望你可以在其中一个......

谢谢!

编辑嗯所以看起来USB端口实际上只有一个5V引脚,因此直接的USB交互无法正常工作。打算看看并行适配器并重新开始。

6 个答案:

答案 0 :(得分:3)

USB非常适合任何在线路另一端没有USB接口的设备。如果您不想构建自己的USB设备,我建议您购买USB转串口适配器,它可以为您提供两条可直接控制的输出线(流量控制线)或USB转并口转接器,给你超过8行。

Chris Johnson的回答有一个指向Windows串口编程的链接。您需要查看第7部分 - SETDTRCLRDTRSETRTSCLRRTS是您的流量控制线切换(对于DTR和RTS行,分别地)。

就硬件而言,流量控制线上的“1”(SET)值在线上为+3到+15伏,“0”为-3到-15。实际电压可能因设备而异;测量它是肯定的。 (已编辑;我将1和0混合在一起。控制线使用与数据线相反的约定。)

以下是voltage characteristicspinouts的维基百科页面。

编辑:在对USB到并行适配器做了一些研究后,我认为他们不会给出所需的控制级别。为获得最佳效果,您需要PCI或PCMCIA并行卡或主板内置的并行端口。

我不是Windows程序员,但this library可能对从Windows控制并行端口的行有用。

答案 1 :(得分:3)

此应用程序最简单的方法是使用串行端口仿真,使用USB串行电缆,或使用硬件设备中的USB串行转换器芯片(例如FTDI FT232)。

无论哪种方式,这都允许您像使用串行端口一样与USB设备进行交互(例如,请参阅here了解如何在Windows中使用C ++执行此操作)

答案 2 :(得分:3)

就像克里斯建议的那样,你可以从FTDI获得一个USB从设备。 $27 at digikey将为您提供一个小板,其中已完成所有精细布线。

然而,为了您的目的,the datasheet第39页描述的位冲击模式将比UART模式好得多(UART产生几千赫兹的脉冲,您希望电压保持在您的水平设置为)。

希望您的MOSFET能够以3V信号打开,因为FTDI将输出大约3.1-3.2V的高输出。

另外,请确保使用the latest drivers from FTDI ...几年前他们有驱动程序(甚至WHQL认证)导致频繁的BSOD,我经常发现硬件附带的驱动程序CD有几个岁月过时了。

答案 3 :(得分:1)

我制作的东西与你正在做的非常相似(我从usb设备上运行车窗电机,使用了mossfet H桥(图中的HDR1X8)来驱动电机。)。你需要一个USB转I / O设备this is what I used(我有一个U421,它们完全适合面包板的中心线,如果你没有拆分,401也可以很好地与面包板配合使用。

http://img201.imageshack.us/img201/9316/u421.png

他们给你一个dll,你只需用你的代码链接到它。它就像调用WriteA和WriteB一样简单,可以写出你的mosfet设备。警告逻辑电平线并不意味着驱动电流,因此如果您期望任何类型的中到大电流流动,您将需要将其连接到晶体管。请参阅usbmicro网站菜单应用说明中的App1,了解正确的连接方式。

答案 4 :(得分:0)

使用USB原型板。它通常附带一个软件SDK。

答案 5 :(得分:0)

从我的网站上查看以下链接: 1.您可以使用USB转串口转换器。您需要知道的只是here 2.您可以使用编程直接访问USB,但是对于这个,您必须为您的设备安装驱动程序。详细信息为here