海纳百客

海纳百客

在树莓派 Pico 上使用红外线接收模块

吃瓜阿阳

友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com

在树莓派 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 判断并添加处理逻辑。

你还可以:
查看系列教程中的其他文章
购买本教程所用到的 Pico 套件

    标签:

    发布评论 条评论)

    评论列表