欢迎来到天天文库
浏览记录
ID:24346112
大小:48.01 KB
页数:4页
时间:2018-11-13
《《并口控制家电》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、自制家居控制系统王乐刚 每天下班之前,在办公室就能登录到家里的电脑中,向家用电器发出指令,让空调启动,调节好室内温度;让洗衣机开始洗涤衣物,回到家后即可晾晒;电饭锅、微波炉也通上了电,开始烹调菜肴。这一切,不只限于比尔·盖茨的描述中,不需要额外的插卡,仅需极普通的一台电脑,就可实现对家电的控制。 系统的功用 或许很多人都想知道这些是怎样实现的,甚至还表示一些怀疑,我要告诉你的是这很简单,几乎只需要简单的电子制作和简单的程序调试技巧就行。当然,你还可以在本文介绍的基础上做得更程式化和网络化。 我所制作和改进的
2、这个电脑家电控制电路,可以方便地利用电脑程序,设定室内电灯、空调等家用电器,可以在一定的时间上,执行自动开启的简单操作。比如我家的电视和VCD都被我做过修改,所以“播放/停止”、“前进/后退”、频道转换等都可以由电脑控制。总之,只要是涉及电路的开关操作,用这个电路都能有效地控制。 实现这些功能得写个小小的程序,这个简短程序后文将有介绍。在程序方面值得做的改进是写一个CGI脚本,然后再做几个漂亮的网页,把它放到服务器上,这样就可以利用Web来控制家电了。 系统的要求 实践本文中介绍的方法,几乎随便找一台电脑都行
3、,因为它的要求是能运行DOS、并有个正常工作的并行口就可以了。我目前正在用一台486DX/4MBRAM/40MB硬盘的电脑控制我的家电。软件方面,需要自己去调试和编译控制程序,这主要是一个并口控制程序,如果想用telnet控制,那么你还需要telnetd。 电路基本原理 总示意图如图1所示,其实质就是从电脑输出一个控制电压,然后通过继电器或者别的电路来驱动被隔离的电子回路。 图1总示意图 关于并行口 我们需要用到的只是并口的pin2到pin9这八个pin(针脚2~9是数据总线的信号,通过一个OUTB命令发
4、信给并口的门闩线路。可以得到+5v电压)。pin18到pin25是联通的,是地线。并行口pin示意图如下: 图2并口pin的排列 控制电路的基本原理 利用电脑并行口资料线的2到9pin,可以提供0到5伏电压的特性,就能控制一个继电器而达到控制电器的目的。这个电路通过电脑的并行口得到一个+5V电压打开继电器,这样继电器端的家电就被接通了,当并行口的电压变成0的时候,继电器就会跳回关闭状态,家电也就关闭了。需要重点说一下,这里用的是并行口,即接打印机的接口,而不是串行口。 控制电路如图3所示: 图3控制电路图
5、 并口数据脚——并行口资料线(pin2到pin9都可用,图3所示简单电路只用到了其中一条); 并口地线——并行口18~25pin任意; Vcc——继电器额定电压,根据继电器类型而定,应同所选继电器型号的电压一致(通常是5V或者是12V),图中选用的是12V的继电器,所以就接了12V的直流电源接口; 接地——12V直流电源接口的地线; 4.7K——4.7K电阻; NPN——普通NPN三极管即可,图中用的是c2235,也可以用BC547A或者2N222A; 1N4002——1N4002的二极管; LED
6、——任何发光二极管都可,作为指示灯用,当家电的开关被打开后,此指示灯就会发亮; 继电器——继电器功率根据家用电器的功率而定,最小得用300W,如果接空调之类的,需要3000W才安全。 初学者通常倾向于在三极管之后再放置继电器,然后用发射极(E脚)代替集电极(C脚)来连接继电器,这是一个错误的做法,因为三极管被错误地偏置了。二极管1N4002对保护三极管避免被从继电器流出的电流烧毁很有帮助,如果不用它,三极管很可能会被烧坏。对220V电压的操作应该非常小心,而且还应该用上一根合适的保险丝。 继电器工作原理 一
7、些读者可能对继电器不是很熟悉,这里简单介绍一下。 图4所示是一个4个脚的继电器的内部工作原理。 图4继电器工作原理 继电器“3~4”端平时是断开的,当“1~2”端之间加上电压以后(此例中为+12V),通过线圈coil,就会把开关switch打开,此时“3~4”就是导通的。因此,“1~2”端所起到的作用,只是一个控制开关而已。继电器本身就是一个开关。 把家电连接到继电器上 只要把家电的电源线与继电器串联起来就可以了,也就是说不用对家电做任何的改变,最多只要改个插座就行。 控制程序示例 此程序用Turbo
8、2.0在DOS下编译成功,是一段用来存取I/O端口的简单的程序示例子,仅供参考。 / I/O.c:一个用来存取I/O端口的非常简单的例子 这个程序并没有什么用处,它只是做了端口的写入、暂停 以及端口的读出几个动作 / #include<stdio.h> #include<unistd.h> #include<asm/io.h> #
此文档下载收益归作者所有