“红外接收”的版本间的差异
来自Labplus盛思维基百科
Tangliufeng(讨论 | 贡献) |
Tangliufeng(讨论 | 贡献) (→使用教程) |
||
第25行: | 第25行: | ||
=== <small>Arduino示例</small> === | === <small>Arduino示例</small> === | ||
=== <small>MicroPython示例</small> === | === <small>MicroPython示例</small> === | ||
− | 红外接收模块接收,数码管模块显示数据 | + | {| border="0" cellpadding="2" width="60%" |
+ | |- | ||
+ | | width="20%"| | ||
+ | |[[文件:红外接收 连接图.png|600px|无框]] | ||
+ | |- | ||
+ | | | ||
+ | | style="text-align:center;" |红外接收模块接收,数码管模块显示数据 | ||
+ | |} | ||
+ | |||
<pre style="color:blue"> | <pre style="color:blue"> | ||
from microbit import * | from microbit import * |
2018年3月13日 (二) 13:12的版本
概述
接收红外遥控信号,能解析NEC协议数据并UART输出数据。有效距离8米,波特率115200bps。
技术参数
- 工作电压:VCC 3.3-5V
- 通讯方式:UART
- 输出字节长度:1字节
- 有效距离:8米
- 模块尺寸:24x46x7.5mm
引脚定义
VCC | 电源 |
RXD | 串口接收 |
TXD | 串口发送 |
GND | 地 |
使用教程
Arduino示例
MicroPython示例
红外接收模块接收,数码管模块显示数据 |
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])