矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始


搜索
查看: 6589|回复: 26

自制长安悦翔锁车自动升窗器

[复制链接]
     
发表于 2015-9-25 19:08:36 | 显示全部楼层 |阅读模式
   曾经试过晚上有后窗开了,停车时没发现,结果后窗就开了一晚,还好没让小偷光顾。后来这种事还陆续发生了一两次(主要是晚上无灯,停车时随便看一眼就觉得好像是关了),于是决定安装自动升窗器。先从网上买来了专用的升窗器,有专车专用插,在主驾的玻璃控制器上插上,再接多锁门线跟ACC线,就能正常工作了。由于升窗器说是有电流检测功能的,当玻璃升到顶时就会自动停止,起初没有多想,后来发现这个电流检测居然是假的!原理就是锁车后每个窗固定升窗10秒左右。这样带来的问题就是,若玻璃已上升到顶了,但这时升窗电机还是供电的,电机就会出现堵转。堵转带来的后果就是电流的上升,就我自己的车实测的结果上看,正常升窗时电机的电流大约在5--8A,但堵转时,电流可以上升至15A左右。大家想想,若四个窗都上升到顶了,这时还在供电,总电流将接近60A!由于此时车辆处于熄车状态,所以这电流全部将由电瓶提供, 每次锁车都这样会对电瓶有着不少的伤害,另外堵转时对电机还有升窗拉索都是不利的。这时就只有把升窗器拆了,自己盘算着做一个带电流检测功能的升窗器。
     先说说悦翔这车的玻璃升降原理,四个电动窗的升降最终决定权在BCM手里,也就是实际升降控制器是在BCM里面的,车子熄匙后,四个电动窗还有1分受控时间,这个设计估计就是方便车主熄车后发现有窗未关,这时可以不用拧匙而控制电动窗升降。维修手册中对BCM控制简述,原厂设计也是带着一定的安全保护的:

说明.jpg

     还有电动窗有一个安全保护就是当同一个窗同时升窗信号跟降窗信号输入时,则执行降窗操作。起初还在想这个功能是怎么实现的,后来看到电路图,就马上明白了。车窗控制线若通过一个电阻(1.2K)后接地,则执行上升功能,若直接接地,那就执行下降操作。若同时有两个信号输入,那最终到达控制线上的结果依旧是直接接地,所以也是执行降窗功能。

主驾控制.png

   从原车的电路设计上看,四个升窗电机供电分成了两个回路,分别用两个保险丝保护。左前左后共用一个保险丝,右前右后也共用一个保险丝,所以那个成品的升窗器即使有电流检测功能,也无法实现功能了,在一个电路分支里并不能检测到其余三路分支电流情况。而通过实际拆解,发现这个升窗器设计上有更不靠谱的地方,就是当它工作时,会向ACC线馈电!由于其安装说明里面并没有说到这一点,所以一般只会以为这个ACC线只是提供一个电压的信号给控制器,并不会用较粗的电线,这时当控制器向ACC线馈电时,车内接着ACC线的电器都会工作,如音响、行车记录仪之类(这就是有车友发现当锁车自动升窗器工作时,车内的音响又会自己响起来十秒左右),电流较大时可能会造成加接的电线发热甚至自燃。
     而要做到真正的电流检测,笨一点的方法就是在每个升窗电机上都装上电流检测模块,当检测到有堵转电流时,就断开电机的供电。另外有电流检测模块后,要加上防夹功能也不是一件难事了。先从万能的TB上买来电流检测模块,这款还是带比较输出功能的,简单地说,就是通过调节电位器,当检测端电流值大于一定程度时,比较信号输出端就会输出一个高电平(5V)。这样要做的事情就简单多了,把模块接到升窗电机上,然后调节电位器,调到当堵转时比较信号输出端输出高电平,然后推动继电器吸合断开电机的供电。

电流模块.jpg

    原本以为这只是很简单的东西,起初还打算大约花一两个星期的业余时间就能把整套系统做出来了,但实际上整套系统花了一个半月的业余时间才造出来,当中有硬件搭配的问题,也用软件程序上的设计问题。
     先做了除主驾门外,其余三门的堵转电流检测功能。原理就是利用TB买到的电流检测模块,升窗电机接到继电器的常闭触点上,当有堵转电流时,控制继电器吸合约2秒使电机断电。而实际上,当电机从静止到启动的一瞬间,启动电流也是非常接近或等于堵转电流的,所以必须把这个情况考虑进去。控制电路还是选用了我比较熟悉的单片机控制,硬件简单,各种时间设置可以通过程序轻松改变,功耗低而且可以一直24小时工作。这时测量了一下那个从TB买到的模块,工作电流近30mA,这个是不能24小时工作了(四个门加起来就120mA了),静态电流太大,很容易把电瓶放电放光。

左后门.png

电路设计如下,单片机依旧采用15F104W,通过接收电流检测模块的输出再三极管,用三极管控制继电器。下图中3表示接到插座上的第三脚,1是表示把插座1线断开,通入电流检测模块后再接回。

电路2.jpg

做出来的实物图:

20150815_085527.jpg

20150815_085543.jpg

