并口控制家电

上传人:小** 文档编号:89111030 上传时间:2019-05-18 格式:DOC 页数:4 大小:39KB
返回 下载 相关 举报
并口控制家电_第1页
第1页 / 共4页
并口控制家电_第2页
第2页 / 共4页
并口控制家电_第3页
第3页 / 共4页
并口控制家电_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《并口控制家电》由会员分享,可在线阅读,更多相关《并口控制家电(4页珍藏版)》请在金锄头文库上搜索。

1、自制家居控制系统 王乐刚 每天下班之前,在办公室就能登录到家里的电脑中,向家用电器发出指令,让空调启动,调节好室内温度;让洗衣机开始洗涤衣物,回到家后即可晾晒;电饭锅、微波炉也通上了电,开始烹调菜肴。这一切,不只限于比尔盖茨的描述中,不需要额外的插卡,仅需极普通的一台电脑,就可实现对家电的控制。系统的功用或许很多人都想知道这些是怎样实现的,甚至还表示一些怀疑,我要告诉你的是这很简单,几乎只需要简单的电子制作和简单的程序调试技巧就行。当然,你还可以在本文介绍的基础上做得更程式化和网络化。我所制作和改进的这个电脑家电控制电路,可以方便地利用电脑程序,设定室内电灯、空调等家用电器,可以在一定的时间上

2、,执行自动开启的简单操作。比如我家的电视和VCD都被我做过修改,所以“播放/停止”、“前进/后退”、频道转换等都可以由电脑控制。总之,只要是涉及电路的开关操作,用这个电路都能有效地控制。实现这些功能得写个小小的程序,这个简短程序后文将有介绍。在程序方面值得做的改进是写一个 CGI 脚本,然后再做几个漂亮的网页,把它放到服务器上,这样就可以利用Web来控制家电了。系统的要求实践本文中介绍的方法,几乎随便找一台电脑都行,因为它的要求是能运行DOS、并有个正常工作的并行口就可以了。我目前正在用一台486DX/4MB RAM/40MB硬盘的电脑控制我的家电。软件方面,需要自己去调试和编译控制程序,这主

3、要是一个并口控制程序,如果想用 telnet 控制,那么你还需要 telnetd。电路基本原理总示意图如图1所示,其实质就是从电脑输出一个控制电压,然后通过继电器或者别的电路来驱动被隔离的电子回路。图1 总示意图关于并行口我们需要用到的只是并口的pin 2到pin 9这八个pin(针脚29是数据总线的信号,通过一个 OUTB 命令发信给并口的门闩线路。可以得到+5v电压)。pin 18到pin 25 是联通的,是地线。并行口pin示意图如下: 图2 并口pin的排列控制电路的基本原理利用电脑并行口资料线的2到9pin,可以提供0到5伏电压的特性,就能控制一个继电器而达到控制电器的目的。这个电路

4、通过电脑的并行口得到一个+5V电压打开继电器,这样继电器端的家电就被接通了,当并行口的电压变成0的时候,继电器就会跳回关闭状态,家电也就关闭了。需要重点说一下,这里用的是并行口,即接打印机的接口,而不是串行口。控制电路如图3所示:图3 控制电路图并口数据脚并行口资料线(pin2 到 pin9 都可用,图3所示简单电路只用到了其中一条);并口地线并行口1825pin任意;Vcc继电器额定电压,根据继电器类型而定,应同所选继电器型号的电压一致(通常是5V或者是12V),图中选用的是12V的继电器,所以就接了12V 的直流电源接口;接地12V直流电源接口的地线;4.7K4.7K电阻;NPN普通NPN

5、三极管即可,图中用的是c2235,也可以用BC547A或者2N222A;1N40021N4002 的二极管;LED任何发光二极管都可,作为指示灯用,当家电的开关被打开后,此指示灯就会发亮;继电器继电器功率根据家用电器的功率而定,最小得用300W,如果接空调之类的,需要3000W才安全。初学者通常倾向于在三极管之后再放置继电器,然后用发射极(E脚)代替集电极(C脚)来连接继电器,这是一个错误的做法,因为三极管被错误地偏置了。二极管1N4002对保护三极管避免被从继电器流出的电流烧毁很有帮助,如果不用它,三极管很可能会被烧坏。对220V电压的操作应该非常小心,而且还应该用上一根合适的保险丝。继电器

6、工作原理一些读者可能对继电器不是很熟悉,这里简单介绍一下。图4所示是一个4个脚的继电器的内部工作原理。图4 继电器工作原理继电器“34”端平时是断开的,当“12”端 之间加上电压以后(此例中为+12V),通过线圈coil,就会把开关switch打开,此时“34”就是导通的。因此,“12”端所起到的作用,只是一个控制开关而已。继电器本身就是一个开关。把家电连接到继电器上只要把家电的电源线与继电器串联起来就可以了,也就是说不用对家电做任何的改变,最多只要改个插座就行。控制程序示例此程序用Turbo2.0在DOS下编译成功,是一段用来存取I/O端口的简单的程序示例子,仅供参考。/ I/O.c: 一个

7、用来存取 I/O 端口的非常简单的例子 这个程序并没有什么用处,它只是做了端口的写入、暂停 以及端口的读出几个动作 /#include stdio.h#include unistd.h#include asm/io.h#define BASEPORT 0x378 / lp1 /int main() / 取得端口位址的存取权限 / if (ioperm(BASEPORT, 3, 1) perror(ioperm); exit(1); / 设定端口的输出资料信号为零 (0) / outb(0, BASEPORT); / 休息一下 (100 ms) / usleep(100000); / 从状态端口

8、 (BASE+1) 读出资料并显示结果 / printf(status: %dn, inb(BASEPORT + 1); / 我们不再需要这些端口位址 / if (ioperm(BASEPORT, 3, 0) perror(ioperm); exit(1); exit(0);/ 结束I/O.c /这个程序只控制了并行口的第二针的电压,如控制其它针脚则需进一步编写其它7个类似的程序,仅需改变BASEPORT(0x378到0x37f)的值即可。也可以使用其它程序语言(如VC、VB),利用类似C语言的ioperm和outb(value,port)函数,来控制并行口,通过value值的改变达到控制多组家电的目的。扩展使用此方案完整的电路可以控制八组继电器,也就是说可以控制八组不同的家电。另外还需要一个DB25接头(并行口接头)的接口,这样一条并行口数据线就能简单地把电脑和控制电路连接到一起。建议做个漂亮的盒子,电路都放在盒子里,盒子的正面是开关、指示灯和DB25的接口。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号