普通红外遥控器的遥控电脑的电路设计与分析.docx
- 文档编号:9355282
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:23
- 大小:428.42KB
普通红外遥控器的遥控电脑的电路设计与分析.docx
《普通红外遥控器的遥控电脑的电路设计与分析.docx》由会员分享,可在线阅读,更多相关《普通红外遥控器的遥控电脑的电路设计与分析.docx(23页珍藏版)》请在冰豆网上搜索。
普通红外遥控器的遥控电脑的电路设计与分析
普通红外遥控器的遥控电脑的电路设计与分析
当你躺在床上,正用电脑看着电影时,电话铃响起………无奈只好先跑去暂停了电影,再回来接电话,不然错过了精彩剧情岂不可惜?
如果我们能给电脑安装一个遥控器那该多好,这样躺在床上也一样能操作电脑,给我们看电影和欣赏音乐带来了极大的便利。
现在的电视卡都带有配套的遥控器并在卡上集成接收器,可以实现遥控换台以及一些其他的电视/电脑操作,但是,难道没有电视卡的朋友就无缘遥控了吗?
_m_}3?
;{_}_|'xw!
[_j4b4o0遥控接收器制作过程电子爱好者社区_d_B'h0g_P_R_R
_k;M_[Q+V_U0 其实,自制一个电脑遥控接收器,是非常容易的。
首先,我们制作的电脑遥控器必须使用红外方式的(不能是射频的遥控器),一般电视、影碟机的遥控器都可以使用,如果手头没有闲置的遥控器,可以到小商品市场购买,一般的电视机遥控器即可,售价在十几元。
注意,不要使用空调的遥控器,尽管它也是红外发射的,但是每次按键后,它都会把空调当前所有状态(模式、温度、风速、风向)发送一遍,导致每次发送的码串很长,会导致软件辨识错误。
_V_T_f#g8F3i:
z0
3e'|_o_J_P/^T0 经过比较,我们选择了Girder(v3.3.7)这个遥控软件,它功能全面,而且支持外挂插件,以支持新的遥控接收器和新的操作,从功能上可以说是"只有想不到,没有做不到"。
除了日常操作,此外在幻灯片展示时如果运用遥控器,可以把演讲者从计算机旁边解放出来,从而与观众进行更加灵活亲近的互动,达到更好的展示效果。
_e3G$q-Q_}`0
I_A$b_?
_S_i0
电子爱好者社区_{5z&Y_m7v8o3W)M_W
(图1)遥控接收器的电路方案
9\_^&V_r*^_8w:
u_H0我们的遥控接收器的电路方案取自Girder的第三方插件:
"SFH-56pluginforGirder"。
该电路图(图一)简单到只有六个元件,而且可以直接去掉发光二极管(电源指示灯)和100Ω保护电阻以进一步简化电路。
主要元件有HS0038A红外遥控接收头、5V稳压管(1/4W)、发光二极管、9针串口插头、电阻(3.3KΩ和100Ω各一)、电解电容(0.1μF,10V以上)、万能印刷电路板、线材(至少3芯)以及电池盒(充当外壳)等一共不超过10元。
电子爱好者社区_P-~u_W1r_M_U_w
-z+h4`z_Q5y6h0
_a,H,oR_n"i0(图2)
C_J_V5D_o_v_o_A3m0只要有焊接简单电路的能力,按照电路图,很快就可以完成电路的制作电子爱好者社区Z_n,W-|_~_n_z+m_gj
_{_K*E_@_}0
_E0A'G/M:
D_E_|_^0(图3)
(]G/?
9c_b4y_M/L/V0之后把电路板装到拔去触点铜片的电池盒里,并在电池盒的相应位置开孔,因为整个电路都很轻,所以可以在电池盒空着的一边放入一节没电的电池(虽然没电,但还是要防止电池短路,否则电池漏液导致短路,可能通过串口损坏主板),硬件制作即告完成。
_xM_f0OJV*[0
+i"d_c_M_L%Z0
_q_X_S_`_@\
j_P0(图4)
_n_p8{_U_X&H_Z_M_I0测试遥控器
4x)Q:
[_o!
L0电子爱好者社区_m5E_H_~#C_z8R_h_Q_x_Z
经过测试,该接收器的有效接收范围在7米左右,而且灵敏度非常高。
试验发现,原本步步高DVD的遥控器必须正对DVD机操作才有效,而与自制的接收器配合使用时,可以实现非指向操作(即接收器可以接受经过墙壁多次反射的红外线信号),大大方便了我们的使用,也使接收器的摆放更加灵活。
最后,综合考虑按钮数、按钮排布、手感、大小等各方面因素,我选用了闲置的建伍桌面音响的遥控器(49键)电子爱好者社区
i_Q,S_sd_q_T_^_q
电子爱好者社区0Z.@2V*H_o5`:
Q_x0s_z.k3j
软件设置电子爱好者社区_y4o_v&@_L)v0s
电子爱好者社区_F2x&qS1A"K_w_m_f_\
下面的软件设置工作是最重要的,首先,把"SFH-56pluginforGirder"这个插件(文件名"igorSFH-56Plug.dll")拷贝到Girder安装目录下的plugins文件夹下,然后进入Girder,先点击File菜单中的Settings,在Settings窗口中的Userinterface标签页中把Language改为Chinese,点"Apply"按钮电子爱好者社区_D6FI_E0r_D
_e!
xHO,f7t0p:
E_v&[0
电子爱好者社区s3v5Q7H4I-I_|_v
(图7)电子爱好者社区8{,V8A$}f
在"插件"标签页中选中"IgorSFH-56device",确定后,电子爱好者社区_R,j!
i)]_O
电子爱好者社区-nhu+|*S2@_[
电子爱好者社区6|+|E_R5}"__R_|:
l
(图8)
_Q8C5WD_m_d#fl0再次进入这个位置,点"插件"标签页中的"设置"按钮,弹出一个IgorConfig窗口,里面按照实际情况选择COM1或COM2口电子爱好者社区_d_W_h_`_rv
电子爱好者社区_A5Tr0H_p5V#@"W
9@_C0f_bN!
G0(图9)
*z_OP4p_l}7cC_U_V0点"OK"退出,到此设置工作完成。
电子爱好者社区_d9?
_'sGk
电子爱好者社区0G'Rf#u)K__GU
接下来,我们就可以根据自己的需要添加命令了,在这里,我们选择一些比较有代表性的命令供大家参考,其余的就可以触类旁通了。
电子爱好者社区#d_G_t.N1b_O2n_k_@
电子爱好者社区_m_s%O1[_ED_Y$]
公共操作:
在Girder窗口左侧的命令区点击右键,选择添加命令;选择要执行的操作,点击右上方的"学习事件"按钮,然后按下遥控器上面你想要定义成该功能的按钮,暗红色的长条区域中会出现接收到的红外命令码
6W,z:
y9n1a&L#W)h0电子爱好者社区4K_P)LS_J
_b
电子爱好者社区#@}%q_O_F
(图10)
_b,N]_i/A
G___`+y0如"1D807A85",而且同一操作可以多次学习,使其支持多个遥控器;最后在"防按键重复等待时间"栏中填写200,这样,当一次按键命令发生后的200毫秒内,忽略同样的按键事件,以防止重复执行操作。
电子爱好者社区$Ku_u_?
_g4x
#I8f5[_T/|8gN
S_^+C01.运行程序。
这里以MediaPlayerClassic为例,点击右边操作区的"系统"标签页,选择下拉菜单中的"执行",点击"浏览"按钮,在弹出的打开文件窗口中选择我们相应目录中的"mplayerc.exe",最后点击"应用"按钮。
1P+R_p'O_s_M"[_w0电子爱好者社区_D_KO
o_kP
_K_L_j$N/t_i9u4m0(图11)
5I_dD"N+T_m_x02.模拟键盘按键。
前几步同上,只是改为点击右边"键盘"标签页,在"句子"文本框中输入要模拟的按键,并根据需要决定是否选中Ctrl、Shift和Alt,如果要定义无法打出的按键,可以在"特殊键"下拉菜单中进行选择,特别要注意回车键是"RETURN"而非"Enter"。
配合播放软件的热键功能,通过按键模拟就可以实现影/音文件的播放/暂停/下一首/快进/全屏等功能。
_z__5I*C5j1r_V0
3{_sx_Wg__7s03.更改音量。
打开"系统"标签页中的下拉菜单,选择"调整音量",点击右边的"音量"按钮电子爱好者社区w0V6|.n_Q_d.{_d_U4?
l_H(o$KG_ul0
电子爱好者社区p9@#w_o9F)R_M_c*Y
(图12)电子爱好者社区_w2]k_D8}-O+a
选择"主音量",点确定按钮
-y
U9zg__'Xd0
9U_K(G.x_z_m_^0
_jq_e*i
G_U;l+e0(图13)电子爱好者社区_\6Z_H3z_~"O.m
"步长"填写"2621"(2621代表增大一格音量,-2621代表降低一格音量),并勾选"屏显OSD"电子爱好者社区/o_M#y__P9D-c_s
'y/qeN4Y,Q_C/I0
_}_U_\_A_L_\_Q_B0(图14)
W_L%J_ia6p$b_d_X0用类似的方法还可以实现同样实用的静音功能。
电子爱好者社区S_Q_u5Q[_IV2`
9P$x&w-E_r;k_J04.光驱托盘弹出/关闭。
这是一组互逆的操作,如果设在遥控器的两个按钮上自然简单,可是要多记一个按钮的定义,而且要多占用一个按钮,不如把他们设在同一个按钮上面,还能多空出一个按钮用来定义别的操作。
同一个按钮要定义成轮流执行的两个操作,设置上也有一些区别,首先,添加时要用"添加命令组"而非"添加命令",然后在命令组内再添加一个命令,为了方便识别,改名为"弹出"一类的名字(对功能无影响),然后在"系统"标签页中选择"弹出媒体",并在"文件"文本框中填写光驱的盘符(只写字母,不要冒号),点击该命令
_v_PN%g_m0
_[8{7s/Lv_^_m_Y_s0
电子爱好者社区b_M%L_cXY+I;R'A
(图15)电子爱好者社区_X_G2n_Ef_t8w
按"F6"弹出一个"调整命令响应次序"窗口,把"最大状态值"改为"2","初始状态值"改为"1"。
_p-P+S_Y.K_t}_g0
_v(N_n_N-y_E0
_k7M_D'I5f5|/~0(图16)电子爱好者社区!
s_{8^
u_L2r@"A
另外,在命令组中添加一个命令,命名为"屏显--弹出",点击"Girder"标签页,选中"SimpleOSD",在下面的"图标/设备"文本框中写入"光驱弹出"一类的提示语
*x&k&i&o#|_D9em9Y_kp0
_JV_\3R(@!
i9M6}z1R0
电子爱好者社区-W4h(X_x_I$x
(图17)
_p_[*i,|_@z_z0"最大状态值"和"初始状态值"也同样分别设为"2"、"1"。
因为同一命令组中的命令是顺序执行的,所以用拖拽的方法将"屏显--弹出"命令拖至"弹出"命令之前,使其先显示提示,再弹出托盘。
类似地,创建关闭光驱命令,只不过把"弹出媒体"改为"载入媒体",并把"最大状态值"和"初始状态值"分别改为"2"、"2",同样建立"光驱关闭"的提示语,"最大状态值"和"初始状态值"也是"2"、"2"。
最后选中该命令组,点击"学习命令",把操作定义到遥控器按键上,注意要将"防按键重复等待时间"设为1000毫秒以上,否则肯会连续执行弹出和关闭命令,至此任务即告完成。
这样,按下定义好的光驱弹出/关闭按钮时,状态值在1和2之间循环,并且在屏幕上显示状态提示消息。
电子爱好者社区:
W_w_yM4O"k'p
;h_d_a"W)x*`05.鼠标操作。
从"鼠标"标签页下拉菜单中的项目里面选择需要的功能,进行设定,包括鼠标移动、点击、双击和滚轮的操作,移动/滚动类的项目应在下面的文本框中设定每次移动的步长值(以象素为单位)。
)v6}-OQ0FG_{#p0
1NF'[U
j.y7j'H_N_j(G0总结
5o_`_N_h*A!
o0电子爱好者社区_?
#E;n.L_L#B_u
总之,Girder支持的操作是十分多样的,再加上插件的支持,不仅可以响应遥控器的操作,甚至支持游戏手柄和键盘。
许多更有用、更好玩的功能还有待我们去发掘、去创造。
;bt
?
_U_M0
DIY红外电视遥控器全套制作资料
用AT89S52自制电视红外遥控器电子爱好者社区_U-F_l+V0C/J\E{
红外遥控器发送数据时,是将二进制数据调制成一系列的脉冲信号红外发射管发射出去,红外载波为频率38KHz的方波,红外接收端在收到38KHz的载波信号时,会输出低电平,否则输出高电平,从而可以将“时断时续”的红外光信号解调成一定周期的连续方波信号,再经过1838一体化红外接收头解调便可以恢复出原数据信号。
如图1所示
_?
x)S2w9C#f2{0电子爱好者社区#^$Q_q1q_{_CV
-vJ_S_c_O_t_H7y0电子爱好者社区_Y_S'l_V%c3f_F_d_C_e
电子爱好者社区p_c#R#eZ_CS_vG
红外接收头解调过程如图2所示
;n_]3dY.r"k6H0
f_{(P_\|,P0
X1{9z(ED_}_Bi0
+R_qq_m#I_d_x0解调后的“0”和“1”波形及单片机编码图3图4所示
_L_G_[_p+R8Z_\0电子爱好者社区7H
@%d.t:
k_EZ
_b5B_{/Q"f&m_~0
c_~_B2I&k:
@2S0电子爱好者社区_T#U]7R_K5C_a_u2W7T$C
+C0|"d:
z_K_T0 电子爱好者社区_E7t+L_[)C_A
w_C_q_C_^6W_~$B0
$V
w_q_W4[*jzl0了解了红外接收头解调及遥控编码下面就可以对照图5编写编码程序了,图5是遥控按键1的一段实际编码电子爱好者社区,L2s_S"}_P^_[_w
由9ms低电平4.5ms高电平的启始码,26位系统码,及8位数据码、8位数据反码、23ms高电平及结束码组成电子爱好者社区9I_{1E_@_w_|]5^_dz
电子爱好者社区)eN(F_I_|!
?
1\_D_o
_g/R_m$W:
g9I?
0电子爱好者社区6Q*]Lj([7I
电子爱好者社区_m;e;[/x_V*P7A
-R)nm0J_l5a_S3h:
C_q0
&g#W_ZQ__3m_^_t0电子爱好者社区F_Z_W_O5z_P8|
电子爱好者社区r_V_F_w'Es!
~#}_`o
电子爱好者社区C_@hR6e_a-i
电子爱好者社区_u_B_|
g_S_|*Y_h$u_to_J
(Jn_r3s_]_h(]#m9\8N0 电子爱好者社区5GqY9J;IH)K%k
电子爱好者社区-yJ*M7x_T
-r,w_Z_c_?
_C_K0电子爱好者社区)p_`_`_S7K_u:
_
*****************************************以下是遥控完整程序***********************************************
_N,k_T_F%}9T+X_P_}0电子爱好者社区P~_v1T-Q_f
电子爱好者社区!
m3w_Y$c_@#q9h_g
#include
p9y'm_w9T_Q_|;~0#defineuintunsignedint
_~_L)V&UQ_SK0#defineucharunsignedchar电子爱好者社区_P.h_v_T7s_b_`
bitirout;//红外管状态
_`_m8OL
l#d*~_x.f_m0sbitir=P1^7;//红外发射管控制脚电子爱好者社区De!
K8I_k!
B
uintcount,set_count;//中断计数,设定中断次数电子爱好者社区_]5J_s_\_s/x5Z_V
bitflag,keyflag;//红外发送标志,按键标志位电子爱好者社区_E_M_Z6c&U8\_j
ucharirsys[4]={0x1a,0xa1,0xdc,0x03};//26位系统码,最后一个字节只用2位
nx,B1i2?
2Q*Z_b_g0ucharircode,irdata;电子爱好者社区_Z_j1H2qy;`*Xo
/**********************************************
_M_H-K0O_{_VES/G0 延时1ms电子爱好者社区f4@_|;?
x_W
***********************************************/
4E_U"D*?
)f&Q*q
R0电子爱好者社区v_O%r_i_?
+[_e
voiddelay(uintz)//延时1ms,晶振22.1184M
@%P_N_l2F_|:
@,M0 {
(B?
3z*|0`
m0 uintx,y;
_U_s;`3V_g;@0 for(x=z;x>0;x--)
;u_n"k1Wi_Hv0 for(y=225;y>0;y--);电子爱好者社区_b8I"Q_a_CZ'G_p"{_M
}
_m2CB#J
A{w\0
_N_Ea7B_S_@4`_f_EQ0/**********************************************电子爱好者社区_@
B_m6x(|7WCS
按键扫描电子爱好者社区_x/B-h8p3l_c_G"L
R
**********************************************/
;g)Hw_fev_o_n__0
"D+X,Pnw0voidkeyscan(void)
;__uG,C!
d.]j_g0{
"p!
k1Y_N;[@_G/C_C'c_S*F,O0 ucharkeytemp;
2d(`_j8_e2z*h_j_F0 P3=0xff;
/r_Mr9\-A0 keytemp=P3&0x0f;
.w/o_O&TRE_J_C0 if(keytemp!
=0x0f)
"a1OU_R#d
x2Ch_}0 {
_N_T_@Y_l_r-G2yy?
0 delay(20);
;l_HE_Y\H"^K0 keytemp=P3&0x0f;
_u_d
}m:
@6~-c_`_a_~0 if(keytemp!
=0x0f)电子爱好者社区_DP*Rb_J_s_I_v
keyflag=1;//有按键标志
_w5b-u_w.G_b0 switch(keytemp)
o}___P8MW0 {电子爱好者社区/v_@'d`5z#r
case0x0e:
irdata=27;break;//按键1对应该遥控器P+的键值电子爱好者社区S,s_]I4q8`_n
case0x0d:
irdata=26;break;//按键2对应该遥控器P-的键值电子爱好者社区+G_mK_~_RN7LO&y
case0x0b:
irdata=31;break;//按键3对应该遥控器VOL+的键值电子爱好者社区U_hh*a$rZ9C|_T
case0x07:
irdata=30;break;//按键4对应该遥控器VOL-的键值电子爱好者社区9~
O_p_^_k_*l_e!
m*\
}电子爱好者社区_P'@_]V_q_g1t_w
S_Q-M_G2d!
C_D#p0 电子爱好者社区_\_W_V)W_i_k_D
v!
U_|
}电子爱好者社区.`2T1G.HR7?
*E'H_?
g
'r6U,[$@_`:
f7a:
p*z_H_@0}电子爱好者社区_`#n_me_U_I_{
/*******************************************
_Z_a&M
B$W1a_X_|_A0 发送8位红外数据
:
y8J:
z/c_HL.~0*******************************************/电子爱好者社区9F,a;r_Zr_W_z_f_D_Q_`
voidsendcode_8(void)
_UI_`g_V"b0{
e_h_Qv"r_d{5e0电子爱好者社区_|_G_^)|y
uchari;
_C$p_p_@_C0e
U0 for(i=0;i<8;i++)电子爱好者社区%k_|3d&a_c(L
{电子爱好者社区!
u'o%o'd_U!
^_e_V
电子爱好者社区*K7`m_}_Cx_S_f2\
set_count=28;//发送0.56ms 38k红外波(编码中的0.56ms低电平)
+\_]6c(e;I_i_C_F_X_L
O0 flag=1;电子爱好者社区5|K_b_O1E0?
count=0;
_s6l6Aw8]$G0 TR0=1;
b%n_Z/^3X_[4~q0 while(count eQ6H_E)_ TR0=0; #a&U&n-m_F_b2z-Z0 if(ircode&0x01)//判断红外编码最低位,1宽的高电平,0窄的高电平 &Q_? _m)l: k_O*E_M_E0 {电子爱好者社区j7v_t5Z9Jf&d set_count=120;电子爱好者社区M*J_i_p2^_}_d_i)m_P_T6A }电子爱好者社区9d_V)v0j_N5\_Z7t'i else 'm'a8Q0P_`2w_j$x)V0 { G_m: r E){_A0 set_count=38;电子爱好者社区4^*^_V,h,c } _b)B.T&Ef2y_h! P0 flag=0;电子爱好者社区"i8i__n;O_F'L count=0; _M_gR_{"S_ru0 TR0=1; -u H_Y4uB_X+P+p_a0 while(count M`_L6W(? 4v_]%l0 TR0=0;电子爱好者社区EN_f1e_n Cf_o ircode=ircode>>1; 7^_H%V_}+N_s0 }电子爱好者社区9d u_iU5b_\ } w-a$UU_L_W_M_l0A_rI0电子爱好者社区: ]+J;{&]q_m5L_h6s_a 8J_M4k_t_d,l_B0/******************************************* 3w"q: m_\U(aI)Q0 发送2位红外数据电子爱好者社区_K_q_\7S_|%\0`r/V *******************************************/电子爱好者社区_Tj7~__3~_B voidsendcode_2(void)//前26位系统码最后两位电子爱好者社区_l_Gp/t_A8s { 2M ix_Q_X/Q0电子爱好者社区_g#T_d_FU uchari; _ju)c%n)o: o_K_j0 for(i=0;i<2;i++) _A&l.y.t'B: h'R'l0 {电子爱好者社区^5w\'o.Y9a#i_Z1Q m: x6F&I~0 set_count=28; /F: T5D_RL_G,s: `0 flag=1; %je_m+[_E$__~0 count=0;电子爱好者社区_i_d_m^d_\.mb_D TR0=1; Y8[-t_n)p_KE0 while(count _v_c_h_s_^_T0 TR0=0; 0D_P9tLT_v;t_r_IG0 if(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 普通 红外 遥控器 遥控 电脑 电路设计 分析