把做好的模块安装到左后门上,最后要包上绝缘胶布防止短路。

20150813_143016.jpg

   同样的模块做三块,分别装到右前、右后、左后门上,接法都是一样的,这里就不再发图了。


单片机源程序(可能是论坛的原因,原本编好的程序粘上来就所有的缩进都自行取消了):

#include <reg52.h>
#include <intrins.h>
unsigned char flag;
sfr P3M1=0xb1;
sfr P3M0=0xb2;
sbit input=P3^2;           // 电流检测模块的输入端
sbit output=P3^3;        // 控制继电器的输出端
void delay(unsigned char ti)   //延时函数,不多说
{
unsigned int a;
unsigned char b;
for(b=ti;b>0;b--)
for(a=50700;a>0;a--);
}
void chufa(void)   //触发功能
{
output=1;              // 输出高电平让继电器吸合
delay(40);              //延时大约1.5秒左右
output=0;             // 输出低电平释放继电器
}
void exint0() interrupt 0  // 中断0输入口
{
EX0=0;
delay(3);                        //若有中断输入,先进行一个短延时,作用是消除输入抖动
if(input==1)                 //若输入确定为高电平,则表示电流检测模块检测到堵转电流
chufa();                        //运行触发程序
EX0=1;
}
main()
{
flag=0;
input=1;
P3M0=8;
P3M1=0;
output=0;
IT0=0;
EX0=1;
EA=1;
while(1)
{
PCON=0x2;   //由于是24小时工作,所以单片机平时要进入停机模式,节省电能
_nop_();
_nop_();
}
}

评分

3

查看全部评分

     
 楼主| 发表于 2015-9-25 19:10:33 | 显示全部楼层
   三个门的模块都做好后,就到最重要的主驾门的综合控制了。主要是利用车子本身的功能,在熄车后还有1分钟时间可以直接控制四窗,自己的用车习惯,基本上熄车后1分钟内都会下车并按下锁车键了。逻辑设计,同样是检测ACC线跟门锁线,当ACC线电平为低,这时有锁门信号,就触发升窗功能。 这次单片机选用带内带AD功能的15W404AS单片机,用这个单片机的原因是打算利用它内置的AD功能,可以做成带防夹功能,但后来由于手头上的电子零件不足,留着以后有机会再加进去吧。电路图如下,特别说明一下,我的车门上的ACC感应线是自己另外做电路做的,所以电压是6V,若是接正常12V的ACC电线,13脚上的1K电阻应该换成9K的电阻,以免输入电压过高把单片机的IO口烧掉。

20150924_113545.jpg

利用原来的成品升窗器带的接口线束,就可以无损安装了。最后制成的电路板:

20150924_095614.jpg

20150924_095532.jpg

   值得庆幸的是,程序调试过一两次,就基本能按照设计目标运行了。习惯的源码公开,供有兴趣的车友提出改进意见。

#include <reg52.h>
#include <intrins.h>
sfr P1M0=0x92;
sbit LOCK=P3^3;
sbit ON=P3^2;
sbit ADP=P3^4;
sbit RR=P1^2;
sbit LR=P1^3;
sbit RL=P1^4;
sbit LL=P1^5;
sfr P1ASF=0x9d;
sfr ADC_CONTR=0xbc;
sfr ADC_RES=0xbd;
bit flag;
void delay(unsigned int ti)  
{
unsigned int a;
unsigned char b;
for(a=ti*15;a>0;a--)
for(b=110;b>0;b--);
}
void ADC_int(void)
{
P1ASF=1;
ADC_RES=0;
ADC_CONTR=ADC_CONTR|0xe0;
delay(1);
}
unsigned char ADC(void)
{
ADC_CONTR=0xe8;
delay(1);
while(!(ADC_CONTR& 0x10));
ADC_CONTR&=~(0x10);
return ADC_RES;
}
void exint1() interrupt 2
{
bit fa;
float vol;
unsigned int t;
ADC_int();
fa=INT1;
EX1=0;
if(fa==1&&ON==0)
{
delay(5000);
RR=1;
delay(1000);
RL=1;
delay(1000);
LR=1;
delay(1000);
LL=1;
delay(1000);
for(t=200;t>0;t--)
{
vol=(ADC()*4.9)/256;
if(vol>3.8&&LL==1)
LL=0;
delay(20);
}
RR=0;
RL=0;
LR=0;
LL=0;
}
EX1=1;
ADC_CONTR=0;
}
void exint0() interrupt 0
{
EX0=0;
flag=INT0;
EX0=1;
}
main()
{
LOCK=1;
ON=1;
ADP=1;
RR=0;
RL=0;
LR=0;
LL=0;
P1M0=0x3c;
IT1=0;
IT0=0;
EX1=1;
EX0=1;
EA=1;
while(1)
{
if(flag==0&&ON==0)
{
PCON=0x2;
_nop_();
_nop_();
}
}
}
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2015-9-25 19:13:23 | 显示全部楼层
本来拍了个工作的视频的,但发现没有了发视频的选项,那就算了,看发个连接行不行:  

