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