_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;
}
}
//以前做的学习型遥控器,很好用。