红外接收器多频

Posted

技术标签:

【中文标题】红外接收器多频【英文标题】:IR receiver multi frequency 【发布时间】:2019-07-17 09:45:44 【问题描述】:

我正在开发一个带有 IR 接收器和发射器的项目,但接收器出现问题(接收器型号:TSOP1756)。 从协议来看,它适用于 56khz,但问题是,我可以更改代码以解码来自不同/多频率的 IR 信号,例如 38khz 的电视遥控器和 40khz 的 AC 遥控器。 我正在为我的项目使用 IRremote 库。

我尝试过使用不同的 IR 接收器型号,但它们都不能使用不同的频率。

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

  Serial.begin(9600);
  // In case the interrupt driver crashes on setup, give a clue
  // to the user what's going on.
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");


void loop() 
  if (irrecv.decode(&results)) 
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  
  delay(100);

我希望收到 HEX 代码,但是当我发送不同频率的信号时,我会立即收到 FFFFFFFF。

如果有人帮助我,我将不胜感激

【问题讨论】:

如何设置频率? 我不明白在哪里设置频率? 【参考方案1】:

你理解错了红外传输的工作原理。

为了使接收器将控制信号与背景红外噪声区分开来,信号被调制为更高的频率。 IE。它不是连续的红外光,它是一系列短暂的闪光。系列之间的距离编码零和一,但闪光本身具有预定义的频率。在您的示例中,它是 56kHz。

接收器具有内置电路,可滤除背景噪声,并检测何时出现特定频率的闪光,并将逻辑电平输出到其输出引脚。其原理图旨在仅检测一种特定频率。 For example TSOP1736 - 36kHz,TSOP1740 - 40kHz,TSOP1756 - 56kHz。

它只有输出,不接收来自 MCU 的任何控制逻辑。

所以,答案是:您无法通过软件更改调制频率。您必须将接收器更换为其他型号。

【讨论】:

以上是关于红外接收器多频的主要内容,如果未能解决你的问题,请参考以下文章

microduino实现红外线发送与接收

基于Arduino的红外遥控

地质灾害监测GNSS设备 GNSS接收机

Arduino VS/HX1838红外遥控接收和发送DEMO

STC单片机 VS/HX1838红外接收和发送实验

Arduino 红外协议解析和接收码获取示例程序