http://v.youku.com/v_show/id_XMTM0NDYzMjE1Mg==.html?from=y1.7-1.2

后记:刚开始考虑做这个东西的时候,有朋友建议检测窗是否升到顶,可以用简单点的方法,如在窗轨道上安装触点开关,当到顶时就接合开关做信号,或更简单点的用干簧管做检测,那只要在玻璃轨道上适当的位置粘上磁铁就可以取得信号了,这些都是非常不错的建议,简单实用!只不过我的车四门都贴了隔音,不想再撕,所以就采用了最麻烦的电流检测模块。由于自己的模拟电路设计上功底很浅,所以很多在试验板上做出来调试成功的功能,实际装上却完全不能正常工作,这也是整套系统花了一个半月的业余时间才造出来的原因,当中要不断找出设计上的失误,再调试,反反复复,当然,成功后也能明白到自己的不足,也是一个学习进步的过程。
回复 支持 反对

使用道具 举报

发表于 2015-9-25 21:26:53 | 显示全部楼层
内容
竟然悦翔是BCM控制,而到35就是纯硬件控制了。
回复 支持 反对

使用道具 举报

     
发表于 2015-9-26 10:20:40 | 显示全部楼层
支持折腾,加分加精鼓励!  但是停车回头看以下车窗也不是难事吧? 停车后习惯绕车一圈。
  
    说一下没有考虑的问题, 车子随着使用年限的增长,电动窗的升窗阻力越来越大 由此电机电流也越来越大……  当到达极限值的时候电流检测能否判断是否真的是到顶堵转还是玻璃卡滞?   特别是下雨天,电机升窗阻力非常大。  一点见解
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2015-9-26 18:38:40 | 显示全部楼层
无烟男人 发表于 2015-9-26 10:20
支持折腾,加分加精鼓励!  但是停车回头看以下车窗也不是难事吧? 停车后习惯绕车一圈。
  
    说一下没 ...

谢谢鼓励!!停车时倒是会在车里会望一眼窗,但基本上落车一锁就直接走开了…… 电流检测芯片的最大值可以到达20A,量程是够的了,暂时的电流检测处也流有了一定的余量(大约要电流到达12A左右才判定为到顶),若以后升窗机构出现问题窗未升到顶也有12A的电流,那就只能拆出来调节模块上的电位器了。原文上也忘了写上了,电位器调好后,我是用3M胶贴住的,防止在使用中电位器改变位置。
我平时一般都会不定期向升窗器的导轨喷点润滑剂一类的,所以车子到现在4年半了,四个窗的升降都很顺利,没有异响……
回复 支持 反对

使用道具 举报

发表于 2015-9-26 20:10:35 | 显示全部楼层
正好长安车。。
路过看看
回复 支持 反对

使用道具 举报

发表于 2015-9-27 00:44:43 | 显示全部楼层
帮顶  学习了!
回复 支持 反对

使用道具 举报

     
发表于 2015-9-27 21:45:25 | 显示全部楼层
建议整个电路板用结构胶涂满,就象洗衣机程序板一样,用胶密封电路,可防止进水、漏电、短路、腐蚀,还抗磨。

赞楼主一个,极强的动脑与动手能力!强帖!
回复 支持 反对

使用道具 举报

     
发表于 2015-9-29 08:04:15 | 显示全部楼层
会动手就是好  应该省不少钱
回复 支持 反对

使用道具 举报

     
发表于 2015-9-29 09:43:33 | 显示全部楼层
我的远景用通用的升窗器带电流检测,不知道你用的是那种升窗器。
这种升窗器是直接控制升窗电机的,不会通过BCM控制,不知道你的车型会不会通过BCM控制
下图中右上角就是过流检测取样电阻
9.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2015-9-29 19:36:48 | 显示全部楼层
志远美景 发表于 2015-9-29 09:43
我的远景用通用的升窗器带电流检测,不知道你用的是那种升窗器。
这种升窗器是直接控制升窗电机的,不会通 ...

你这种直接控制升窗电的升窗器应该是可以达成有电流检测功能的,不同的车型升窗控制的设计有所不同很正常,我的那款车从电路设计上看,想就在主驾上装一个控制器而可以得知其它三窗的电机电流,是不可能的事,这也是我只能在别外三个窗加装电流检测模块的原因了。想知是否真正电流检测也很简单,在它自动升窗时,人为用东西阻档一下玻璃上升,若马上停止上升,那就是电流检测有作用了。
回复 支持 反对

使用道具 举报

     
发表于 2015-9-30 11:08:43 | 显示全部楼层
我买tb上的改装件加假的,试验过有电流检测模块功能,但是也有偶尔出现某个窗子不到位的情况...反正尽量用眼睛看看
回复 支持 反对

使用道具 举报

发表于 2015-9-30 11:26:28 | 显示全部楼层
支持折腾
回复 支持 反对

使用道具 举报

     
发表于 2015-10-6 11:01:12 | 显示全部楼层
对于楼主的技术我只有膜拜,但是我觉得车上自动化功能越少 故障率越低,电子产品越少以后越省心
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1

蒙公网安备 15040402000005号

GMT+8, 2018-10-20 14:14

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表