用串口实现普通电脑的开关量输入2014-04-08 博客园 djian普通电脑没有通用的输入输出口(GPIO),但有时候我就想输入一个开关量。比如让用户拉一下拉绳开关就启动某个应用,比如装一个触点开关判断门是打开的还是关闭的,比 如....需求是如此简单,你都不愿意花几十块钱去买一个单片机,更不用说PCI扩展卡、PLC之类的了。。 怎么办呐?有办法!最简单的用串口就能实现。原理:串口的pin4[DTR]和pin7[RTS] 可以输出+6V的电(好吧,你的电脑上不一定是+6V,但肯定大于+3V 就可以了),将该输出分别接入到pin1[DCD]、pin6[DSR]、pin8[CTS],在PC上就能检测出来,从而实 现开关量输入。核心代码:
//往PIN口输出电压SerialPort.DtrEnable = true;SerialPort.RtsEnable = true;//判断PIN是否有电压输入bool cd = SerialPort.CDHolding;bool dsr = SerialPort.DsrHolding;bool cts = SerialPort.CtsHolding;
知道原理,剩下的就好办了。首先是接线:(你需要一个9针串口母头、若干个开关、导线、电烙铁)

如图,我接了3个开关,4作为公共引脚,1、6、8分别接一个开关用于输入信号。当然,你只接一个 开关也可以的。(电脑主板上的带针的是公头,接线要用母头否则插不到电脑上,如果没有可以到电子城去买一个 很便宜的,上面的编号很小要仔细看没有串口的笔记本可以淘宝上买一条USB转串口线也可以的)