Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c或c+解码红外遥控代码+; 请让我知道如何用C或C++解码红外遥控代码。< /P> < P>我想你的问题是模糊的,因为你绝对不知道从哪里开始。_C++_C_Embedded_Arm_Infrared - Fatal编程技术网

使用c或c+解码红外遥控代码+; 请让我知道如何用C或C++解码红外遥控代码。< /P> < P>我想你的问题是模糊的,因为你绝对不知道从哪里开始。

使用c或c+解码红外遥控代码+; 请让我知道如何用C或C++解码红外遥控代码。< /P> < P>我想你的问题是模糊的,因为你绝对不知道从哪里开始。,c++,c,embedded,arm,infrared,C++,C,Embedded,Arm,Infrared,如果你没有红外接收器,这里是用来学习如何建立一个一段时间前。我希望你在电子方面有一些天赋。否则,是时候学习了!:D 如果你成功地构建了它(或者有另一个已知的工作接收器),那么你可以看一下,一个开源的项目,它与建议的设备兼容。 < P>嗯,我不知道C++,但是在这里C是: 不同的制造商使用不同的编码方案、不同的定时,甚至不同的调制频率。A在硬件中执行解调,以便输出逻辑脉冲序列而不是调制信号。接收机需要匹配发射机的调制频率。如果您想要接收多个调制频率,则必须使用简单的红外光电二极管,并为每个感兴趣的

如果你没有红外接收器,这里是用来学习如何建立一个一段时间前。我希望你在电子方面有一些天赋。否则,是时候学习了!:D


如果你成功地构建了它(或者有另一个已知的工作接收器),那么你可以看一下,一个开源的项目,它与建议的设备兼容。

< P>嗯,我不知道C++,但是在这里C是:


不同的制造商使用不同的编码方案、不同的定时,甚至不同的调制频率。A在硬件中执行解调,以便输出逻辑脉冲序列而不是调制信号。接收机需要匹配发射机的调制频率。如果您想要接收多个调制频率,则必须使用简单的红外光电二极管,并为每个感兴趣的调制频率提供您自己的OOK载波检测器电路,或者使用多个接收器

一旦您有了解调脉冲序列,就可以根据特定的编码方案对其进行解码。我只为一个遥控器做过这件事,把它用作机器人控制器。其中,传感器触发了一个中断,并且在每个中断上锁定了脉冲定时。如果您的设备具有输入捕获和比较计时器硬件,则可以减少开销并提高准确性(尽管这可能不是必需的)

对于不同的协议和制造商,有很多关于这个主题的资源


有一些适用的标准,但没有制造商必须遵守,而且不止一个。有两个这样的标准是相当普遍的。< /P> < P>要么购买一些硬件,然后做C或C++ API调用(例如LIRC)。或者,如果您对解码协议感兴趣,并使用软件而不是硬件进行解码,那么您希望使用微控制器

这是有趣和简单的,我推荐它作为第一个微控制器项目。有几种流行的协议,大多数是几个主题的变体。基本上,你可以从无线电棚屋得到一个接收器,尽管无线电棚屋里曾经是无线电部件的东西(也许这就是他们把名字改成棚屋的原因)要少得多,而且被埋在商店后面的一个小抽屉里,很快就会消失。无论如何,让一个接收器或digikey或mouser,一个微控制器,计算上升沿和下降沿之间的时钟滴答数(接收器已移除~40Khz载波频率),将这些时间与预期协议进行比较,并从零开始确定一。只需一个微控制器和一个红外发光二极管就可以进行传输,但由于需要进行调制,所以传输有点困难。微控制器外部的单个与门以及调制时钟和/或定时器生成的时钟要容易得多,但需要额外的硬件


多协议接收器可能不如特定协议接收器好,正如gcc在任何一个平台上都不是很好,但在所有平台上都非常好。建立自己的是有趣的,有教育意义的,通常会产生更好的接收器,尽管你无法与批量生产的产品的价格相匹配。问题的一部分还与载波频率的变化有关,理想情况下,您希望为正在使用的协议选择与载波频率匹配的接收机。这会产生不同,例如,你可以在30英尺之外,而不必在8英尺之外。它也可以在3英尺远的地方工作,但不能在1英尺或3英寸远的地方工作。诸如此类的事情。有线电视、碟形电视和其他通用遥控器生成所有协议,因此您可以根据您的项目自由选择。

如何制作电脑游戏?:)请在您的问题中添加更多信息,以便回答。您需要包括更多信息,以便任何人都能够尝试回答。请显示您的问题。您应该至少包括您遇到问题的代码的大纲(但最好是a),然后我们可以尝试帮助解决特定问题。你也应该读一读。这真是太神奇了。oO真的这么严重吗?LIRC绝对是一个很好的起点——你可以将它(或你需要的特定部分)移植到你的目标。
void ReadRemote()
{
    while(!Console.KeyAvailable)
        Console.Write(DecoderClass.ReadIR(IRType.TVRemoteControl));
}