红外接收
来自Labplus盛思维基百科
概述
接收红外遥控信号,能解析NEC协议数据并UART输出数据。有效距离8米,波特率115200bps。
技术参数
- 工作电压:VCC 3.3-5V
- 通讯方式:UART
- 输出字节长度:1字节
- 有效距离:8米
- 模块尺寸:24x46x7.5mm
引脚定义
| VCC | 电源 |
| RXD | 串口接收 |
| TXD | 串口发送 |
| GND | 地 |
使用教程
1.串口波特率设置115200bps。程序在定义串口引脚时,注意模块端的RX、TX需要和主板上的RX、TX交叉!
2.当接收到红外调制信号,模块上的指示灯会闪烁。
下表为附件遥控器的按键对应值表
掌控板
Python示例
| |
| 红外接收模块接收,数码管模块显示数据 |
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])
图形化示例
连接图同上
版本历史记录
| Version | Date | Note [+]新增[-]删除[^]修复 |
|---|---|---|
| V2.0 |




