“红外接收”的版本间的差异

来自Labplus盛思维基百科
跳转至: 导航搜索
使用教程
使用教程
第29行: 第29行:
 
{|style="background-color:#FCF8E3;color:#8A6D3B;"
 
{|style="background-color:#FCF8E3;color:#8A6D3B;"
 
|-
 
|-
|rowspan="2"| ||遥控按键 || HEX(16进制)||DEC(10进制)
+
|width="25%" rowspan="7"|[[File:遥控器.png|100px]] ||遥控按键 || HEX(16进制)||DEC(10进制)
 +
|-valign="center" align="center"
 
|-valign="center" align="center"
 
|-valign="center" align="center"
 
|"1"|| 0x00 ||00
 
|"1"|| 0x00 ||00
 +
|-valign="center" align="center"
 +
|"2"|| 0x80 ||128
 +
|-valign="center" align="center"
 +
|"3"|| 0x40 ||64
 +
|-valign="center" align="center"
 +
|"4"|| 0x20 ||32
 +
|-valign="center" align="center"
 +
|"5"|| 0xA0 ||160
 +
|-valign="center" align="center"
 +
|"6"|| 0x60||96
 
|}
 
|}
  

2018年8月14日 (二) 10:26的版本

黑色传感器最终版12.20-35.png

概述

接收红外遥控信号,能解析NEC协议数据并UART输出数据。有效距离8米,波特率115200bps。

技术参数

  • 工作电压:VCC 3.3-5V
  • 通讯方式:UART
  • 输出字节长度:1字节
  • 有效距离:8米
  • 模块尺寸:24x46x7.5mm

引脚定义

VCC 电源
RXD 串口接收
TXD 串口发送
GND

使用教程

1.串口波特率设置115200bps。程序在定义串口引脚时,注意模块端的RX、TX需要和主板上的RX、TX交叉!
2.当接收到红外调制信号,模块上的指示灯会闪烁。


遥控器.png 遥控按键 HEX(16进制) DEC(10进制)
"1" 0x00 00
"2" 0x80 128
"3" 0x40 64
"4" 0x20 32
"5" 0xA0 160
"6" 0x60 96



Python示例

红外接收 连接图.png
红外接收模块接收,数码管模块显示数据
from microbit import *

_TubeTab = [
    0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 
    0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x00, 0x40]

def tm1650Init():
  i2c.write(0x24, bytearray([0x01]))
def tm1650DisplayUint(x):
  charTemp = [0, 0, 0, 0]
  x = (x if x < 10000 else 9999)
  charTemp[3] = x%10
  charTemp[2] = (x//10)%10
  charTemp[1] = (x//100)%10
  charTemp[0] = (x//1000)%10
  if x < 1000:
    charTemp[0] = 0x10
    if x < 100:
      charTemp[1] = 0x10
      if x < 10:
        charTemp[2] = 0x10
  for i in range(0, 4):
    i2c.write(0x34+i, bytearray([_TubeTab[charTemp[i]]]))
def tm1650DisplayInt(x):
  x = round(x)
  if x >= 0:
    tm1650DisplayUint(x)
  else:
    temp = (x if x > -999 else -999)
    temp = abs(temp)
    tm1650DisplayUint(temp)
    if temp < 10:
      i2c.write(0x36, bytearray([_TubeTab[0x11]]))
    elif temp < 100:
      i2c.write(0x35, bytearray([_TubeTab[0x11]]))
    elif temp < 1000:
      i2c.write(0x34, bytearray([_TubeTab[0x11]]))

display.off()
tm1650Init()
uart.init(baudrate=115200, bits=8, parity=None, stop=1, tx=pin1, rx=pin0)
while True:
    if uart.any():
        _word=uart.read()
        
        tm1650DisplayInt(_word[0])
   

图形化示例

连接图同上

红外接收 3.png

版本历史记录

Version Date Note [+]新增[-]删除[^]修复
V2.0