我在很多年前做过。但以如今的情况来看,这种做法已经不太现实。
那还是 Windows XP 时代,可以直接编程透过 0x378 读写 LPT(Parallel Port),就是 USB 时代以前,打印机用的那个口。
这种丑大宽的接口,在以前的台式机、甚至笔记本电脑上,都是标配IO。
LPT 可以拉出个别接点,直接控制某一个接点的高低电位,简单说就是 GPIO。再接上 TA-7279P 之类的桥式 IC,给直流有刷电机作正反转控制。
到 Win7 时代已经行不通,因为这其实是直接读写 RAM 的行为,为了安全性已经被 OS 挡下来。硬要做?可以的,只是很高概率会见到经典蓝色当机画面。
那怎么办呢?我需要编程控制电机、读取各种电子电路例如 ADC,可我不想用 Windows XP 啊,Windows 7 在当时很潮的!
有个德国人做了这个东西:
那是一个物流与电商都远远不如现在发达的时代,我不知道怎么跟这个德国人买?
最后,买的是中国大陆的仿制品,但连接稳定性不佳啊!我也搞不懂是仿制者的锅?还是原设计者的锅?
虽然连接稳定性差,但起码不会再看到蓝色当机画面,而且重连成功概率不算低,做原型机实验勉强堪用了。
其实,说到这里,就已经超出题主要求的范围了,因为这个 USB2LPT 本质上也是单片机做的,只是别人帮你写了模拟 LPT 的 firmware 进去(而且我没记错的话,还不能当作 Printer Port 使用,也就是不能真的拿来转接打印机
@淡月清风 的留言让我想起来,自己曾经折腾过 winio.dll,Inpout32.dll,但最后都不够好。最主要的原因,是不能突破「Windows 系统时间片」的限制,操作实时性不佳。
当时有一个同学,他是拿 NI-6009 这张很多学生爱用的 USB DAQ 去完成「电脑控制电机」的目标,他很开心的说「哈哈哈~我这样就逃过 8051 了」。
结果我把 NI-6009 拿来拆开,抱歉,你用的还是 8051!
如下图,这真的是当时的照片,我自己拿小米3拍下的。
其他回答说到可以用:
很可能也都是类似的方案,只是控制电机的人不用折腾单片机了,但不代表没用到单片机。
再往后,就是我自学单片机的故事了。在这件事折腾得太累,也是我自学单片机的动机之一。
用 UART+MCU 做转接,以电脑控制电机,这自由度实在高得太多太多了,尤其很多细节交给 MCU 就可以不受「Windows 系统的时间片」限制,也能将不少具体硬件动作流程抽象到 MCU 的代码中。但就是得先过「会写单片机」这道门槛。
有的回答重点放在「小电流转大电流」这个点上,但我认为这不是问题重点。
试问,你用单片机控制,就不需要小电流转大电流了吗?所以我回答的重点没放在这上面。
(再较真下去,单片机也属于电脑的子集,所以「如何在不使用单片机等的情况下直接用电脑控制电机?」这个问题也是有毛病的)
买个usb转串口模块,注意要有DTR和RTS信号的才行。pc上程序控制这两个脚就行了。后面你再加RZ7899之类电机驱动模块就行,保险起见再加光耦隔离更好。
如果需要的gpio多一些,建议用CH341A模块,能转出十几个gpio吧。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有