用单片机如何对6个红外接收管同时解码?6个接收管子可能同时受到红外数据

2025年03月18日 17:10
有3个网友回答
网友(1):

明白你意思了,你的红外发射和接收里面并没有调制信号,只是想判断发射和接收之间是否有阻挡,

以51单片机为例比如发射管分别接在P1口的低6位,为0代表驱动发射管发射。

接收管分别接P2口的低6位,为0代表收到信号。且各位相对应。程序按如下模式进行

 

  1. P1口送1111 1110   判断P2口是否为1111 1110然后延时1ms P1送1111 1111延时2ms

  2. P1口送1111 1101   判断P2口是否为1111 1101然后延时1ms P1送1111 1111延时2ms

  3. P1口送1111 1011   判断P2口是否为1111 1011然后延时1ms P1送1111 1111延时2ms

  4. P1口送1111 0111   判断P2口是否为1111 0111然后延时1ms P1送1111 1111延时2ms

  5. P1口送1110 1111   判断P2口是否为1110 1111然后延时1ms P1送1111 1111延时2ms

  6. P1口送1101 1111   判断P2口是否为1101 1111然后延时1ms P1送1111 1111延时2ms

  7. 这样其中如果哪个位置被遮挡,P2口读的数据就不是相应的数据,然后可以转去执行相应操作。

网友(2):

六个接收管同时接收一个发射信号没有必要,使用一个接收就可以了
六个接收管同时接收六个发射信号不能使用,会相互干扰
不考虑上述原因,只要单片足够快,可以同时解码

网友(3):

这个问题可以但是要看你具体 想实现什么功能,6个红外接收管同时接收一个发射,不明白你想做什么,6个接收管接收一个发射没有问题,都可以接收到数据,解码的话程序不好解码,你总不能把6个接收管都解码把,那单片机占用资源太多,也浪费单片机资源,感觉没有必要。