在树莓派 Pico 上使用红外线接收模块(HX1838 型),我们采用开源的 pico_ir 库。
这需要下载整个库文件,解压之后将其中的 pico_ir 目录整体上传到 Pico 的根目录。可以使用 Thonny 的 File 功能框上传。
硬件连接
红外线接收模块的 + 脚接树莓派 Pico 的 VSYS。
红外线接收模块的 – 脚接树莓派 Pico 的 GND。
红外线接收模块的 S 脚接树莓派 Pico 的 GP28。
编程
要导入刚才上传在根目录 pico_ir 库,需要使用两行代码:
import sys sys.path.append('pico_ir')
否则会提示找不到 pico_ir 的模块。下面是完整代码,将其保存在 Pico 的根目录,命名为 main.py。
import utime import sys sys.path.append('pico_ir') from machine import Pin from pico_ir import read_code, send_code, validate_code, InvalidCodeException pin_in = Pin(28, Pin.IN, Pin.PULL_UP) pin_out = Pin(21, mode=Pin.OUT) while True: out = read_code(pin_in) # ignore random signals if out: try: validate_code(out) print(out) utime.sleep_ms(100) send_code(pin_out, out) except InvalidCodeException: print("InvalidCodeException:" + out)
效果
运行之后,将红外遥控器对着接收头按下不同的按键,Thonny 的 Shell 窗口会显示相应按键的编码。如果希望在接收到某个按键编码后处理一些事情,可以在上面的代码中加入 if 判断并添加处理逻辑。
发表评论