科鲁兹遥控器延时3秒开启后备箱的改造,已经稳定运行20多天!

2009年第一批车升级了最新的车身控制模块程序也无法实现按3秒遥控器开启后备箱的功能,为了避免今后再因为不小心按压到遥控器误开后备箱,导致物品丢失的情况,决定自己动手改造这个延时启动功能。

 

延时开启后备箱改造的思路:

后备箱的开启电机的驱动电压是12V,剪断12V的正极,用光耦接入单片机的一个IO管脚实时检测有没有电平的变化,如果有就启动延时程序,2秒后驱动一个小继电器,接通剪断的正极3秒钟,3秒钟内再按遥控器的时候就直接的驱动后备箱电机,开启后备箱了。接通3秒过后复位,继续待机,等待下一次信号。改造后,后备箱的手动开关的开启方式与遥控器一样,也需要按一下,等2秒后再按一下才能打开后后备箱。,此方案要给单片机一直供电12V,待机状态功耗6.5ma左右(去掉电源指示灯,待机功耗3.5ma),电流很小,用电量可以忽略不计了,不会导致电瓶亏电的。

原车的功能是需要一直按压3秒,我们的改造方案是按一下后,单片机开始工作延时,0-2秒钟内再按无效,在第2-5秒之间的时间内再按一次才能开启后备箱,请大家讨论!

 





淘宝找了一个成品的单片机板子28元
12V继电器控制模块),看了一下硬件基本满足我们的要求,今天把程序代码写好了,代码在下面,用电流表测试了一下待机状态6.5ma(去掉电源指示灯,待机功耗3.5ma),继电器吸合状态是45ma,电流很小,可以忽略。

**************************

单片机工作时序:开机就进入待机状态,等待开启后备箱的信号,有信号来,启动延时2秒后开启继电器,时间再走3秒,关闭继电器,进入待机状态,继续等待后备箱开启信号
**************************
后备箱的插头共3根线,一根是负极线(黑),一个是后备箱灯的开关(紫灰色线),一个是后备箱电机的正极(兰黄色线),黑表笔放在黑色线,红表笔放到兰黄色线,按遥控开启后备箱,可以看到12V的一个短暂信号过来。

***************************

今天上午已经安装完毕,测试跟我们设计的完全一样,很满意,达到预期设计效果。

上图,等待测试其稳定性!,今天拆掉单片机板子上的R1电阻,让电源LED灯不再费电,测试了一下电流节省了3ma,目前待机电流只有3.5ma,十分的理想,很满意!
从这个模块的右边插座内的红线取的12V正极电源。

12V正极取电处

12V负极取电处,在尾灯处取电,黑色线就是负极

后备箱电机的启动电源线,兰黄色线,下面的是电源信号输入端,上面的是输出到电机的线

接好的图,临时放在这里测试一下单片机稳定性,过段日子稳定后,弄个小盒子装到塑料盖板内就好了,

合计就4根线,12V电源正极,12V电源负极,信号输入,信号输出,接线比较简单,(信号输入,信号输出就是把原先的控制后备箱马达的蓝黄色线剪断,用这个小模块接管了,一端是输入,一端就是输出了)

目前看已经稳定运行20多天了,从没出现过故障,大家可以大胆的改造,应该不会有问题。买这个控制模块的时候只要把我下面的程序代码复制给卖家,让他帮你烧写上这段程序就可以了,烧写代码是免费的。



**********************

 
控制板子的原理图

***********************

C语言程序代码,初步测试可以实现我们的功能,就等检测12V电源接在哪里更合适!

***********************

/********************************************************************
实现功能:(科鲁兹车遥控器防止误开后备箱程序)
        检测到有按键,启动延时2秒。然后开启继电器,接通后备箱电机电源的通道,
如果在第2-5秒内再有按键就直接驱动开启后备箱,超过5秒无按键,切断后备箱电源通道,
返回等待按键。

待机状态6.5ma电流,继电器工作时45ma电流

使用芯片:STC15F104E
晶振:12MHZ
编译环境:Keil C51
*********************************************************************/
/********************************************************************/
#include<reg52.h>          //库文件

#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型

/********************************************************************
                            初始定义
*********************************************************************/
sbit  OUT1= P3^3;     //定义单片机P3口的第3位 (即P3.3)连接继电器
sbit  IN0 = P3^5;     //定义单片机的P3.5口为输入端。
sfr INT_CLKO = 0x8f;  //声明特殊寄存器的位置
/********************************************************************
* us毫秒级延时函数 *
调用函数必须给延时函数一个0~65535的延时值对应0MS到65535MS
/*************************************************************/
void Delay (unsigned int a){    //需要输入变量值0~65535
  unsigned int i;
  while( --a != 0){             //i 从0加到600,CPU大概就耗时1毫秒
  for(i = 0; i < 600; i++);     //空指令循环 
  }
}

//外部中断3,用来唤醒单片机进行工作,低电平有效
void exint3()interrupt 11
{
}
/*************************************************************
* 主函数 *
/*************************************************************/
void main (void)     //主程序
{
  Delay(100);        //启动延时100ms
 INT_CLKO |=0x20;   //允许外部中断3
 EA=1;              //开中断
 PCON= 0x02;        //进入待机状态,省电减少电流,等待输入口低电平唤醒,待机6.5ma电流
 
 while(1)
   {                  //一直循环运行以下程序
     if(IN0==0)       //如果检测到低电平,说明有信号过来
  {
  Delay(150);       //延时检测是否是有效信号,防干扰
    if(IN0==0)      //延时150毫秒后如果信号还在,说明是有效信号,运行下面的程序
    {
      Delay(2000);  //启动延时2秒
      OUT1 = 1;     //启动继电器,接通后备箱电机电源的通路,工作45ma电流
      Delay(3000);  //启动延时3秒,这个时间按遥控器,直接驱动开启后备箱
      OUT1 = 0;     //关闭继电器,切断电源通路,等待下次按键
      PCON= 0x02;   //进入待机状态,省电减少电流,等待输入口低电平唤醒,待机6.5ma电流
     }
                }
   }    
}

//**********************************

打开汽车之家 阅读体验更好
2026/7/14 03:13:56