单纯红外接收二极管,不是红外接收头,STC8H1K08,怎么写解调+解码38K的红外信号?
单纯红外接收二极管,不是红外接收头,STC8H1K08,怎么写解调+解码38K的红外信号?这个方案的核心思想是 “用确定的软件逻辑,处理不确定的硬件信号” 。前期在硬件电路上的调试和优化会花费主要时间,一旦获得稳定的数字波形,后续的软件解码就会水到渠成。
你担心的是:
“如果只是裸二极管,38kHz 怎么解?”
答案是:
👉 不解“频率”,只验证“连续性”
👉 用“裸红外接收二极管 + STC8H1K08”解调 38 kHz 红外是可行的,但前提是:
1.硬件必须先把模拟问题解决到 90%
2.MCU 端不直接“看 38kHz”,而是识别“有没有 38kHz 包络”
3.时间判决全部交给定时器 + 输入捕获 / 中断
4.不要一开始就想兼容所有协议(NEC / RC5 / RC6)
先用示波器测一下信号看够不够大,考虑是否加放大、检波。
深圳国芯人工智能有限公司-实验箱
硬件上做波形整形,软件上PWM输入捕获+定时器 , PWM捕获38K信号在捕获中断里判断TIM_COUT的值 如果< 某个值(和你的中断周期有关),是在38K阶段 ;否则再判断是0还是1码,之后TIM_COUT清零在TIM中断里 TIM_COUT++ 。 红外光敏二极管接收38KHz红外遥控信号,必须要选频放大,直接接单片机似乎无法实现或遥控距离不理想
如果你红外接收模拟电路部分已经搞定的话,可以有两种方式,检波输出后直接当1838红外接收头用,或单片机软件识别这个38KHz的信号,可以使用定时器或PWM对其计数或测量频率,排除其他频率的干扰
搞科研呢?几毛钱的一体接收头不用非要手搓。那直接上ADC采集做卷积识别啊,灵敏度应该能秒杀一体接收头。不过也难说,毕竟ADC自带的也才10bit-12bit,模拟部分还是要做的。
页:
[1]