RP2350-Relay-6CH 是一款基于 RP2350B 主控,支持 RS485、Pico 等外设接口的工业级 6 路继电器。内置电源隔离、光耦隔离等保护电路,安全稳定更可靠。


| ||
|
为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE




【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解
对于 C/C++,建议使用 Pico VSCode 进行开发,这是一款 Microsoft Visual Studio Code 扩展,旨在让您在为 Raspberry Pi Pico 系列开发板创建、开发和调试项目时更加轻松。无论您是初学者还是经验丰富的专业人士,此工具都可以帮助您自信而轻松地进行 Pico 开发。下面我们介绍如何安装该扩展并使用。










Cmake Path:
${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake.exe
Git Path:
${HOME}/.pico-sdk/git/cmd/git.exe
Ninja Path:
${HOME}/.pico-sdk/ninja/v1.12.1/ninja.exe
Python3 Path:
${HOME}/.pico-sdk/python/3.12.1/python.exe










这里提供两种方法烧录固件

1.按住Boot按键 2.将开发板连接到电脑上 3.然后会电脑会将开发板识别成一个U盘设备 4.将.uf2文件复制到U盘中,设备就会自动重启,程序烧录成功


set(PICO_BOARD pico CACHE STRING "Board type")








https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json

注意:如果您已经有ESP32板URL,您可以使用逗号分隔 URL,如下所示:
https://dl.espressif.com/dl/package_esp32_index.json,https://github.com/earlephilhower/arduino-pico/releases/download/4.5.2/package_rp2040_index.json


C:\Users\[username]\AppData\Local\Arduino15\packages

注意:将里面用户名:[username]替换成自己的用户名






MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)
【程序说明】
【代码分析】
uint8_t index:在main函数中,程序会解析接收到 RS485 数据,并与预设的控制命令数组进行匹配。当找到匹配项时,会调用Relay_Control函数,并通过index参数传递匹配命令在数组中的下标位置if else语句根据index的值来执行不同的操作:index < 6的情况,即对于CH1~CH6指令,通过DEV_Digital_Write函数来切换对应的 GPIO 引脚(如RELAY1_PIN等)的电平状态,同时更新对应的relay_status数组元素来记录继电器状态的改变,并且根据继电器的最终状态输出相应的开启或关闭提示信息,最后在main函数中调用Beep函数控制蜂鸣器。index = 6的情况,即对于ALL_ON指令,将所有的 GPIO 引脚(对应 6 个通道继电器)设置为高电平(开启状态),通过memset函数将relay_status数组所有元素设置为 1,表示全部继电器开启,输出全部继电器开启提示信息,最后在main函数中调用Beep函数控制蜂鸣器。index = 7的情况,即对于ALL_OFF指令,将所有的 GPIO 引脚(对应 6 个通道继电器)设置为低电平(关闭状态),通过memset函数将relay_status数组所有元素设置为 0,表示全部继电器关闭,输出全部继电器关闭提示信息,最后在main函数中调用Beep函数控制蜂鸣器。index 的值不属于上述指令情况,则输出接收到非指令数据的提示信息【程序说明】
【代码分析】
index:在main函数中,程序会解析接收到 RS485 数据,并与预设的控制命令数组进行匹配。当找到匹配项时,会调用relay_control函数,并通过index参数传递匹配命令在数组中的下标位置if else语句根据index的值来执行不同的操作:index < 6的情况,即对于CH1~CH6指令,通过relays[index].value函数来切换对应的 GPIO 引脚的电平状态,同时更新对应的relay_status数组元素来记录继电器状态的改变,并且根据继电器的最终状态输出相应的开启或关闭提示信息,最后再调用beep函数控制蜂鸣器。index = 6的情况,即对于ALL_ON指令,将所有的 GPIO 引脚(对应 6 个通道继电器)设置为高电平(开启状态),通过for循环将relay_status数组所有元素设置为 1,表示全部继电器开启,输出全部继电器开启提示信息,最后再调用beep函数控制蜂鸣器。index = 7的情况,即对于ALL_OFF指令,将所有的 GPIO 引脚(对应 6 个通道继电器)设置为低电平(关闭状态),通过for循环将relay_status数组所有元素设置为 0,表示全部继电器关闭,输出全部继电器关闭提示信息,最后再调用beep函数控制蜂鸣器。index 的值不属于上述指令情况,则输出接收到非指令数据的提示信息


可以参考RP2350-datasheet中RP2350-E9部分内容
请将跳线帽移至 120R 再次尝试,部分 RS485 设备需要串入 120R 电阻
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
