ykjsppzq 发表于 2026-1-16 11:58:53

单纯红外接收二极管,不是红外接收头,STC8H1K08,怎么写解调+解码38K的红外信号?

单纯红外接收二极管,不是红外接收头,STC8H1K08,怎么写解调+解码38K的红外信号?

angmall 发表于 2026-1-16 12:54:15

这个方案的核心思想是 “用确定的软件逻辑,处理不确定的硬件信号” 。前期在硬件电路上的调试和优化会花费主要时间,一旦获得稳定的数字波形,后续的软件解码就会水到渠成。

你担心的是:

“如果只是裸二极管,38kHz 怎么解?”

答案是:

👉 不解“频率”,只验证“连续性”


👉 用“裸红外接收二极管 + STC8H1K08”解调 38 kHz 红外是可行的,但前提是:

1.硬件必须先把模拟问题解决到 90%

2.MCU 端不直接“看 38kHz”,而是识别“有没有 38kHz 包络”

3.时间判决全部交给定时器 + 输入捕获 / 中断

4.不要一开始就想兼容所有协议(NEC / RC5 / RC6)

lcwswust 发表于 2026-1-16 13:11:33

先用示波器测一下信号看够不够大,考虑是否加放大、检波。

神农鼎 发表于 2026-1-16 14:28:21



深圳国芯人工智能有限公司-实验箱

aaa_keen 发表于 2026-1-16 14:48:36

硬件上做波形整形,软件上PWM输入捕获+定时器 ,   PWM捕获38K信号在捕获中断里判断TIM_COUT的值 如果< 某个值(和你的中断周期有关),是在38K阶段 ;否则再判断是0还是1码,之后TIM_COUT清零在TIM中断里 TIM_COUT++ 。

DebugLab 发表于 2026-1-16 15:24:49

红外光敏二极管接收38KHz红外遥控信号,必须要选频放大,直接接单片机似乎无法实现或遥控距离不理想
如果你红外接收模拟电路部分已经搞定的话,可以有两种方式,检波输出后直接当1838红外接收头用,或单片机软件识别这个38KHz的信号,可以使用定时器或PWM对其计数或测量频率,排除其他频率的干扰

cnos 发表于 2026-1-20 22:55:36

搞科研呢?几毛钱的一体接收头不用非要手搓。那直接上ADC采集做卷积识别啊,灵敏度应该能秒杀一体接收头。不过也难说,毕竟ADC自带的也才10bit-12bit,模拟部分还是要做的。
页: [1]
查看完整版本: 单纯红外接收二极管,不是红外接收头,STC8H1K08,怎么写解调+解码38K的红外信号?