_NCY_ 发表于 2024-8-28 13:46:02

wjhhhhh 发表于 2024-8-25 11:38
“灵活调节数值的遥控”可能只是加和减两个指令,数值大小在接收端由主控芯片确定 ?发送端有0~9、A~F的 ...

我们家空调开机前把遥控器上温度设到多少度再按开机,空调开机就多少度,应该就是数值。当然单纯加减的策略肯定也不少

huaruolong 发表于 2024-8-28 19:56:24

应该是没问题的,它终归是发一组红外编码,除非它的发射端和接受端是随机码,每次都不一样。

liulei 发表于 2024-8-29 08:31:47

这个思路是来自“已读乱回”吗{:lol:}

_NCY_ 发表于 2024-8-29 11:14:30

huaruolong 发表于 2024-8-28 19:56
应该是没问题的,它终归是发一组红外编码,除非它的发射端和接受端是随机码,每次都不一样。 ...

我也感觉理论上没问题,但不知怎么就是遥控不了{:5_319:}

zhx 发表于 2024-9-11 17:18:28

wjhhhhh 发表于 2024-8-25 11:38
“灵活调节数值的遥控”可能只是加和减两个指令,数值大小在接收端由主控芯片确定 ?发送端有0~9、A~F的 ...

空调没有+-指令,给的就是具体温度,有的遥控器数据里还有时间数据

晓飛飛 发表于 2024-9-12 10:33:09

_NCY_ 发表于 2024-8-29 11:14
我也感觉理论上没问题,但不知怎么就是遥控不了

你还没搞懂最基本的理论,比如香农定律
先有个示波器,看看遥控器的红外管上的波形是什么样子的,有个直观的认识,再去计算到底需要多高的录制采样频率和存储深度,就你视频里面的音频录制采样频率撑死8kHz,如此之低的采样频率去录38KHz调制的信号那是不现实的。

_NCY_ 发表于 2024-9-14 17:49:08

本帖最后由 _NCY_ 于 2024-9-14 19:56 编辑

晓飛飛 发表于 2024-9-12 10:33
你还没搞懂最基本的理论,比如香农定律
先有个示波器,看看遥控器的红外管上的波形是什么样子的,有个直 ...

?!直采38k信号肯定要炸裂啊

我是把红外的38k信号拿红外接收头解调出来的脉冲进行录制。
观察了好几种协议,发现红外脉冲的最小时间间隔不小于500us,2khz没问题吧。(把红外接收头上接个喇叭,能听见的嘟嘟声,就是那个频率)
然后给他采样,8k足矣。
但确实是失败了。。。

wangyifan 发表于 2024-10-6 17:25:20

#definenum    46               //数组
int xdata Hdate ;
int xdata Ldate ;


/*********************************************************************************************
函数名:外部中断INT初始化函数
调 用:INT_init();
参 数:无
返回值:无
结 果:启动外部中断INT1、INT0中断,设置中断方式
备 注:
/**********************************************************************************************/
//void INT_init (void)
//{
    //IT1 = 0;                  //设置INT1的中断类型为上升沿和下降沿,上升沿和下降沿均可唤醒
    //IT1 = 1;                  //设置INT1的中断类型为仅下降沿,下降沿唤醒

   // EX1 = 1;                  //使能INT1中断
//}
//========================================================================
void INT_0 (void) interrupt 0 using 2//切换寄存器组到2
{
          u8i;
    EX0 = 0; //允许外部中断0中断
   
    //用户函数内容
    while(Rc==1)//等待信号出现
    {
      ;
    }
    for(i=0; i<num; i++)
    {
      //获取低电平宽度

      TCC=0;
      TR0 = 1; //T/C0启动开关
      while(Rc==0)
      {
            ;
      }
      TR0=0;
      Ldate=TCC;
      //获取高电平宽度

      TCC=0;
      TR0 = 1; //T/C0启动开关
      while(Rc==1)
      {
            ;
      }
      TR0=0;
      Hdate=TCC;
                       
    }
   
    LED_zs=1;
    Delay1(100);
    LED_zs=0;
    Delay1(100);
    LED_zs=1;
    Delay1(200);
    LED_zs1=0;
    Epprom_flag=1;
    IE0=0;
                Key_Long_bit=0;   //长按计数器清零
               
                //lOW_bit=1;      //掉电
               
}
//==================================================================
void fs(void)
{
    int fs;
    for(fs=0; fs<num; fs++)
    {

      TCC=0;
      TR0 = 1; //T/C0启动开关
      while(TCC<Ldate)
      {
          OP_bit=1;
                                        LED_zs1=!LED_zs1;
      }

      TR0=0;

      TCC=0;
      TR0 = 1; //T/C0启动开关
   
      while(TCC<Hdate)
      {
            red=0;
                                          OP_bit=0;
         
      }
      TR0=0;
      LED_zs1=0;
    }
}
//以前做的学习型遥控器,很好用。
页: 1 2 [3]
查看完整版本: 红外遥控,一个神奇的构想