C# 使用USB激活MOSFET/继电器

C# 使用USB激活MOSFET/继电器,c#,c++,usb,io,circuit,C#,C++,Usb,Io,Circuit,我正在做一个个人项目,通过USB从我的电脑向电路发送简单的信号。基本上,我使用USB信号作为MOSFET的栅极信号,MOSFET反过来会激活继电器来打开/关闭各种交流外围设备。例如,如果我想每分钟打开一个灯泡5秒钟,我会在每分钟的前5秒钟向第一根电线发送一个1 这就是我的问题:我不知道如何手动将0/1发送到USB电缆上的特定导线,甚至根本不知道如何与USB端口交互:( P>所以我猜这个问题有多个部分,是否可以直接与通过USB端口发送的比特进行交互?如果是这样,我怎么做?我对C++和C语言很熟悉

我正在做一个个人项目,通过USB从我的电脑向电路发送简单的信号。基本上,我使用USB信号作为MOSFET的栅极信号,MOSFET反过来会激活继电器来打开/关闭各种交流外围设备。例如,如果我想每分钟打开一个灯泡5秒钟,我会在每分钟的前5秒钟向第一根电线发送一个1

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

<> P>所以我猜这个问题有多个部分,是否可以直接与通过USB端口发送的比特进行交互?如果是这样,我怎么做?我对C++和C语言很熟悉,所以我真的希望你能在其中的一个……/P>中做到这一点。 谢谢


编辑Hmm,使其看起来USB端口实际上只有一个5V插脚,这样直接的USB交互就不起作用。去看看并行适配器,然后重新使用它。

USB不适合任何在另一端没有USB接口的设备。如果你不想构建自己的USB设备,我建议购买g一个USB到串行适配器,提供两条可直接控制的输出线(流量控制线),或一个USB到并行适配器,提供8条以上的线

Chris Johnson的答案中有一个指向Windows串行端口编程说明的链接。您将要查看第7节--
SETDTR
CLRDTR
SETRTS
,和
CLRRTS
是您的流控制行切换(分别针对DTR和RTS行)

就硬件而言,流量控制线上的“1”(设置)值为+3至+15伏,而“0”值为-3至-15伏。实际电压可能因设备而异,请测量以确保。(编辑;我混淆了1和0。控制线使用与数据线相反的约定。)

以下是和的维基百科页面

编辑:在对USB到并行适配器进行了更多研究之后,我认为它们不会提供所需的控制级别。为了获得最佳效果,您需要在主板中内置PCI或PCMCIA并行卡或并行端口


我不是Windows程序员,但可能有助于从Windows控制并行端口的线路。

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


任一种方式,这允许你与你的USB设备交互,如你将是一个串口(参见,例如,如何在Windows中使用C++),使用/P P>使用USB原型板。它通常带有软件SDK。

< P>我建立了非常类似于你正在做的事情(我用USB设备运行一个车窗马达,使用了一个MOSFET FET H桥)。(图中的HDR1X8)来驱动电机。)你需要一个USB到I/O设备(我有一个U421,它们非常适合面包板的中心线,如果你没有分体式的话,401也可以与面包板配合使用


它们给你一个dll,你只要用你的代码链接到它。这就像调用WriteA和WriteB将数据写入mosfet设备一样简单。请注意,逻辑电平线并不是用来驱动电流的,因此如果你期望任何类型的中到大电流,你需要将其连接到晶体管上。请参阅应用程序中的App1点击usbmicro网站上的菜单,查看正确的连接方式。

就像Chris建议的那样,您可以从FTDI获得一个USB从设备。这将为您提供一个小电路板,其中包含所有已完成的精细布线

但是,出于您的目的,第39页中描述的位碰撞模式比UART模式要好得多(UART产生几千赫兹的脉冲,您希望电压保持在您设置的水平)

希望您的MOSFET将开启3V信号,因为FTDI将输出约3.1-3.2V的高输出


另外,请确保您使用……几年前,他们有导致频繁BSOD的驱动程序(WHQL认证),我经常发现硬件附带的驱动程序CD已经过时了几年。

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

我阅读了文档,但它似乎没有涵盖如何通过串行端口输出的任何细节:(我不想通过电线发送信息,我只想在我告诉它的时候在引脚8上充电5伏。这些设备模拟串行端口,所以你可以使用串行端口API来控制引脚。在Windows中,FTDI芯片中的EscapeComm函数也有“位碰撞”模式(使用它们的DLL,而不是将其视为虚拟串行端口)这让你可以直接控制12针。IIRC将是0V/3.3V,但这足以打开大多数MOSFET。因此,如果我使用DE9串行适配器,理论上我可以有六条控制线?DTR、DCS、DSR、RI、RTS和CTS?MOSFET可以处理5-15V的栅极电压,因此线路上的实际电压应该太重要了如果是在低端,会导致过热。Hrm,顺便问一下……你知道负电压对像MOSFET这样的晶体管意味着什么吗?这可能是一个愚蠢的问题,但现在是早上6点:)但是负电压(为了这个项目的目的)不等于0V吗?(也就是说,它不会打开栅极)不完全是-问题是,其中一些是输入线。DTR和RTS是输出(从计算机到设备),而CTS、DCD、DSR和RI是输入(从设备到计算机)。嗯,我可能只是使用一个并行端口。我需要两条以上的可控线。呃,不,是负音量