切换到宽版
  • 48638阅读
  • 190回复

[AVR]三个零件,给大金家用中央空调加装遥控功能 [复制链接]

上一主题 下一主题
在线maidoo
 

发帖
579
M币
6890
专家
19
粉丝
66
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2011-08-28
— 本帖被 發騷友 设置为精华(2013-01-15) —
1.    原始需求
搬了新家,用上了大金中央空调,果然如其宣传的那样,温度均匀,不再有忽冷忽热的情况,可以一直开到天亮。可是总归会有人在床上,又想开关空调的时候。问题是大金的空调控制面板不带遥控功能的,就是下面这款,也是市占率最高的,这时候就想到,要是能随手操起电视机遥控器就能关闭空调该有多好啊!


2.    总体方案
心动不如行动,我用3个电子零件就实现了这个功能,它们是1)Attiny13 AVR单片机,SOP8封装的;2)SPH1738红外接收头;3)5V直流蜂鸣器


仔细想想我的需求,其实我只要能遥控到面板上的那个“电源开关”按键就基本够了,单片机IO数量有得多的话,在加上”风力大/小“按键,温度加减键就不要了,老远的看不清LCD上的显示度数,就不能瞎按。另外,加装了遥控,怎么知道已经正确收到了遥控指令呢,那就需要一个蜂鸣器,遥控按一下,它响一下。


3.    硬件设计
具体实现上就比较简单了,AVR单片机解码电视机遥控器的某个按键指令,在AVR对应的IO脚上输出一个脉冲,IO脚连到要遥控控制的那些按键上,一个脉冲相当于按一下按键。空调的控制面板里面也是一个CPU,通常都是电阻在IO口上拉,对地接按钮。按钮按下产生一个低电平信号,所以我的AVR解码出正确的遥控指令后,输出一个大约200ms宽的低电平脉冲就够了。


整个控制面板不到1cm厚,所以加装的器件体积必须小巧才行。AVR系列单片机的最低端芯片有一款仅8引脚的tiny13,体积小巧,内置RC时钟,非常适合。这里我用上贴片封装的,可以直接贴在原PCB上,飞几条漆包线就够了。8个脚中,去掉电源地,还有6个IO脚(PB0~PB5),其中除PB5一般保留为ISP下载的reset外,还有5个IO。红外输入占1个IO,也就是最多可以控制4路按键,如果需要要蜂鸣器指示的话,还有3路按键可控制。

另外,遥控指令码不能在AVR的程序中写死,应该能自学习。Attiny13有64字节的EEPROM,正好用来储存学习到的指令码。学习方法我是这么设计的:按住空调面板上要学习的那个键,按住5秒钟后蜂鸣器长鸣,表示AVR进入学习状态,这时放开按键,拿电视机的遥控器对着红外接收头按一个键,就学好了,蜂鸣器也不叫了。为此,AVR的IO脚平时要处于input状态,随时准备检测按键长按事件,如果解码出正确的红外指令,把IO切换到output状态输出低电平脉冲后再切回input状态。


这是改装前的控制面板的前面PCB,能看到各个按钮都是共地的。MM1192是三菱公司的一款家电通信接口芯片,它使得控制器和主机的之间的双向通信信号以及供电线,都复合在一对电缆上,这使得大金的室内控制面板安装的时候非常方便,两根线一接完事。万用表测试了一下,找到了MM1192提取的供电输出,也是+5V的,那就很方便了。




这是改装前的控制面板的背面PCB,右上的那个黑的线头是温度传感器。




如下是安装好零件的内部图,tiny13的VCC、GND两个脚直接焊在PCB上固定,其它的脚都翘起来,好飞线。

红外接收头安装在前面板的有机玻璃后面。我的办法是先把有机玻璃揭下来,在前面板的合适位置打孔固定红外接收头,然后把有机玻璃上对应位置的漆刮掉,使得红外线能透过去。然后盖上有机玻璃。手工好的话,外观基本上看不出。看前面第一张图,就是我最后完工的样子,仔细看的话,能发现“DAIKIN”的字母“D”有点残缺,那就是为红外接收头刮掉的。


最后安装上墙了!




4.    软件设计

这个软件,是2011年初改造SANYO电取暖器添加遥控功能的时候写的,不修改直接用就行。虽然是用内部的RC振荡器,但是由于AVR的时钟设计有补偿机制,且程序设计有较大的容差空间,所以就算是1月份室温5度的时候测试的定时数值,在今年夏天30度室温下依然工作良好。


红外解码是用INT0中断结合状态机跃迁完成的(非阻塞式的中断),8位定时器T0计时步长为206uS,用作整个软件的时钟基准。T0溢出中断用于处理一些超时情况。主程序循环查询按钮状态和等待红外解码OK的标志(IR_Ready),并处理比较指令码、控制IO输出、开始学习等事务,个人感觉这样的结构还算清晰易懂。其实不用说别的,光看看注释就能大概了解代码功能了。代码编译后860多字节,ATtiny13有1024字节的代码FLASH,还有些空间能扩展代码功能。
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共25条打赏M币+129专家+1
hy425 专家 +1 - 2013-08-16
ayumi7 M币 +9 謝謝分享 2013-01-19
gyp2000 M币 +9 優秀文章 2012-12-28
549646610 M币 +5 可以直接找他们公司收钱了 2012-08-06
wckwok99 M币 +5 謝謝分享 2012-08-03
zhshxi9999 M币 +5 - 2012-06-14
11211 M币 +4 謝謝分享 2012-05-18
yanchao130 M币 +6 很牛 2012-02-29
xrsxrs M币 +5 優秀文章 2012-02-24
dkxj213 M币 +4 支持原创 2012-02-24
离线e.woods

发帖
3511
M币
460
专家
16
粉丝
119
只看该作者 1楼 发表于: 2011-08-29
模拟按键,不错的想法
离线wzr200408
发帖
109
M币
482
专家
2
粉丝
11
只看该作者 2楼 发表于: 2011-08-30
学习了,很强大
离线gsmantenna
发帖
1
M币
-17
专家
0
粉丝
0
只看该作者 3楼 发表于: 2011-08-30
牛人一个
学习了
离线liu5213855

发帖
22418
M币
3406
专家
106
粉丝
1374
只看该作者 4楼 发表于: 2011-09-14
楼主好创意,

这增加功能,没有很好的基础知识,以及动手经验和能力,还真的弄不好~
离线topic
发帖
364
M币
387
专家
1
粉丝
21
只看该作者 5楼 发表于: 2011-09-14
感觉问题。不大。
不过咱单片机不熟啊
离线国泰科技

发帖
57598
M币
46
专家
302
粉丝
1035
只看该作者 6楼 发表于: 2011-09-14
技术型人才啊。学习!
离线wjcschen

发帖
31
M币
133
专家
1
粉丝
2
只看该作者 7楼 发表于: 2011-09-16
牛人,佩服,想跟你学单片机了。
离线zhou1946

发帖
535
M币
2284
专家
1
粉丝
77
只看该作者 8楼 发表于: 2011-09-17
楼主技术好!!   向楼主学习
离线liaozheny

发帖
411
M币
1813
专家
2
粉丝
42
只看该作者 9楼 发表于: 2011-09-19
不错啊,学习了
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个